Hi Brett, all,

Have you considered using OSGi instead of [Plexus|Spring] ? I'm not an expert of one or the other, but i try to do some projects with OSGi since a few months and i like it.
Best regards,

Brett Porter a écrit :
Hi,

Given the discussion yesterday, I played around with some changes on a branch when I got up early this morning to show how we could do a partial migration to Spring without having to do it all at once.

https://svn.apache.org/repos/asf/maven/archiva/branches/springy

This shows:
- ability to lookup plexus components via spring IoC
- ability to lookup spring beans during the Plexus component lifecycle
- basic functional setup for Spring in the Archiva application

Eventually, as whole subsystems no longer require plexus it will be possible to clean it up, such as:
- get rid of the additional lookups
- use annotations for configuration
- use testng + get/set + mocks for the tests where possible (and spring testcontext where integration testing is needed)

Here is how to obtain a plexus object from Spring (note there is some pre-req setup in test cases you'll see in the commit, as there is in the additional servlet listener): <bean id="urlCache" factory-bean="plexusCacheFactory" factory-method="createInstance" /> <bean id="plexusCacheFactory" class="org.apache.maven.archiva.common.spring.PlexusFactory">
    <constructor-arg index="0" value="org.codehaus.plexus.cache.Cache"/>
    <constructor-arg index="1" value="url-failures-cache"/>
  </bean>

To get a spring bean inside a plexus component, it is like this (make sure to implement Initializable):

    /**
     * @plexus.requirement
     */
    private SpringFactory springFactory;

    public void initialize()
        throws InitializationException
    {
urlFailureCache = (UrlFailureCache) springFactory.lookup( "urlFailureCache" );
    }

The next thing we should probably try is using something like SpringCache as suggested to remove the plexus-cache dependency.

Have fun!

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/





--
Cordialement,
Ludo - http://www.ubik-products.com
---
"L'amour pour principe et l'ordre pour base; le progres pour but" (A.Comte)

Reply via email to