You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@archiva.apache.org by Emmanuel Venisse <em...@gmail.com> on 2008/10/30 12:28:26 UTC

Re: svn commit: r709094 - in /archiva/branches/archiva-plugins: ./ archiva-modules/archiva-web/archiva-webapp/ archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ archiva-modules/archiva-web/archiva-webapp/s

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, <jd...@apache.org> 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>
>
>
>