Thanks for the prompt answer, Bruce!
I think I am lacking some understanding of the basics here.
I am trying to advise some classes that belong to my SUs. Since my JBI
components are managed by ServiceMix and ServiceMix uses the Spring
container, I thought that if I am in a ServiceMix context I can only use
Spring AOP by somehow telling ServiceMix "Hey, here is my aspect and her is
my Spring xbean config. Now, please pass this info to the Spring container
and let Spring handle the AOP stuff.".
That is also the reason why I am building a shared library. I thought, if I
have to pass aspects to the Spring container which in turn is "under the
hood" of ServiceMix, I have to use ServiceMix "technology". I thought
ServiceMix would then "see" "Ah, this is Spring AOP stuff. I have to pass
this to the Spring container.". Since SAs/SUs and shared libs are the
deployable ServiceMix artefacts I know, I chose a shared lib to pass my AOP
stuff to ServiceMix.
How should one use AOP in a ServiceMix environment?
We need runtime weaving. Loadtime and compiletime weaving are no options. So
I thought, let's use Spring AOP if ServiceMix uses Spring. As I can see, the
latest ServiceMix uses Spring 2 with all its nice AOP improvements.
Should I directly use the Spring container used by ServiceMix? I.e. is my
aproach to "go through the ServiceMix layer" wrong? Are the ServiceMix
components managed by the Spring container so that instead of using the
"going through the ServiceMix layer" I should directly configure the Spring
container used by ServieMix?
Questions over questions. ;-)
Again, thanks a lot in advance!
Cheers,
Oliver.
bsnyder wrote:
>
> On 6/25/07, okuntze <[EMAIL PROTECTED]> wrote:
>>
>> Hi,
>>
>> I'm trying to use Spring AOP in my ServiceMix runtime.
>>
>> Since I'm apparently doing something basic terribly wrong, it would be
>> great
>> if you could help me out with some info.
>>
>> I have an aspect like this:
>>
>> <code>
>> package de.mycompany.myproject;
>>
>> import org.aspectj.lang.annotation.Aspect;
>> import org.aspectj.lang.annotation.Pointcut;
>>
>> @Aspect
>> public class MonitoringAspect {
>> @Pointcut("execution(* de.mycompany.myproject..*.*(..)))")
>> public Object doSomething() {
>> throw new RuntimeException("Im doSomething Advice!!!");
>> }
>> }
>> </code>
>>
>> Furthermore I have a corresponding xbean file:
>>
>> <code>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans xmlns="http://www.springframework.org/schema/beans"
>> xmlns:aop="http://www.springframework.org/schema/aop"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
>> <aop:aspectj-autoproxy/>
>> <bean class="de.mycompany.myproject.MonitoringAspect"
>> id="swiftTransformationMonitoringAspect"/>
>> </beans>
>> </code>
>>
>> And finally I have a POM like this:
>>
>> <code>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <project xmlns="http://maven.apache.org/POM/4.0.0"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>> <modelVersion>4.0.0</modelVersion>
>> <parent>
>> <groupId>oliver.osiris.playground.sandbox</groupId>
>> <artifactId>sandbox</artifactId>
>> <version>1.0</version>
>> </parent>
>>
>> <groupId>oliver.osiris.playground.sandbox.swifttransformation-monitoring</groupId>
>> <artifactId>swifttransformation-aspect</artifactId>
>> <name>Osiris :: sandbox :: swifttransformation-monitoring ::
>> swifttransformation-aspect</name>
>> <packaging>jbi-shared-library</packaging>
>> <version>1.0</version>
>> <url>${site.root}//sandbox/</url>
>> <dependencies>
>> <dependency>
>> <groupId>aspectj</groupId>
>> <artifactId>aspectjrt</artifactId>
>> <version>1.5.3</version>
>> </dependency>
>> </dependencies>
>> <build>
>> <plugins>
>> <plugin>
>>
>> <groupId>org.apache.servicemix.tooling</groupId>
>> <artifactId>jbi-maven-plugin</artifactId>
>> <version>${servicemix-version}</version>
>> <extensions>true</extensions>
>> </plugin>
>> </plugins>
>> </build>
>> </project>
>> </code>
>>
>> So what I am doing is: Using the POM to build a ServiceMix shared library
>> containing the aspect class and the Spring xbean configuration.
>>
>> Unfortunately the advice ist never executed.
>>
>> What am I doing wrong?
>
> Are the beans you're trying to advise instantiated explicitly by
> Spring? Also, why are you building a shared library?
>
> Bruce
> --
> perl -e 'print
> unpack("u30","D0G)[EMAIL PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> );'
>
> Apache Geronimo - http://geronimo.apache.org/
> Apache ActiveMQ - http://activemq.org/
> Apache ServiceMix - http://servicemix.org/
> Castor - http://castor.org/
>
>
--
View this message in context:
http://www.nabble.com/Spring-AOP-integration-in-ServiceMix-tf3975690s12049.html#a11300870
Sent from the ServiceMix - User mailing list archive at Nabble.com.