You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2011/11/04 00:47:51 UTC

svn commit: r1197361 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav: ./ src/test/java/org/apache/archiva/webdav/ src/test/java/org/apache/archiva/webdav/util/ src/test/resources/ src/test/resources/WEB-INF/ src/test/resources/WEB-INF/re...

Author: olamy
Date: Thu Nov  3 23:47:50 2011
New Revision: 1197361

URL: http://svn.apache.org/viewvc?rev=1197361&view=rev
Log:
start fixing unit test on webdav module: ensure correctly closing lucene index on shutdown

Added:
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java   (with props)
Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-servlet-simple.xml

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml?rev=1197361&r1=1197360&r2=1197361&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml Thu Nov  3 23:47:50 2011
@@ -180,6 +180,11 @@
       <artifactId>archiva-repository-admin-default</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.redback</groupId>
+      <artifactId>redback-common-test-resources</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <plugins>

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java?rev=1197361&r1=1197360&r2=1197361&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java Thu Nov  3 23:47:50 2011
@@ -100,6 +100,16 @@ public abstract class AbstractRepository
         super.setUp();
     }
 
+    @Override
+    @After
+    public void tearDown()
+        throws Exception
+    {
+        shutdownServer( remoteCentral );
+        shutdownServer( remoteSnapshots );
+        super.tearDown();
+    }
+
     protected RemoteRepoInfo createServer( String id )
         throws Exception
     {
@@ -254,13 +264,5 @@ public abstract class AbstractRepository
         setupCleanRepo( remoteSnapshots.root );
     }
 
-    @Override
-    @After
-    public void tearDown()
-        throws Exception
-    {
-        shutdownServer( remoteCentral );
-        shutdownServer( remoteSnapshots );
-        super.tearDown();
-    }
+
 }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java?rev=1197361&r1=1197360&r2=1197361&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java Thu Nov  3 23:47:50 2011
@@ -27,11 +27,14 @@ import junit.framework.Assert;
 import junit.framework.TestCase;
 import net.sf.ehcache.CacheManager;
 import org.apache.archiva.admin.model.beans.ManagedRepository;
+import org.apache.archiva.common.plexusbridge.PlexusSisuBridge;
 import org.apache.commons.io.FileUtils;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.configuration.Configuration;
 import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
+import org.apache.maven.index.NexusIndexer;
+import org.apache.maven.index.context.IndexingContext;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -136,6 +139,8 @@ public abstract class AbstractRepository
     public void tearDown()
         throws Exception
     {
+
+
         if ( sc != null )
         {
             sc.clearContents();

Added: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java?rev=1197361&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java (added)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java Thu Nov  3 23:47:50 2011
@@ -0,0 +1,109 @@
+package org.apache.archiva.webdav.util;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import com.opensymphony.xwork2.inject.Inject;
+import org.apache.archiva.common.plexusbridge.PlexusSisuBridge;
+import org.apache.maven.index.NexusIndexer;
+import org.apache.maven.index.context.IndexingContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * @author Olivier Lamy
+ */
+@Service
+public class MavenIndexerCleaner
+    implements ServletContextListener
+{
+    Logger log = LoggerFactory.getLogger( getClass() );
+
+
+    PlexusSisuBridge plexusSisuBridge;
+
+    public void contextInitialized( ServletContextEvent servletContextEvent )
+    {
+        try
+        {
+            WebApplicationContext wacu =
+                WebApplicationContextUtils.getRequiredWebApplicationContext( servletContextEvent.getServletContext() );
+            plexusSisuBridge = wacu.getBean( PlexusSisuBridge.class );
+            cleanupIndex(  );
+
+        }
+        catch ( Exception e )
+        {
+            log.error( e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+    }
+
+    public void contextDestroyed( ServletContextEvent servletContextEvent )
+    {
+        try
+        {
+            cleanupIndex( );
+
+        }
+        catch ( Exception e )
+        {
+            log.error( e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+    }
+
+    public void cleanupIndex(  )
+        throws Exception
+    {
+        log.info( "cleanup IndexingContext" );
+        NexusIndexer nexusIndexer = plexusSisuBridge.lookup( NexusIndexer.class );
+        for ( IndexingContext context : nexusIndexer.getIndexingContexts().values() )
+        {
+            nexusIndexer.removeIndexingContext( context, true );
+        }
+    }
+
+    @Inject
+    private ApplicationContext applicationContext;
+
+    @PostConstruct
+    public void startup() throws Exception
+    {
+        plexusSisuBridge = applicationContext.getBean( PlexusSisuBridge.class );
+        cleanupIndex( );
+    }
+
+    @PreDestroy
+    public void shutdown()
+        throws Exception
+    {
+        cleanupIndex( );
+    }
+
+
+}

Propchange: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/util/MavenIndexerCleaner.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml?rev=1197361&r1=1197360&r2=1197361&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml Thu Nov  3 23:47:50 2011
@@ -27,6 +27,9 @@
   <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
+  <listener>
+    <listener-class>org.apache.archiva.webdav.util.MavenIndexerCleaner</listener-class>
+  </listener>
   <context-param>
 	  <param-name>contextClass</param-name>
 	  <param-value>org.codehaus.redback.components.springutils.CachingWebApplicationContext</param-value>

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml?rev=1197361&r1=1197360&r2=1197361&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml Thu Nov  3 23:47:50 2011
@@ -27,6 +27,9 @@
   <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
+  <listener>
+    <listener-class>org.apache.archiva.webdav.util.MavenIndexerCleaner</listener-class>
+  </listener>
   <context-param>
 	  <param-name>contextClass</param-name>
 	  <param-value>org.codehaus.redback.components.springutils.CachingWebApplicationContext</param-value>

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-servlet-simple.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-servlet-simple.xml?rev=1197361&r1=1197360&r2=1197361&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-servlet-simple.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-servlet-simple.xml Thu Nov  3 23:47:50 2011
@@ -25,7 +25,7 @@
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd"
-       default-lazy-init="true">
+       default-lazy-init="false">
 
   <bean name="archivaConfiguration#default"  class="org.apache.archiva.configuration.DefaultArchivaConfiguration">
     <property name="registry" ref="registry#default"/>
@@ -52,4 +52,7 @@
 
   <bean name="componentContainer" class="org.codehaus.redback.components.springutils.ComponentContainer"/>
 
+  <context:annotation-config/>
+  <context:component-scan base-package="org.apache.archiva.webdav.util"/>
+
 </beans>
\ No newline at end of file