o update branch with latest changes from trunk


git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/archiva-nexus-indexer@740534 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/archiva-docs/pom.xml b/archiva-docs/pom.xml
index fe78803..c539590 100644
--- a/archiva-docs/pom.xml
+++ b/archiva-docs/pom.xml
@@ -45,7 +45,6 @@
       </plugin>
       <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
-        <version>2.1</version>
         <configuration>
           <descriptor>src/site/assembly/docs.xml</descriptor>
         </configuration>
diff --git a/archiva-jetty/pom.xml b/archiva-jetty/pom.xml
index 09928b1..3a56a66 100644
--- a/archiva-jetty/pom.xml
+++ b/archiva-jetty/pom.xml
@@ -239,7 +239,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-assembly-plugin</artifactId>
-        <version>2.1</version>
         <executions>
           <execution>
             <phase>package</phase>
diff --git a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
index 7059598..11d3959 100644
--- a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
+++ b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
@@ -21,7 +21,6 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.codehaus.plexus.redback.authentication.AuthenticationException;
 import org.codehaus.plexus.redback.authentication.AuthenticationResult;
 import org.codehaus.plexus.redback.authorization.AuthorizationException;
diff --git a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java
index 5aeeedd..a5bb09e 100644
--- a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java
+++ b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java
@@ -21,7 +21,6 @@
 
 import java.util.Map;
 
-import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.codehaus.plexus.redback.system.SecuritySession;
 import org.codehaus.plexus.redback.system.SecuritySystemConstants;
 import org.codehaus.plexus.redback.users.User;
diff --git a/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml b/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml
index adfb9b2..81cbaa5 100644
--- a/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml
+++ b/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml
@@ -97,11 +97,6 @@
           <role-hint>default</role-hint>
           <field-name>evaluator</field-name>
         </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
-          <role-hint>default</role-hint>
-          <field-name>config</field-name>
-        </requirement>
       </requirements>
     </component>
     
diff --git a/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml b/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml
index 8d43cac..740b5df 100644
--- a/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml
+++ b/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml
@@ -83,11 +83,6 @@
           <role-hint>default</role-hint>
           <field-name>evaluator</field-name>
         </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
-          <role-hint>default</role-hint>
-          <field-name>config</field-name>
-        </requirement>
       </requirements>
     </component>
     
diff --git a/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml b/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml
index 0ff02e8..258185a 100644
--- a/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml
+++ b/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml
@@ -120,10 +120,6 @@
           <role-hint>memory</role-hint>
           <field-name>rbacManager</field-name>
         </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.PlexusContainer</role>
-          <field-name>container</field-name>
-        </requirement>
       </requirements>
     </component>
     
@@ -180,11 +176,6 @@
           <role-hint>default</role-hint>
           <field-name>evaluator</field-name>
         </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
-          <role-hint>default</role-hint>
-          <field-name>config</field-name>
-        </requirement>
       </requirements>
     </component>
     
diff --git a/archiva-modules/archiva-web/archiva-webapp/pom.xml b/archiva-modules/archiva-web/archiva-webapp/pom.xml
index f353e46..587810f 100644
--- a/archiva-modules/archiva-web/archiva-webapp/pom.xml
+++ b/archiva-modules/archiva-web/archiva-webapp/pom.xml
@@ -332,6 +332,32 @@
           </execution>  
         </executions>
       </plugin>
+      <!-- 
+        here's a hack to prevent multiple struts core and same struts.xml in classpath
+        which prevent struts start
+      -->
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>cleanup-struts-jar-in-webapp</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <tasks>
+                <delete includeemptydirs="true">
+                  <fileset dir="${basedir}/src/main/webapp/WEB-INF/lib" includes="**/struts2*.jar" />
+                </delete>
+                <delete includeemptydirs="true">
+                  <fileset dir="${basedir}/src/main/webapp/WEB-INF/classes" includes="**/struts.*" />
+                </delete>
+              </tasks>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>maven-jetty-plugin</artifactId>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
index 8702c48..199dc66 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
@@ -321,7 +321,7 @@
           <field-name>userImpl</field-name>
         </requirement>
         <requirement>
-          <role>org.codehaus.plexus.ehcache.EhcacheComponent</role>
+          <role>org.codehaus.plexus.cache.Cache</role>
           <role-hint>users</role-hint>
           <field-name>usersCache</field-name>
         </requirement>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp
index be13cc0..9a07ebe 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp
@@ -27,7 +27,7 @@
       <s:set name="organisationLogo" value="organisationLogo"/>
       <c:choose>
         <c:when test="${!empty (organisationUrl)}">
