Author: brett
Date: Fri Mar 14 00:15:16 2008
New Revision: 637010

URL: http://svn.apache.org/viewvc?rev=637010&view=rev
Log:
workaround the fact that load-on-start doesn't work with the spring integration 
(and this is better anyway)

Modified:
    
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
    
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java
    
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
    
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
    
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml

Modified: 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java?rev=637010&r1=637009&r2=637010&view=diff
==============================================================================
--- 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
 (original)
+++ 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
 Fri Mar 14 00:15:16 2008
@@ -19,56 +19,54 @@
  * under the License.
  */
 
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletException;
+
 import org.apache.maven.archiva.common.ArchivaException;
 import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import 
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.spring.PlexusToSpringUtils;
+import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
+import org.mortbay.jetty.webapp.WebAppContext;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
 
 /**
  * ArchivaStartup - the startup of all archiva features in a deterministic 
order. 
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
  * @version $Id$
- * 
- * @plexus.component 
- *              role="org.apache.maven.archiva.web.startup.ArchivaStartup"
- *              role-hint="default"
  */
 public class ArchivaStartup
-    extends AbstractLogEnabled
-    implements Initializable
+    implements ServletContextListener
 {
-    /**
-     * @plexus.requirement role-hint="default"
-     */
-    private SecuritySynchronization securitySync;
-
-    /**
-     * @plexus.requirement role-hint="default"
-     */
-    private ResolverFactoryInit resolverFactory;
-
-    /**
-     * @plexus.requirement role-hint="default"
-     */
-    private ArchivaTaskScheduler taskScheduler;
+       public void contextDestroyed(ServletContextEvent arg0) {
+       }
 
-    public void initialize()
-        throws InitializationException
-    {
-        Banner.display( getLogger(), ArchivaVersion.determineVersion( 
this.getClass().getClassLoader() ) );
+       public void contextInitialized(ServletContextEvent arg0) {
+               WebApplicationContext wac =  
WebApplicationContextUtils.getRequiredWebApplicationContext(arg0.getServletContext());
+               
+           SecuritySynchronization securitySync = (SecuritySynchronization) 
wac.getBean(PlexusToSpringUtils.buildSpringId(SecuritySynchronization.class));
+           ResolverFactoryInit resolverFactory = (ResolverFactoryInit) 
wac.getBean(PlexusToSpringUtils.buildSpringId(ResolverFactoryInit.class));
+           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"));
+           Banner banner = (Banner) 
wac.getBean(PlexusToSpringUtils.buildSpringId(Banner.class));
 
-        try
+           try
         {
             securitySync.startup();
             resolverFactory.startup();
             taskScheduler.startup();
+            banner.display();
         }
         catch ( ArchivaException e )
         {
-            throw new InitializationException( "Unable to properly startup 
archiva: " + e.getMessage(), e );
+            throw new RuntimeException( "Unable to properly startup archiva: " 
+ e.getMessage(), e );
         }
-    }
+       }
 
 }

Modified: 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java?rev=637010&r1=637009&r2=637010&view=diff
==============================================================================
--- 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java
 (original)
+++ 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java
 Fri Mar 14 00:15:16 2008
@@ -224,15 +224,8 @@
         return injectVersion( decode( encodedBanner ), version );
     }
 
-    public static void display( Logger logger, String version )
-    {
-        String banner = getBanner( version );
-        logger.info( StringUtils.repeat( "_", 25 ) + "\n" + banner );
-    }
-    
-    public void initialize()
-        throws InitializationException
-    {
-        Banner.display( getLogger(), ArchivaVersion.determineVersion( 
this.getClass().getClassLoader() ) );
-    }
+       public void display() {
+        String banner = getBanner( ArchivaVersion.determineVersion( 
this.getClass().getClassLoader() ) );
+        getLogger().info( StringUtils.repeat( "_", 25 ) + "\n" + banner );
+       }
 }

Modified: 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml?rev=637010&r1=637009&r2=637010&view=diff
==============================================================================
--- 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
 (original)
+++ 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
 Fri Mar 14 00:15:16 2008
@@ -19,21 +19,6 @@
   -->
 
 <plexus>
-  <load-on-start>
-    <component>
-      <role>org.apache.maven.archiva.web.startup.ArchivaStartup</role>
-      <role-hint>default</role-hint>
-    </component>
-    <component>
-      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
-      <role-hint>database-update</role-hint>
-    </component>
-    <component>
-      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
-      <role-hint>repository-scanning</role-hint>
-    </component>
-  </load-on-start>
-
   <components>
     <component>
       <role>org.codehaus.plexus.registry.Registry</role>

Modified: 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml?rev=637010&r1=637009&r2=637010&view=diff
==============================================================================
--- 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
 (original)
+++ 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
 Fri Mar 14 00:15:16 2008
@@ -11,4 +11,4 @@
     <constructor-arg ref="cache#url-failures-cache" 
type="org.codehaus.plexus.cache.Cache"/>
   </bean>
 
-</beans>
\ No newline at end of file
+</beans>

Modified: 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml?rev=637010&r1=637009&r2=637010&view=diff
==============================================================================
--- 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
 (original)
+++ 
maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
 Fri Mar 14 00:15:16 2008
@@ -58,6 +58,10 @@
   <listener>
     
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
+  <listener>
+    <!-- TODO: some Spring technique for this? -->
+       
<listener-class>org.apache.maven.archiva.web.startup.ArchivaStartup</listener-class>
+  </listener>
 
   <context-param>
     <param-name>contextClass</param-name>


Reply via email to