You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ol...@apache.org on 2008/03/27 01:12:20 UTC

svn commit: r641653 - in /continuum/branches/continuum-spring: continuum-commons/ continuum-commons/src/main/java/org/apache/maven/continuum/utils/ continuum-core/ continuum-core/src/main/java/org/apache/maven/continuum/execution/ continuum-core/src/te...

Author: olamy
Date: Wed Mar 26 17:12:17 2008
New Revision: 641653

URL: http://svn.apache.org/viewvc?rev=641653&view=rev
Log:
continuum now works with plexus-spring

Added:
    continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java   (with props)
Modified:
    continuum/branches/continuum-spring/continuum-commons/pom.xml
    continuum/branches/continuum-spring/continuum-core/pom.xml
    continuum/branches/continuum-spring/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
    continuum/branches/continuum-spring/continuum-core/src/test-projects/timeout/pom.xml
    continuum/branches/continuum-spring/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
    continuum/branches/continuum-spring/continuum-core/src/test/resources/log4j.properties
    continuum/branches/continuum-spring/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml
    continuum/branches/continuum-spring/continuum-webapp/src/main/resources/META-INF/plexus/application.xml

Modified: continuum/branches/continuum-spring/continuum-commons/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-commons/pom.xml?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-commons/pom.xml (original)
+++ continuum/branches/continuum-spring/continuum-commons/pom.xml Wed Mar 26 17:12:17 2008
@@ -50,7 +50,12 @@
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-spring</artifactId>
       <scope>test</scope>
-    </dependency>    
+    </dependency>  
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>      
   </dependencies>
   <build>
     <plugins>