-          <a href="${companyUrl}">
+          <a href="${organisationUrl}">
             <img src="${organisationLogo}" title="${organisationName}"/>
           </a>
         </c:when>
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java
index 1fa9fd1..c04ae97 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java
@@ -27,7 +27,7 @@
 
 import com.atlassian.xmlrpc.ServiceObject;
 
-@ServiceObject("Search")
+@ServiceObject("SearchService")
 public interface SearchService
 {
    /*
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java
index bc553e3..d55c978 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java
@@ -20,7 +20,6 @@
  */
 
 import java.io.Serializable;
-import java.util.Date;
 
 import com.atlassian.xmlrpc.ServiceBean;
 import com.atlassian.xmlrpc.ServiceBeanField;
@@ -39,22 +38,22 @@
 
     private String type;
 
-    private Date whenGathered;
+    //private Date whenGathered;
     
     public Artifact()
     {
 
     }
 
-    public Artifact( String repositoryId, String groupId, String artifactId, String version,
-                     String type, Date whenGathered )
+    public Artifact( String repositoryId, String groupId, String artifactId, String version, String type )
+//                     String type, Date whenGathered )
     {   
         this.repositoryId = repositoryId;
         this.groupId = groupId;
         this.artifactId = artifactId;
         this.version = version;
         this.type = type;
-        this.whenGathered = whenGathered;
+        //this.whenGathered = whenGathered;
     }
 
     public String getGroupId()
@@ -77,10 +76,10 @@
         return type;
     }
 
-    public Date getWhenGathered()
+    /*public Date getWhenGathered()
     {
         return whenGathered;
-    }
+    }*/
 
     @ServiceBeanField( "groupId" )
     public void setGroupId( String groupId )
@@ -106,11 +105,11 @@
         this.type = type;
     }
 
