What do you want with plugin? Do we have a doc somewhere that explain it? I didn't know atlassian-plugins-osgi.
Emmanuel On Thu, Oct 30, 2008 at 6:58 AM, <[EMAIL PROTECTED]> wrote: > Author: jdumay > Date: Wed Oct 29 22:58:49 2008 > New Revision: 709094 > > URL: http://svn.apache.org/viewvc?rev=709094&view=rev > Log: > In goes the plugin container... > > Added: > > > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/plugins/ > Modified: > > > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/pom.xml > > > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java > > > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml > archiva/branches/archiva-plugins/pom.xml > > Modified: > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/pom.xml > URL: > http://svn.apache.org/viewvc/archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/pom.xml?rev=709094&r1=709093&r2=709094&view=diff > > ============================================================================== > --- > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/pom.xml > (original) > +++ > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/pom.xml > Wed Oct 29 22:58:49 2008 > @@ -176,6 +176,14 @@ > <artifactId>archiva-webdav</artifactId> > </dependency> > <dependency> > + <groupId>com.atlassian.plugins</groupId> > + <artifactId>atlassian-plugins-osgi</artifactId> > + </dependency> > + <dependency> > + <groupId>com.atlassian.plugins</groupId> > + <artifactId>atlassian-plugins-spring</artifactId> > + </dependency> > + <dependency> > <groupId>org.apache.struts</groupId> > <artifactId>struts2-spring-plugin</artifactId> > <scope>runtime</scope> > @@ -356,6 +364,10 @@ > <value>${project.build.directory}/appserver-base</value> > </systemProperty> > <systemProperty> > + <name>archiva.home</name> > + <value>${project.build.directory}/archiva-home</value> > + </systemProperty> > + <systemProperty> > <name>appserver.home</name> > <value>${project.build.directory}/appserver-home</value> > </systemProperty> > > Modified: > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java > URL: > http://svn.apache.org/viewvc/archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java?rev=709094&r1=709093&r2=709094&view=diff > > ============================================================================== > --- > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java > (original) > +++ > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java > Wed Oct 29 22:58:49 2008 > @@ -19,6 +19,7 @@ > * under the License. > */ > > +import com.atlassian.plugin.osgi.container.OsgiContainerManager; > import javax.servlet.ServletContextEvent; > import javax.servlet.ServletContextListener; > > @@ -26,6 +27,7 @@ > import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler; > import org.codehaus.plexus.spring.PlexusToSpringUtils; > import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor; > +import org.springframework.context.ApplicationContext; > import org.springframework.web.context.WebApplicationContext; > import org.springframework.web.context.support.WebApplicationContextUtils; > > @@ -46,9 +48,15 @@ > ArchivaTaskScheduler taskScheduler = (ArchivaTaskScheduler) > wac.getBean(PlexusToSpringUtils.buildSpringId(ArchivaTaskScheduler.class)); > TaskQueueExecutor databaseUpdateQueue = (TaskQueueExecutor) > wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, > "database-update")); > TaskQueueExecutor repositoryScanningQueue = (TaskQueueExecutor) > wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, > "repository-scanning")); > + OsgiContainerManager containerManager = > getOsgiContainerManager(wac); > > try > { > + if (!containerManager.isRunning()) > + { > + containerManager.start(); > + } > + containerManager.start(); > securitySync.startup(); > resolverFactory.startup(); > taskScheduler.startup(); > @@ -60,6 +68,18 @@ > } > } > > - public void contextDestroyed(ServletContextEvent contextEvent) { > + public void contextDestroyed(ServletContextEvent contextEvent) > + { > + WebApplicationContext wac = > > WebApplicationContextUtils.getRequiredWebApplicationContext(contextEvent.getServletContext()); > + OsgiContainerManager containerManager = > getOsgiContainerManager(wac); > + if (containerManager.isRunning()) > + { > + containerManager.stop(); > + } > + } > + > + private OsgiContainerManager > getOsgiContainerManager(ApplicationContext context) > + { > + return > (OsgiContainerManager)context.getBean("osgiContainerManager"); > } > } > > Modified: > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml > URL: > http://svn.apache.org/viewvc/archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml?rev=709094&r1=709093&r2=709094&view=diff > > ============================================================================== > --- > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml > (original) > +++ > archiva/branches/archiva-plugins/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml > Wed Oct 29 22:58:49 2008 > @@ -1,8 +1,14 @@ > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > - xsi:schemaLocation="http://www.springframework.org/schema/beans > - > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> > + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + xmlns:aop="http://www.springframework.org/schema/aop" > + xmlns:plugin="http://atlassian.com/schema/spring/plugin" > + xsi:schemaLocation=" > +http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > +http://atlassian.com/schema/spring/plugin > http://atlassian.com/schema/spring/plugin.xsd > +http://www.springframework.org/schema/aop > http://www.springframework.org/schema/aop/spring-aop.xsd"> > + > + <bean id="testbean" class="java.lang.Object" plugin:available="true"/> > > <bean id="loggerManager" > class="org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager" > init-method="initialize"/> > @@ -61,5 +67,33 @@ > > <bean name="mailSender" > class="org.springframework.mail.javamail.JavaMailSenderImpl"> > <property name="session" ref="mailSession"/> > - </bean> > + </bean> > + > + <!-- Plugin framework --> > + > + <bean name="pluginEventManager" > class="com.atlassian.plugin.event.impl.DefaultPluginEventManager" > scope="singleton"/> > + > + <bean id="packageScanningConfiguration" > class="com.atlassian.plugin.osgi.container.impl.DefaultPackageScannerConfiguration"> > + <property name="packageIncludes"> > + <list> > + <value>org.apache.*</value> > + </list> > + </property> > + <property name="packageExcludes"> > + <list> > + <value>com.springframework*</value> > + <value>org.apache.commons.logging*</value> > + <value>org.slf4j*</value> > + </list> > + </property> > + </bean> > + > + <bean id="osgiContainerManager" > class="com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager" > scope="singleton"> > + <constructor-arg value="${archiva.home}/framework-bundles"/> > + <constructor-arg ref="packageScanningConfiguration"/> > + <constructor-arg ref="hostComponentProvider"/> > + <constructor-arg ref="pluginEventManager"/> > + </bean> > + > + <!-- end plugin framework --> > </beans> > > Modified: archiva/branches/archiva-plugins/pom.xml > URL: > http://svn.apache.org/viewvc/archiva/branches/archiva-plugins/pom.xml?rev=709094&r1=709093&r2=709094&view=diff > > ============================================================================== > --- archiva/branches/archiva-plugins/pom.xml (original) > +++ archiva/branches/archiva-plugins/pom.xml Wed Oct 29 22:58:49 2008 > @@ -237,8 +237,8 @@ > </dependency> > <dependency> > <groupId>xerces</groupId> > - <artifactId>xercesImpl</artifactId> > - <version>2.8.1</version> > + <artifactId>xercesImpl</artifactId> > + <version>2.8.1</version> > </dependency> > <dependency> > <groupId>javax.activation</groupId> > @@ -409,9 +409,31 @@ > <version>1.2-SNAPSHOT</version> > </dependency> > <dependency> > + <groupId>com.atlassian.plugins</groupId> > + <artifactId>atlassian-plugins-osgi</artifactId> > + <version>2.2.0-SNAPSHOT</version> > + <exclusions> > + <exclusion> > + <groupId>commons-logging</groupId> > + <artifactId>commons-logging</artifactId> > + </exclusion> > + </exclusions> > + </dependency> > + <dependency> > + <groupId>com.atlassian.plugins</groupId> > + <artifactId>atlassian-plugins-spring</artifactId> > + <version>2.2.0-SNAPSHOT</version> > + <exclusions> > + <exclusion> > + <groupId>commons-logging</groupId> > + <artifactId>commons-logging</artifactId> > + </exclusion> > + </exclusions> > + </dependency> > + <dependency> > <groupId>org.codehaus.plexus</groupId> > <artifactId>plexus-spring</artifactId> > - <version>1.2</version> > + <version>1.3-SNAPSHOT</version> > <exclusions> > <exclusion> > <groupId>org.codehaus.plexus</groupId> > @@ -511,7 +533,29 @@ > <dependency> > <groupId>log4j</groupId> > <artifactId>log4j</artifactId> > - <version>1.2.14</version> > + <version>1.2.15</version> > + <exclusions> > + <exclusion> > + <groupId>com.sun.jdmk</groupId> > + <artifactId>jmxtools</artifactId> > + </exclusion> > + <exclusion> > + <groupId>com.sun.jmx</groupId> > + <artifactId>jmxri</artifactId> > + </exclusion> > + <exclusion> > + <groupId>javax.jms</groupId> > + <artifactId>jms</artifactId> > + </exclusion> > + <exclusion> > + <groupId>javax.mail</groupId> > + <artifactId>mail</artifactId> > + </exclusion> > + <exclusion> > + <groupId>javax.activation</groupId> > + <artifactId>activation</artifactId> > + </exclusion> > + </exclusions> > </dependency> > <dependency> > <groupId>org.apache.lucene</groupId> > > >