Added: continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java?rev=641653&view=auto
==============================================================================
--- continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java (added)
+++ continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java Wed Mar 26 17:12:17 2008
@@ -0,0 +1,564 @@
+/*
+ * 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.
+ */
+package org.apache.maven.continuum.utils;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.oro.text.perl.Perl5Util;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.configuration.PlexusConfigurationException;
+import org.codehaus.plexus.formica.validation.AbstractValidator;
+import org.codehaus.plexus.formica.validation.util.Flags;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Configurable;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 27 mars 2008
+ * @version $Id$
+ * @plexus.component
+ *   role-hint="continuumUrl"
+ */
+public class ContinuumUrlValidator
+    extends AbstractValidator
+    implements Configurable
+{
+    /**
+     * Allows all validly formatted schemes to pass validation instead of 
+     * supplying a set of valid schemes.
+     */
+    public static final int ALLOW_ALL_SCHEMES = 1 << 0;
+
+    /**
+     * Allow two slashes in the path component of the URL.
+     */
+    public static final int ALLOW_2_SLASHES = 1 << 1;
+
+    /**
+     * Enabling this options disallows any URL fragments.
+     */
+    public static final int NO_FRAGMENTS = 1 << 2;
+
+    private static final String ALPHA_CHARS = "a-zA-Z";
+
+    private static final String ALPHA_NUMERIC_CHARS = ALPHA_CHARS + "\\d";
+
+    private static final String SPECIAL_CHARS = ";/@&=,.?:+$";
+
+    private static final String VALID_CHARS = "[^\\s" + SPECIAL_CHARS + "]";
+
+    private static final String SCHEME_CHARS = ALPHA_CHARS;
+
+    // Drop numeric, and  "+-." for now
+    private static final String AUTHORITY_CHARS = ALPHA_NUMERIC_CHARS + "\\-\\.";
+
+    private static final String ATOM = VALID_CHARS + '+';
+
+    /**
+     * This expression derived/taken from the BNF for URI (RFC2396).
+     */
+    private static final String URL_PATTERN = "/^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/";
+
+    //                                                                      12            3  4          5       6   7        8 9
+
+    /**
+     * Schema/Protocol (ie. http:, ftp:, file:, etc).
+     */
+    private static final int PARSE_URL_SCHEME = 2;
+
+    /**
+     * Includes hostname/ip and port number.
+     */
+    private static final int PARSE_URL_AUTHORITY = 4;
+
+    private static final int PARSE_URL_PATH = 5;
+
+    private static final int PARSE_URL_QUERY = 7;
+
+    private static final int PARSE_URL_FRAGMENT = 9;
+
+    /**
+     * Protocol (ie. http:, ftp:,https:).
+     */
+    private static final String SCHEME_PATTERN = "/^[" + SCHEME_CHARS + "]/";
+
+    private static final String AUTHORITY_PATTERN = "/^([" + AUTHORITY_CHARS + "]*)(:\\d*)?(.*)?/";
+
+    //                                                                            1                          2  3       4
+
+    private static final int PARSE_AUTHORITY_HOST_IP = 1;
+
+    private static final int PARSE_AUTHORITY_PORT = 2;
+
+    /**
+     * Should always be empty.
+     */
+    private static final int PARSE_AUTHORITY_EXTRA = 3;
+
+    private static final String PATH_PATTERN = "/^(/[-\\w:@&?=+,.!/~*'%$_;]*)?$/";
+
+    private static final String QUERY_PATTERN = "/^(.*)$/";
+
+    private static final String LEGAL_ASCII_PATTERN = "/^[\\000-\\177]+$/";
+
+    private static final String IP_V4_DOMAIN_PATTERN = "/^(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})$/";
+
+    private static final String DOMAIN_PATTERN = "/^" + ATOM + "(\\." + ATOM + ")*$/";
+
+    private static final String PORT_PATTERN = "/^:(\\d{1,5})$/";
+
+    private static final String ATOM_PATTERN = "/(" + ATOM + ")/";
+
+    private static final String ALPHA_PATTERN = "/^[" + ALPHA_CHARS + "]/";
+
+    /**
+     * Holds the set of current validation options.
+     */
+    private Flags options = null;
+
+    /**
+     * The set of schemes that are allowed to be in a URL.
+     */
+    private Set<String> allowedSchemes = new HashSet<String>();
+
+    /**
+     * If no schemes are provided, default to this set.
+     */
+    protected String[] defaultSchemes = { "http", "https", "ftp" };
+
+    /**
+     * Create a UrlValidator with default properties.
+     */
+    public ContinuumUrlValidator()
+    {
+        this( null );
+    }
+
+    /**
+     * Behavior of validation is modified by passing in several strings options:
+     * @param schemes Pass in one or more url schemes to consider valid, passing in
+     *        a null will default to "http,https,ftp" being valid.
+     *        If a non-null schemes is specified then all valid schemes must
+     *        be specified. Setting the ALLOW_ALL_SCHEMES option will
+     *        ignore the contents of schemes.
+     */
+    public ContinuumUrlValidator( String[] schemes )
+    {
+        this( schemes, 0 );
+    }
+
+    /**
+     * Initialize a UrlValidator with the given validation options.
+     * @param options The options should be set using the public constants declared in
+     * this class.  To set multiple options you simply add them together.  For example,
+     * ALLOW_2_SLASHES + NO_FRAGMENTS enables both of those options.
+     */
+    public ContinuumUrlValidator( int options )
+    {
+        this( null, options );
+    }
+
+    /**
+     * Behavour of validation is modified by passing in options:
+     * @param schemes The set of valid schemes.
+     * @param options The options should be set using the public constants declared in
+     * this class.  To set multiple options you simply add them together.  For example,
+     * ALLOW_2_SLASHES + NO_FRAGMENTS enables both of those options.
+     */
+    public ContinuumUrlValidator( String[] schemes, int options )
+    {
+        this.options = new Flags( options );
+
+        if ( this.options.isOn( ALLOW_ALL_SCHEMES ) )
+        {
+            return;
+        }
+
+        if ( schemes == null && this.allowedSchemes.isEmpty() )
+        {
+            schemes = this.defaultSchemes;
+        }
+
+        this.allowedSchemes.addAll( Arrays.asList( schemes ) );
+    }
+
+    /**
+     * <p>Checks if a field has a valid url address.</p>
+     *
+     * @param value The value validation is being performed on.  A <code>null</code>
+     * value is considered invalid.
+     * @return true if the url is valid.
+     */
+    public boolean validate( String value )
+    {
+        return isValid( value );
+    }
+
+    /**
+     * <p>Checks if a field has a valid url address.</p>
+     *
+     * @param value The value validation is being performed on.  A <code>null</code>
+     * value is considered valid.
+     * @return true if the url is valid.
+     */
+    public boolean isValid( String value )
+    {
+        if ( StringUtils.isEmpty( value ) )
+        {
+            return true;
+        }
+
+        value = replace( value, " ", "%20" );
+
+        Perl5Util matchUrlPat = new Perl5Util();
+        Perl5Util matchAsciiPat = new Perl5Util();
+
+        if ( !matchAsciiPat.match( LEGAL_ASCII_PATTERN, value ) )
+        {
+            return false;
+        }
+
+        // Check the whole url address structure
+        if ( !matchUrlPat.match( URL_PATTERN, value ) )
+        {
+            return false;
+        }
+
+        String scheme = matchUrlPat.group( PARSE_URL_SCHEME );
+
+        if ( !isValidScheme( scheme ) )
+        {
+            return false;
+        }
+
+        if ( !"file".equals( scheme ) )
+        {
+            String authority = matchUrlPat.group( PARSE_URL_AUTHORITY );
+
+            if ( authority.indexOf( "@" ) != -1 )
+            {
+                String userPassword = authority.substring( 0, authority.indexOf( "@" ) );
+
+                authority = authority.substring( authority.indexOf( "@" ) + 1 );
+
+                if ( userPassword.indexOf( ":" ) == -1 ||
+                     userPassword.indexOf( ":" ) == 0 ||
+                     userPassword.indexOf( ":" ) == userPassword.length() - 1 )
+                {
+                    return false;
+                }
+            }
+
+            if ( !isValidAuthority( authority ) )
+            {
+                return false;
+            }
+
+            if ( !isValidQuery( matchUrlPat.group( PARSE_URL_QUERY ) ) )
+            {
+                return false;
+            }
+
+            if ( !isValidFragment( matchUrlPat.group( PARSE_URL_FRAGMENT ) ) )
+            {
+                return false;
+            }
+        }
+
+        if ( !isValidPath( matchUrlPat.group( PARSE_URL_PATH ) ) )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Validate scheme. If schemes[] was initialized to a non null,
+     * then only those scheme's are allowed.  Note this is slightly different
+     * than for the constructor.
+     * @param scheme The scheme to validate.  A <code>null</code> value is considered
+     * invalid.
+     * @return true if valid.
+     */
+    protected boolean isValidScheme( String scheme )
+    {
+        if ( scheme == null )
+        {
+            return false;
+        }
+
+        Perl5Util schemeMatcher = new Perl5Util();
+        if ( !schemeMatcher.match( SCHEME_PATTERN, scheme ) )
+        {
+            return false;
+        }
+
+        if ( this.options.isOff( ALLOW_ALL_SCHEMES ) )
+        {
+
+            if ( !this.allowedSchemes.contains( scheme ) )
+            {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns true if the authority is properly formatted.  An authority is the combination
+     * of hostname and port.  A <code>null</code> authority value is considered invalid.
+     */
+    protected boolean isValidAuthority( String authority )
+    {
+        if ( authority == null )
+        {
+            return false;
+        }
+
+        Perl5Util authorityMatcher = new Perl5Util();
+        Perl5Util matchIPV4Pat = new Perl5Util();
+
+        if ( !authorityMatcher.match( AUTHORITY_PATTERN, authority ) )
+        {
+            return false;
+        }
+
+        boolean ipV4Address = false;
+        boolean hostname = false;
+        // check if authority is IP address or hostname
+        String hostIP = authorityMatcher.group( PARSE_AUTHORITY_HOST_IP );
+        ipV4Address = matchIPV4Pat.match( IP_V4_DOMAIN_PATTERN, hostIP );
+
+        if ( ipV4Address )
+        {
+            // this is an IP address so check components
+            for ( int i = 1; i <= 4; i++ )
+            {
+                String ipSegment = matchIPV4Pat.group( i );
+                if ( ipSegment == null || ipSegment.length() <= 0 )
+                {
+                    return false;
+                }
+
+                try
+                {
+                    if ( Integer.parseInt( ipSegment ) > 255 )
+                    {
+                        return false;
+                    }
+                }
+                catch ( NumberFormatException e )
+                {
+                    return false;
+                }
+
+            }
+        }
+        else
+        {
+            // Domain is hostname name
+            Perl5Util domainMatcher = new Perl5Util();
+            hostname = domainMatcher.match( DOMAIN_PATTERN, hostIP );
+        }
+
+        //rightmost hostname will never start with a digit.
+        if ( hostname )
+        {
+            String[] domainSegment = new String[10];
+            boolean match = true;
+            int segmentCount = 0;
+            int segmentLength = 0;
+            Perl5Util atomMatcher = new Perl5Util();
+
+            while ( match )
+            {
+                match = atomMatcher.match( ATOM_PATTERN, hostIP );
+                if ( match )
+                {
+                    domainSegment[segmentCount] = atomMatcher.group( 1 );
+                    segmentLength = domainSegment[segmentCount].length() + 1;
+                    hostIP = ( segmentLength >= hostIP.length() ) ? "" : hostIP.substring( segmentLength );
+
+                    segmentCount++;
+                }
+            }
+            String topLevel = domainSegment[segmentCount - 1];
+            // don't check toplevel when we have only a server name like localhost
+            if ( segmentCount != 1 && (topLevel.length() < 2 ) )
+            {
+                return false;
+            }
+
+            // First letter of top level must be a alpha
+            Perl5Util alphaMatcher = new Perl5Util();
+            if ( !alphaMatcher.match( ALPHA_PATTERN, topLevel.substring( 0, 1 ) ) )
+            {
+                return false;
+            }
+        }
+
+        if ( !hostname && !ipV4Address )
+        {
+            return false;
+        }
+
+        String port = authorityMatcher.group( PARSE_AUTHORITY_PORT );
+        if ( port != null )
+        {
+            Perl5Util portMatcher = new Perl5Util();
+            if ( !portMatcher.match( PORT_PATTERN, port ) )
+            {
+                return false;
+            }
+        }
+
+        String extra = authorityMatcher.group( PARSE_AUTHORITY_EXTRA );
+        if ( !isBlankOrNull( extra ) )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns true if the path is valid.  A <code>null</code> value is considered invalid.
+     */
+    protected boolean isValidPath( String path )
+    {
+        if ( path == null )
+        {
+            return false;
+        }
+
+        Perl5Util pathMatcher = new Perl5Util();
+
+        if ( !pathMatcher.match( PATH_PATTERN, path ) )
+        {
+            return false;
+        }
+
+        int slash2Count = countToken( "//", path );
+        if ( this.options.isOff( ALLOW_2_SLASHES ) && ( slash2Count > 0 ) )
+        {
+            return false;
+        }
+
+        int slashCount = countToken( "/", path );
+        int dot2Count = countToken( "..", path );
+        if ( dot2Count > 0 )
+        {
+            if ( ( slashCount - slash2Count - 1 ) <= dot2Count )
+            {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns true if the query is null or it's a properly formatted query string.
+     */
+    protected boolean isValidQuery( String query )
+    {
+        if ( query == null )
+        {
+            return true;
+        }
+
+        Perl5Util queryMatcher = new Perl5Util();
+        return queryMatcher.match( QUERY_PATTERN, query );
+    }
+
+    /**
+     * Returns true if the given fragment is null or fragments are allowed.
+     */
+    protected boolean isValidFragment( String fragment )
+    {
+        if ( fragment == null )
+        {
+            return true;
+        }
+
+        return this.options.isOff( NO_FRAGMENTS );
+    }
+
+    /**
+     * Returns the number of times the token appears in the target.
+     */
+    protected int countToken( String token, String target )
+    {
+        int tokenIndex = 0;
+        int count = 0;
+        while ( tokenIndex != -1 )
+        {
+            tokenIndex = target.indexOf( token, tokenIndex );
+            if ( tokenIndex > -1 )
+            {
+                tokenIndex++;
+                count++;
+            }
+        }
+        return count;
+    }
+
+    private static boolean isBlankOrNull( String value )
+    {
+        return ( ( value == null ) || ( value.trim().length() == 0 ) );
+    }
+
+    public static String replace( String text, String repl, String with )
+    {
+        if ( text == null || repl == null || with == null || repl.length() == 0 )
+        {
+            return text;
+        }
+
+        StringBuffer buf = new StringBuffer( text.length() );
+        int start = 0, end = 0;
+        while ( ( end = text.indexOf( repl, start ) ) != -1 )
+        {
+            buf.append( text.substring( start, end ) ).append( with );
+            start = end + repl.length();
+        }
+
+        buf.append( text.substring( start ) );
+        return buf.toString();
+    }
+
+    public void configure( PlexusConfiguration plexusConfiguration )
+        throws PlexusConfigurationException
+    {
+        PlexusConfiguration allowedSchemesElement = plexusConfiguration.getChild( "allowedSchemes" );
+        if ( allowedSchemesElement != null )
+        {
+            PlexusConfiguration[] allowedSchemeElements = allowedSchemesElement.getChildren( "allowedScheme" );
+            for ( int i = 0, size = allowedSchemeElements.length; i < size; i++ )
+            {
+                this.allowedSchemes.add( allowedSchemeElements[i].getValue() );
+            }
+        }
+    }
+
+}

Propchange: continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: continuum/branches/continuum-spring/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ContinuumUrlValidator.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Wed Mar 26 17:12:17 2008
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Modified: continuum/branches/continuum-spring/continuum-core/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-core/pom.xml?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-core/pom.xml (original)
+++ continuum/branches/continuum-spring/continuum-core/pom.xml Wed Mar 26 17:12:17 2008
@@ -207,6 +207,7 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
     </dependency>          
   </dependencies>
   <build>
@@ -265,6 +266,10 @@
                   <name>M2_HOME</name>
                   <value>${maven.home}</value>    
                 </property>                      
+                <property>
+                  <name>plexus.home</name>
+                  <value>${project.build.directory}/plexus</value>
+                </property>
               </systemProperties>
             </configuration>
           </plugin>
@@ -287,4 +292,4 @@
       </build>
     </profile>
   </profiles>
-</project>
\ No newline at end of file
+</project>

Modified: continuum/branches/continuum-spring/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java (original)
+++ continuum/branches/continuum-spring/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java Wed Mar 26 17:12:17 2008
@@ -334,4 +334,9 @@
     {
         this.resolveExecutable = resolveExecutable;
     }
+
+    public void setExecutableResolver( ExecutableResolver executableResolver )
+    {
+        this.executableResolver = executableResolver;
+    }
 }

Modified: continuum/branches/continuum-spring/continuum-core/src/test-projects/timeout/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-core/src/test-projects/timeout/pom.xml?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-core/src/test-projects/timeout/pom.xml (original)
+++ continuum/branches/continuum-spring/continuum-core/src/test-projects/timeout/pom.xml Wed Mar 26 17:12:17 2008
@@ -24,7 +24,7 @@
   <version>1.0-SNAPSHOT</version>
   <name>Continuum Timeout test</name>
   <scm>
-    <connection>scm:svn:https://svn.apache.org/repos/asf/maven/continuum/trunk/continuum-core/src/test-projects/timeout</connection>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/continuum/trunk/continuum-core/src/test-projects/timeout</connection>
   </scm>
   <dependencies>
     <dependency>

Modified: continuum/branches/continuum-spring/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ continuum/branches/continuum-spring/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Wed Mar 26 17:12:17 2008
@@ -34,7 +34,6 @@
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.taskqueue.TaskQueue;
 import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
 

Modified: continuum/branches/continuum-spring/continuum-core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-core/src/test/resources/log4j.properties?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-core/src/test/resources/log4j.properties (original)
+++ continuum/branches/continuum-spring/continuum-core/src/test/resources/log4j.properties Wed Mar 26 17:12:17 2008
@@ -44,3 +44,7 @@
 #log4j.category.JPOX.Enhancer.Parser=DEBUG, console
 #log4j.category.JPOX.Enhancer=DEBUG, console
 #log4j.category.JPOX.SchemaTool=DEBUG, console
+
+#quiet spring loading :-)
+log4j.logger.org.springframework.beans.factory.xml.XmlBeanDefinitionReader=ERROR
+log4j.logger.org.springframework.beans.factory.support.DefaultListableBeanFactory=ERROR

Modified: continuum/branches/continuum-spring/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml (original)
+++ continuum/branches/continuum-spring/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml Wed Mar 26 17:12:17 2008
@@ -55,7 +55,7 @@
     <component>
       <role>org.codehaus.plexus.formica.validation.Validator</role>
       <role-hint>url</role-hint>
-      <implementation>org.codehaus.plexus.formica.validation.UrlValidator</implementation>
+      <implementation>org.apache.maven.continuum.utils.ContinuumUrlValidator</implementation>
       <configuration>
         <allowedSchemes>
           <allowedScheme>http</allowedScheme>

Modified: continuum/branches/continuum-spring/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-spring/continuum-webapp/src/main/resources/META-INF/plexus/application.xml?rev=641653&r1=641652&r2=641653&view=diff
==============================================================================
--- continuum/branches/continuum-spring/continuum-webapp/src/main/resources/META-INF/plexus/application.xml (original)
+++ continuum/branches/continuum-spring/continuum-webapp/src/main/resources/META-INF/plexus/application.xml Wed Mar 26 17:12:17 2008
@@ -18,6 +18,8 @@
   ~ under the License.
   -->
 <plexus>
+  <!-- 
+    Not supported with plexus-spring
   <load-on-start>
     <component>
       <role>org.apache.maven.continuum.Continuum</role>
@@ -43,7 +45,7 @@
       <role-hint>rollback-release</role-hint>
     </component>
   </load-on-start>
-
+  -->
   <components>
     <component>
       <role>org.codehaus.plexus.registry.Registry</role>
@@ -270,7 +272,7 @@
     <component>
       <role>org.codehaus.plexus.formica.validation.Validator</role>
       <role-hint>url</role-hint>
-      <implementation>org.codehaus.plexus.formica.validation.UrlValidator</implementation>
+      <implementation>org.apache.maven.continuum.utils.ContinuumUrlValidator</implementation>
       <configuration>
         <allowedSchemes>
           <allowedScheme>http</allowedScheme>