Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 151893 Details for
Bug 294647
NPE in at org.aspectj.weaver.ResolvedType.addPointcutsResolvingConflicts(ResolvedType.java:1949)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Aspect, involed in making the NPE appear/go away
JobKommandoControllerIntegration.aj (text/plain), 4.73 KB, created by
Hermann Vosseler
on 2009-11-10 17:49:33 EST
(
hide
)
Description:
Aspect, involed in making the NPE appear/go away
Filename:
MIME Type:
Creator:
Hermann Vosseler
Created:
2009-11-10 17:49:33 EST
Size:
4.73 KB
patch
obsolete
>/*-- --------------------------------------------------------------------- > * BAADER B O A - Back-Office-Applications > * (c) BAADER Wertpapierhandelsbank AG, 2005 > * --------------------------------------------------------------------- > * Projektleitung: Reinhard Braumandl > * Programmierung: Reinhard Braumandl, Arne Hänle, Kornelia Markovic > * Frank Richter, Benjamin Schmidt, Hermann VoÃeler. > * --------------------------------------------------------------------- > */ > > >package baag.boa.tool.job; > >import baag.boa.common.exception.BOARuntimeException; >import baag.boa.esn.interfaces.BOAStatus; >import baag.boa.esn.server.systemdienst.BOAStatusService; >import baag.boa.mvc.KompaktController; >import baag.boa.mvc.RufKontext; >import baag.boa.mvc.KompaktController.Kommando; > >import org.quartz.Scheduler; > > > > >/********************************************************** > * Behandelt den Aspekt der Integration zwischen BOAStatus, > * dem (Singleton)-JobKommando-Objekt und Web/MVC-Controller. > * Leitet dazu alle Versuche, ein JobKommando-Objekt direkt zu > * erzeugen um in eine Anfrage an den BOAStatus-Bean. > * <P> > * Dieser Umweg ist notwendig, weil (a) intern eine Verbindung > * zum Quartz-Scheduler-Objekt hergestellt werden muà und weil > * (b) letzteres Objekt direkt im BOA-Server vorliegt, wohingegen > * das JobKommando-Objekt zum Client gehört und nur über die > * BOA-Fassade nach unten zugreifen darf. > * <P> > * Anmerkung 10/09: Ich betrachte das als eine ehr unglückliche, > * gewachsene Lösung. Da wir nun ohnehin einen eigenen Scheduler > * im ESB betreiben, hoffe ich, das bald durch eine insgesamt > * bessere Lösung komplett ablösen zu können (HIV) > * > * @version $Id$ > * @since 3/05 > * @author HIV > */ > >public aspect JobKommandoControllerIntegration { > > pointcut ClientAufrufKontext(RufKontext rK, Class kl) > : execution( Kommando+ KompaktController+.instantiiereKommandoObjekt(Class, RufKontext) ) > && args(kl,rK) > && if( kl.equals(JobKommando.class) ); > > pointcut JobKommandoZeugung(RufKontext rK) > : call( Object Class.newInstance() ) > && within( KompaktController+ ) > && cflow( ClientAufrufKontext(rK,*) ); > > > Object around(RufKontext rufK) : JobKommandoZeugung(rufK) > { > > BOAStatus bstat = rufK.getAppKonfig() > .getServerStatus(); > BOAStatusService statusImpl = (BOAStatusService)bstat; > JobKommando jobK = statusImpl.getJobKommando(); > > return jobK; > } > > > //----- Policy: niemand sonst darf JobKommando-Objekte erzeugen > declare error : call( JobKommando+.new(..) ) > && !within(JobKommandoControllerIntegration) > : "Nur der BOAStatus-Bean darf JobKommando-Objekte erzeugen"; > > > > > > //----- Verwaltung des JobKommando-Objektes in den BOAStatus-Bean einbauen > // > /** Verwaltet ein {@link baag.boa.tool.job.JobKommando JobKommando-Objekt} > (singleton). Einige Instanz im ganzen BOA-Server, die dies explizit darf. > Dies, sowie die Integration mit dem {@link baag.boa.mvc.KompaktController} > erfolgt über einen {@link baag.boa.common.job JobKommandoControllerIntegration Aspekt}. > @throws BOARuntimeException falls noch kein Scheduler registriert ist > @return das (einzige) JobKommando-Objekt > @see #registriereScheduler(Scheduler) > */ > public synchronized JobKommando BOAStatusService.getJobKommando() { > assert null!=this.getScheduler(); > > if ( this.jobKommando==null ) { > jobKommando.setBOAStatus(this); > this.jobKommando = new JobKommando(); > } > return this.jobKommando; > } > private JobKommando BOAStatusService.jobKommando=null; > > > /** Zugangsmethode hierzu auch in die Fasade einfbauen */ > public abstract JobKommando BOAStatus.getJobKommando() ; > > > > > //----- Felder für Zugriff auf den BOAStatus-Bean in das Zielobjekt einfügen > private BOAStatus JobKommando.boaStatus=null; > private void JobKommando.setBOAStatus(BOAStatus bstat) { boaStatus=bstat; } > > > > > > //----- Zugriffe auf das Scheduler-Objekt im JobKommando umleiten > pointcut SchedulerZugriff(JobKommando jK) > : call( Scheduler JobKommando+.getSched() ) > && target(jK); > > Scheduler around(JobKommando jK) : SchedulerZugriff(jK) > { > assert jK.boaStatus!=null; > Scheduler theSched = jK.boaStatus.getScheduler(); > return theSched; > } > > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 294647
:
151878
| 151893 |
151895
|
152476
|
152480
|
152503
|
152509
|
152524