-    @ServiceBeanField( "whenGathered" )
+    /*@ServiceBeanField( "whenGathered" )
     public void setWhenGathered( Date whenGathered )
     {
         this.whenGathered = whenGathered;
-    }
+    }*/
 
     public String getRepositoryId()
     {
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java
index 5e3a67f..ac6839c 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java
@@ -23,6 +23,8 @@
 import java.util.List;
 
 import org.apache.archiva.web.xmlrpc.api.AdministrationService;
+import org.apache.archiva.web.xmlrpc.api.SearchService;
+import org.apache.archiva.web.xmlrpc.api.beans.Artifact;
 import org.apache.archiva.web.xmlrpc.api.beans.ManagedRepository;
 import org.apache.archiva.web.xmlrpc.api.beans.RemoteRepository;
 
@@ -117,6 +119,23 @@
             System.out.println( "\nDeleted artifact 'javax.activation:activation:1.1' from repository 'internal' : " +
                 ( (Boolean) success ).booleanValue() );
             */
+            
+            /* quick search */            
+            /*
+             * NOTE: before enabling & invoking search service, make sure that the artifacts you're searching
+             *      for has been indexed already in order to get results
+             *        
+            SearchService searchService = binder.bind( SearchService.class, new URL( args[0] ), authnInfo );
+            List<Artifact> artifacts = searchService.quickSearch( "org" );
+            
+            System.out.println( "\n************ Search Results for 'org' *************" );
+            for( Artifact artifact : artifacts )
+            {
+                System.out.println( "Artifact: " + artifact.getGroupId() + ":" + artifact.getArtifactId() +
+                                    ":" + artifact.getVersion() );
+            }            
+             */
+            
         }
         catch ( BindingException e )
         {
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/src/test/resources/org/apache/archiva/xmlrpc/security/XmlRpcAuthenticatorTest.xml b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/src/test/resources/org/apache/archiva/xmlrpc/security/XmlRpcAuthenticatorTest.xml
index 9c7b934..d6e0d2a 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/src/test/resources/org/apache/archiva/xmlrpc/security/XmlRpcAuthenticatorTest.xml
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/src/test/resources/org/apache/archiva/xmlrpc/security/XmlRpcAuthenticatorTest.xml
@@ -85,11 +85,6 @@
           <role-hint>default</role-hint>
           <field-name>evaluator</field-name>
         </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
-          <role-hint>default</role-hint>
-          <field-name>config</field-name>
-        </requirement>
       </requirements>
     </component>
     
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
index fc9c24f..d08f50b 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
@@ -29,6 +29,7 @@
 import org.apache.archiva.web.xmlrpc.api.beans.Dependency;
 import org.apache.archiva.web.xmlrpc.security.XmlRpcUserRepositories;
 import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.ArchivaDatabaseException;
 import org.apache.maven.archiva.database.ArtifactDAO;
 import org.apache.maven.archiva.database.ObjectNotFoundException;
 import org.apache.maven.archiva.database.browsing.BrowsingResults;
@@ -93,16 +94,28 @@
         for( SearchResultHit hit : hits )
         {   
             ArtifactDAO artifactDAO = archivaDAO.getArtifactDAO(); 
-            ArchivaArtifact pomArtifact = artifactDAO.getArtifact( 
-                       hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" );
-            
-            if( pomArtifact != null )
+            try
             {
-                Artifact artifact = new Artifact( pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), pomArtifact.getArtifactId(), pomArtifact.getVersion(),
-                                                  pomArtifact.getType(), pomArtifact.getModel().getWhenGathered() );
-                artifacts.add( artifact );
+                ArchivaArtifact pomArtifact = artifactDAO.getArtifact( 
+                           hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" );
+                
+                if( pomArtifact != null )
+                {
+                    Artifact artifact = new Artifact( pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), pomArtifact.getArtifactId(), pomArtifact.getVersion(),
+                                                      pomArtifact.getType() );
+                                                      //pomArtifact.getType(), pomArtifact.getModel().getWhenGathered() );
+                    artifacts.add( artifact );
+                }
+                else
+                {
+                    continue;
+                }
             }
-            else
+            catch ( ObjectNotFoundException e )
+            {
+                continue;
+            }
+            catch ( ArchivaDatabaseException e )
             {
                 continue;
             }
@@ -128,8 +141,8 @@
         for( ArchivaArtifact archivaArtifact : artifacts )
         {
             Artifact artifact = new Artifact( archivaArtifact.getModel().getRepositoryId(), archivaArtifact.getModel().getGroupId(),
-                          archivaArtifact.getModel().getArtifactId(), archivaArtifact.getModel().getVersion(), archivaArtifact.getType(), 
-                          archivaArtifact.getModel().getWhenGathered() );
+                          archivaArtifact.getModel().getArtifactId(), archivaArtifact.getModel().getVersion(), archivaArtifact.getType() ); 
+                          //archivaArtifact.getModel().getWhenGathered() );
             results.add( artifact );
         }
         
@@ -148,8 +161,8 @@
         for( String version : results.getVersions() )
         {
             ArchivaArtifact pomArtifact = artifactDAO.getArtifact( groupId, artifactId, version, "", "pom" );
-            Artifact artifact = new Artifact( "", groupId, artifactId, version, pomArtifact.getType(), 
-                          pomArtifact.getModel().getWhenGathered() );
+            Artifact artifact = new Artifact( "", groupId, artifactId, version, pomArtifact.getType() ); 
+                          //pomArtifact.getModel().getWhenGathered() );
             
             artifacts.add( artifact );
         }
@@ -213,7 +226,9 @@
         List<ArchivaProjectModel> dependees = repoBrowsing.getUsedBy( "", observableRepos, "org.apache.archiva", "archiva-test", "1.0" );
         for( ArchivaProjectModel model : dependees )
         {
-            Artifact artifact = new Artifact( "", model.getGroupId(), model.getArtifactId(), model.getVersion(), "", model.getWhenIndexed() );
+            Artifact artifact =
+                new Artifact( "", model.getGroupId(), model.getArtifactId(), model.getVersion(), "" );
+                              //model.getWhenIndexed() );
             artifacts.add( artifact );
         }
         
diff --git a/pom.xml b/pom.xml
index 4df299d..d2a342c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -114,6 +114,11 @@
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>2.2-beta-3</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>2.0.2</version>
           <configuration>
@@ -983,7 +988,7 @@
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
-        <version>2.5.5</version>
+        <version>${spring.version}</version>
         <exclusions>
           <exclusion>
             <groupId>commons-logging</groupId>
@@ -994,7 +999,7 @@
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-web</artifactId>
-        <version>2.5.5</version>
+        <version>${spring.version}</version>
         <exclusions>
           <exclusion>
             <groupId>commons-logging</groupId>
@@ -1005,7 +1010,7 @@
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-beans</artifactId>
-        <version>2.5.5</version>
+        <version>${spring.version}</version>
         <exclusions>
           <exclusion>
             <groupId>commons-logging</groupId>
@@ -1074,9 +1079,10 @@
   <properties>
     <maven.version>2.0.8</maven.version>
     <wagon.version>1.0-beta-4</wagon.version>
-    <redback.version>1.2-beta-1</redback.version>
+    <redback.version>1.2-beta-2</redback.version>
     <jetty.version>6.1.6</jetty.version>
     <binder.version>0.9</binder.version>
+    <spring.version>2.5.6</spring.version>
   </properties>
   <profiles>
     <profile>
@@ -1085,7 +1091,6 @@
         <plugins>
           <plugin>
             <artifactId>maven-assembly-plugin</artifactId>
-            <version>2.2-beta-2</version>
             <inherited>false</inherited>
             <configuration>
               <descriptors>