You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@continuum.apache.org by Marica Tan <ct...@exist.com> on 2008/06/18 02:50:08 UTC
Re: svn commit: r666882 - in /continuum/trunk: continuum-api/src/main/java/org/apache/maven/continuum/ continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ continuum-core/src/main/java/org/apache/maven/continuum/ continuum-core/src
Hi,
I tried building a project using this revision and I'm getting this
Exception
Missing key 'scmUserName'.
Thanks,
Marica
On Thu, Jun 12, 2008 at 7:01 AM, <ol...@apache.org> wrote:
> Author: olamy
> Date: Wed Jun 11 16:01:22 2008
> New Revision: 666882
>
> URL: http://svn.apache.org/viewvc?rev=666882&view=rev
> Log:
> [CONTINUUM-1792] svn checkout with authentification doesn't work in 1.2
> (trunk rev 663360)
>
>
>
> Added:
>
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> (with props)
> continuum/trunk/continuum-webapp/src/test/resources/log4j.xml (with
> props)
> Modified:
>
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
>
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
>
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> continuum/trunk/continuum-webapp/pom.xml
>
> Modified:
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
> (original)
> +++
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
> Wed Jun 11 16:01:22 2008
> @@ -67,7 +67,7 @@
>
> public List<ProjectGroup> getAllProjectGroupsWithBuildDetails();
>
> - public Collection<ProjectGroup> getAllProjectGroups();
> + public List<ProjectGroup> getAllProjectGroups();
>
> public ProjectGroup getProjectGroupByProjectId( int projectId )
> throws ContinuumException;
> @@ -103,6 +103,12 @@
> void removeProject( int projectId )
> throws ContinuumException;
>
> +
> + /**
> + * @deprecated
> + * @param projectId
> + * @throws ContinuumException
> + */
> void checkoutProject( int projectId )
> throws ContinuumException;
>
>
> Modified:
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
> (original)
> +++
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
> Wed Jun 11 16:01:22 2008
> @@ -21,7 +21,6 @@
>
> import java.net.URL;
>
> -import org.apache.maven.continuum.model.project.BuildDefinition;
> import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
>
> /**
> @@ -40,7 +39,8 @@
> throws ContinuumProjectBuilderException;
>
> ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url,
> String username, String password,
> - boolean
> recursiveProjects, BuildDefinitionTemplate buildDefinitionTemplate )
> + boolean
> recursiveProjects,
> +
> BuildDefinitionTemplate buildDefinitionTemplate )
> throws ContinuumProjectBuilderException;
>
> BuildDefinitionTemplate getDefaultBuildDefinitionTemplate()
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
> Wed Jun 11 16:01:22 2008
> @@ -346,9 +346,9 @@
>
> }
>
> - public Collection<ProjectGroup> getAllProjectGroups()
> + public List<ProjectGroup> getAllProjectGroups()
> {
> - return store.getAllProjectGroups();
> + return new ArrayList<ProjectGroup>( store.getAllProjectGroups() );
> }
>
> public ProjectGroup getProjectGroupByGroupId( String groupId )
> @@ -791,6 +791,9 @@
> }
> }
>
> + /**
> + * @see org.apache.maven.continuum.Continuum#checkoutProject(int)
> + */
> public void checkoutProject( int projectId )
> throws ContinuumException
> {
> @@ -1538,6 +1541,9 @@
> // Shell projects
> //
> ----------------------------------------------------------------------
>
> + /**
> + * @see
> org.apache.maven.continuum.Continuum#addProject(org.apache.maven.continuum.model.project.Project,
> java.lang.String)
> + */
> public int addProject( Project project, String executorId )
> throws ContinuumException
> {
> @@ -1550,6 +1556,9 @@
> return addProject( project, executorId, groupId, -1 );
> }
>
> + /**
> + * @see
> org.apache.maven.continuum.Continuum#addProject(org.apache.maven.continuum.model.project.Project,
> java.lang.String, int, int)
> + */
> public int addProject( Project project, String executorId, int groupId,
> int buildDefintionTemplateId )
> throws ContinuumException
> {
> @@ -1607,6 +1616,7 @@
> // Activities. These should end up as workflows in werkflow
> //
> ----------------------------------------------------------------------
>
> + @SuppressWarnings("unchecked")
> private int executeAddProjectFromScmActivity( Project project, int
> groupId )
> throws ContinuumException
> {
> @@ -1625,7 +1635,7 @@
> context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT_GROUP,
> projectGroup );
>
> context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new
> Integer( projectGroup.getId() ) );
> -
> +
> executeAction( "validate-project", context );
>
> executeAction( "store-project", context );
> @@ -1637,24 +1647,6 @@
> return ( (Integer) context.get(
> AbstractContinuumAction.KEY_PROJECT_ID ) ).intValue();
> }
>
> - /**
> - * Add a Maven 1 / Maven 2 project to Continuum
> - *
> - * @param metadataUrl url of the pom
> - * @param projectBuilderId {@link MavenTwoContinuumProjectBuilder#ID}
> for Maven 2 project
> - * or {@link
> MavenOneContinuumProjectBuilder#ID} for Maven 1 project.
> - * @return a holder with the projects, project groups and errors
> occurred during the project adding
> - * @throws ContinuumException
> - */
> - /*
> - private ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> -
> String projectBuilderId,
> -
> boolean checkProtocol )
> - throws ContinuumException
> - {
> - return executeAddProjectsFromMetadataActivity( metadataUrl,
> projectBuilderId, -1, checkProtocol );
> - }
> - */
> private ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
>
> String projectBuilderId,
>
> int projectGroupId,
> @@ -1666,15 +1658,16 @@
> false, false,
> buildDefintionTemplateId );
> }
>
> - private ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> -
> String projectBuilderId,
> -
> int projectGroupId,
> -
> boolean checkProtocol,
> -
> boolean useCredentialsCache,
> -
> boolean loadRecursiveProjects,
> -
> int buildDefintionTemplateId )
> - throws ContinuumException
> - {
> +
> + protected ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> +
> String projectBuilderId,
> +
> int projectGroupId,
> +
> boolean checkProtocol,
> +
> boolean useCredentialsCache,
> +
> boolean loadRecursiveProjects,
> +
> int buildDefintionTemplateId, boolean addAssignableRoles )
> + throws ContinuumException
> + {
> if ( checkProtocol )
> {
> try
> @@ -1698,8 +1691,11 @@
>
> context.put( CreateProjectsFromMetadataAction.KEY_URL, metadataUrl
> );
>
> - context.put(
> CreateProjectsFromMetadataAction.KEY_LOAD_RECURSIVE_PROJECTS,
> - Boolean.valueOf( loadRecursiveProjects ) );
> + context.put(
> CreateProjectsFromMetadataAction.KEY_LOAD_RECURSIVE_PROJECTS, Boolean
> + .valueOf( loadRecursiveProjects ) );
> +
> + context.put(
> CreateProjectsFromMetadataAction.KEY_SCM_USE_CREDENTIALS_CACHE, Boolean
> + .valueOf( useCredentialsCache ) );
>
> context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY,
> getWorkingDirectory() );
>
> @@ -1811,10 +1807,23 @@
>
> List<Project> projects = result.getProjects();
>
> + String scmUserName = null;
> + String scmPassword = null;
> +
> for ( Project project : projects )
> {
> project.setScmUseCache( useCredentialsCache );
> -
> +
> + // values backup for first checkout
> + scmUserName = project.getScmUsername();
> + scmPassword = project.getScmPassword();
> + // CONTINUUM-1792 : we don't store it
> + if ( useCredentialsCache )
> + {
> + project.setScmUsername( null );
> + project.setScmPassword( null );
> + }
> +
> projectGroup.addProject( project );
> }
>
> @@ -1834,6 +1843,17 @@
> //
> context.put( AbstractContinuumAction.KEY_PROJECT_ID, new
> Integer( project.getId() ) );
>
> + if ( !StringUtils.isEmpty( scmUserName ) )
> + {
> + project.setScmUsername( scmUserName );
> + context.put( AbstractContinuumAction.KEY_SCM_USERNAME,
> scmUserName );
> + }
> + if ( !StringUtils.isEmpty( scmPassword ) )
> + {
> + project.setScmPassword( scmPassword );
> + context.put( AbstractContinuumAction.KEY_SCM_PASSWORD,
> scmPassword );
> + }
> + context.put( AbstractContinuumAction.KEY_PROJECT, project
> );
> executeAction( "add-project-to-checkout-queue", context );
> }
> }
> @@ -1844,9 +1864,25 @@
>
> context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new
> Integer( projectGroup.getId() ) );
> // add the relevent security administration roles for this project
> - executeAction( "add-assignable-roles", context );
> -
> + if ( addAssignableRoles )
> + {
> + executeAction( "add-assignable-roles", context );
> + }
> return result;
> + }
> +
> + protected ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> +
> String projectBuilderId,
> +
> int projectGroupId,
> +
> boolean checkProtocol,
> +
> boolean useCredentialsCache,
> +
> boolean loadRecursiveProjects,
> +
> int buildDefintionTemplateId )
> + throws ContinuumException
> + {
> + return executeAddProjectsFromMetadataActivity( metadataUrl,
> projectBuilderId, projectGroupId, checkProtocol,
> +
> useCredentialsCache, loadRecursiveProjects,
> +
> buildDefintionTemplateId, true );
> }
>
> //
> ----------------------------------------------------------------------
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
> Wed Jun 11 16:01:22 2008
> @@ -75,6 +75,12 @@
> public static final String KEY_FIRST_RUN = "first-run";
>
> public static final String KEY_PROJECT_RELATIVE_PATH =
> "project-relative-path";
> +
> + public static final String KEY_SCM_USE_CREDENTIALS_CACHE =
> "useCredentialsCache";
> +
> + public static final String KEY_SCM_USERNAME = "scmUserName";
> +
> + public static final String KEY_SCM_PASSWORD = "scmUserPassword";
>
> //
> ----------------------------------------------------------------------
> // Utils
> @@ -192,6 +198,11 @@
> {
> return ( (Boolean) getObject( context, key ) ).booleanValue();
> }
> +
> + public static boolean getBoolean( Map context, String key, boolean
> defaultValue )
> + {
> + return ( (Boolean) getObject( context, key, Boolean.valueOf(
> defaultValue ) ) ).booleanValue();
> + }
>
> protected static int getInteger( Map context, String key )
> {
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
> Wed Jun 11 16:01:22 2008
> @@ -19,14 +19,14 @@
> * under the License.
> */
>
> +import java.util.Map;
> +
> import org.apache.maven.continuum.model.project.Project;
> import org.apache.maven.continuum.scm.queue.CheckOutTask;
> import org.apache.maven.continuum.store.ContinuumStore;
> import org.apache.maven.continuum.utils.WorkingDirectoryService;
> import org.codehaus.plexus.taskqueue.TaskQueue;
>
> -import java.util.Map;
> -
> /**
> * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
> * @version $Id$
> @@ -50,14 +50,20 @@
> * @plexus.requirement role-hint="jdo"
> */
> private ContinuumStore store;
> -
> +
> + @SuppressWarnings("unchecked")
> public void execute( Map context )
> throws Exception
> {
> - Project project = store.getProject( getProjectId( context ) );
> +
> + Project project = (Project) getObject( context, KEY_PROJECT, null
> );
> + if (project == null)
> + {
> + project = store.getProject( getProjectId( context ) );
> + }
>
> - CheckOutTask checkOutTask =
> - new CheckOutTask( project.getId(),
> workingDirectoryService.getWorkingDirectory( project ), project.getName() );
> + CheckOutTask checkOutTask = new CheckOutTask( project.getId(),
> workingDirectoryService
> + .getWorkingDirectory( project ), project.getName(),
> project.getScmUsername(), project.getScmPassword() );
>
> checkOutQueue.put( checkOutTask );
> }
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
> Wed Jun 11 16:01:22 2008
> @@ -90,7 +90,9 @@
>
> try
> {
> - ContinuumScmConfiguration config = createScmConfiguration(
> project, workingDirectory );
> + String scmUserName = getString( context, KEY_SCM_USERNAME );
> + String scmPassword = getString( context, KEY_SCM_PASSWORD );
> + ContinuumScmConfiguration config = createScmConfiguration(
> project, workingDirectory, scmUserName, scmPassword );
>
> String tag = config.getTag();
> getLogger().info(
> @@ -181,12 +183,13 @@
> context.put( KEY_CHECKOUT_SCM_RESULT, result );
> }
>
> - private ContinuumScmConfiguration createScmConfiguration( Project
> project, File workingDirectory )
> + private ContinuumScmConfiguration createScmConfiguration( Project
> project, File workingDirectory,
> + String
> scmUserName, String scmPassword )
> {
> ContinuumScmConfiguration config = new ContinuumScmConfiguration();
> config.setUrl( project.getScmUrl() );
> - config.setUsername( project.getScmUsername() );
> - config.setPassword( project.getScmPassword() );
> + config.setUsername( scmUserName );
> + config.setPassword( scmPassword );
> config.setUseCredentialsCache( project.isScmUseCache() );
> config.setWorkingDirectory( workingDirectory );
> config.setTag( project.getScmTag() );
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
> Wed Jun 11 16:01:22 2008
> @@ -53,6 +53,15 @@
> //
> //
> ----------------------------------------------------------------------
>
> + boolean useCredentialsCache = getBoolean( context,
> KEY_SCM_USE_CREDENTIALS_CACHE, false );
> + // CONTINUUM-1605 don't store username/password
> + if ( !useCredentialsCache )
> + {
> + project.setScmUsername( null );
> + project.setScmPassword( null );
> + project.setScmUseCache( false );
> + }
> +
> projectGroup.addProject( project );
>
> store.updateProjectGroup( projectGroup );
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
> Wed Jun 11 16:01:22 2008
> @@ -241,8 +241,6 @@
> We are interested in having the scm username and password being
> passed into this method be taken into
> account during project mapping so make sure we set it to the
> continuum project instance.
> */
> - /*
> - CONTINUUM-1605 don't store username/password
> if ( username != null && StringUtils.isNotEmpty( username ) )
> {
> continuumProject.setScmUsername( username );
> @@ -252,7 +250,6 @@
> continuumProject.setScmPassword( password );
> }
> }
> - */
>
> builderHelper.mapMavenProjectToContinuumProject( result,
> mavenProject, continuumProject, groupPom );
>
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
> Wed Jun 11 16:01:22 2008
> @@ -35,14 +35,22 @@
> private File workingDirectory;
>
> private String projectName;
> +
> + private String scmUserName;
> +
> + private String scmPassword;
>
> - public CheckOutTask( int projectId, File workingDirectory, String
> projectName )
> + public CheckOutTask( int projectId, File workingDirectory, String
> projectName, String scmUserName, String scmPassword )
> {
> this.projectId = projectId;
>
> this.workingDirectory = workingDirectory;
>
> this.projectName = projectName;
> +
> + this.scmUserName = scmUserName;
> +
> + this.scmPassword = scmPassword;
> }
>
> public int getProjectId()
> @@ -65,6 +73,18 @@
> return projectName;
> }
>
> +
> + public String getScmUserName()
> + {
> + return scmUserName;
> + }
> +
> + public String getScmPassword()
> + {
> + return scmPassword;
> + }
> +
> +
> public int getHashCode()
> {
> return this.hashCode();
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
> Wed Jun 11 16:01:22 2008
> @@ -85,6 +85,11 @@
> context.put( AbstractContinuumAction.KEY_PROJECT, project );
>
> context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY,
> workingDirectory );
> +
> + context.put( AbstractContinuumAction.KEY_SCM_USERNAME,
> task.getScmUserName() );
> +
> + context.put( AbstractContinuumAction.KEY_SCM_PASSWORD,
> task.getScmPassword() );
> +
>
> try
> {
>
> Added:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java?rev=666882&view=auto
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> (added)
> +++
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> Wed Jun 11 16:01:22 2008
> @@ -0,0 +1,68 @@
> +/*
> + * 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;
> +
> +import org.apache.maven.continuum.model.project.Project;
> +import
> org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
> +import
> org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder;
> +
> +/**
> + * @author <a href="mailto:olamy@apache.org">olamy</a>
> + * @since 12 juin 2008
> + * @version $Id$
> + */
> +public class AddProjectTest
> + extends AbstractContinuumTest
> +{
> + public void testScmUserNamePasswordNotStoring()
> + throws Exception
> + {
> + String metadataUrl = "
> http://test:;password@svn.apache.org/repos/asf/continuum/tags/continuum-1.1/continuum-api/pom.xml
> ";
> + DefaultContinuum continuum = (DefaultContinuum) lookup(
> Continuum.ROLE );
> +
> + ContinuumProjectBuildingResult result = continuum
> + .executeAddProjectsFromMetadataActivity( metadataUrl,
> MavenTwoContinuumProjectBuilder.ID,
> +
> getDefaultProjectGroup().getId(), false, true, false, -1, false );
> + assertEquals( 1, result.getProjects().size() );
> +
> + // read the project from store
> + Project project = continuum.getProject( result.getProjects().get(
> 0 ).getId());
> + assertNull( project.getScmUsername() );
> + assertNull( project.getScmPassword() );
> + assertTrue( project.isScmUseCache() );
> + }
> +
> + public void testScmUserNamePasswordStoring()
> + throws Exception
> + {
> + String metadataUrl = "
> http://test:;password@svn.apache.org/repos/asf/continuum/tags/continuum-1.1/continuum-api/pom.xml
> ";
> + DefaultContinuum continuum = (DefaultContinuum) lookup(
> Continuum.ROLE );
> +
> + ContinuumProjectBuildingResult result = continuum
> + .executeAddProjectsFromMetadataActivity( metadataUrl,
> MavenTwoContinuumProjectBuilder.ID,
> +
> getDefaultProjectGroup().getId(), false, false, false, -1, false );
> + assertEquals( 1, result.getProjects().size() );
> +
> + // read the project from store
> + Project project = continuum.getProject( result.getProjects().get(
> 0 ).getId() );
> + assertEquals( "test", project.getScmUsername() );
> + assertEquals( ";password", project.getScmPassword() );
> + assertFalse( project.isScmUseCache() );
> + }
> +}
>
> Propchange:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
>
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
>
> ------------------------------------------------------------------------------
> svn:executable = *
>
> Propchange:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
>
> ------------------------------------------------------------------------------
> svn:keywords = Author Date Revision Id
>
> Modified:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> (original)
> +++
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> Wed Jun 11 16:01:22 2008
> @@ -386,4 +386,6 @@
> {
> return (Continuum) lookup( Continuum.ROLE );
> }
> +
> +
> }
>
> Modified: continuum/trunk/continuum-webapp/pom.xml
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/pom.xml?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> --- continuum/trunk/continuum-webapp/pom.xml (original)
> +++ continuum/trunk/continuum-webapp/pom.xml Wed Jun 11 16:01:22 2008
> @@ -583,5 +583,30 @@
> </plugins>
> </build>
> </profile>
> + <profile>
> + <!-- profile for dev an log output in the console -->
> + <id>dev</id>
> + <build>
> + <plugins>
> + <plugin>
> + <artifactId>maven-antrun-plugin</artifactId>
> + <executions>
> + <execution>
> + <id>override-log4j-with-console-output</id>
> + <phase>process-resources</phase>
> + <goals>
> + <goal>run</goal>
> + </goals>
> + <configuration>
> + <tasks>
> + <copy overwrite="true"
> file="${basedir}/src/test/resources/log4j.xml"
> todir="${basedir}/src/main/webapp/WEB-INF/classes" />
> + </tasks>
> + </configuration>
> + </execution>
> + </executions>
> + </plugin>
> + </plugins>
> + </build>
> + </profile>
> </profiles>
> </project>
>
> Added: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/test/resources/log4j.xml?rev=666882&view=auto
>
> ==============================================================================
> --- continuum/trunk/continuum-webapp/src/test/resources/log4j.xml (added)
> +++ continuum/trunk/continuum-webapp/src/test/resources/log4j.xml Wed Jun
> 11 16:01:22 2008
> @@ -0,0 +1,108 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
> +
> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
> +
> + <appender name="console" class="org.apache.log4j.ConsoleAppender">
> + <layout class="org.apache.log4j.PatternLayout">
> + <param name="Target" value="System.out"/>
> + <param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
> + </layout>
> + </appender>
> +
> + <!-- Help identify bugs during testing -->
> + <logger name="org.apache.maven">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.apache.maven.continuum">
> + <level value="info" />
> + </logger>
> +
> + <logger name="org.apache.maven.scm">
> + <level value="info" />
> + </logger>
> +
> + <logger name="org.codehaus.plexus.redback">
> + <level value="info"/>
> + </logger>
> +
> + <!-- squelch noisy objects (for now) -->
> + <logger name="org.apache.commons">
> + <level value="warn"/>
> + </logger>
> +
> + <logger name="net.sf.ehcache">
> + <level value="warn"/>
> + </logger>
> +
> + <logger name="org.codehaus.plexus.mailsender.MailSender">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.codehaus.plexus.velocity">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="org.quartz">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.apache.jasper">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="com.opensymphony.xwork">
> + <level value="info"/>
> + </logger>
> +
> + <!-- CONTINUUM-1228 -->
> + <logger name="com.opensymphony.xwork.util.OgnlUtil">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="com.opensymphony.webwork">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.codehaus.plexus.PlexusContainer">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="JPOX">
> + <level value="warn"/>
> + </logger>
> +
> + <logger name="JPOX.MetaData">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="JPOX.RDBMS.SQL">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="SQL">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="freemarker">
> + <level value="warn"/>
> + </logger>
> +
> + <logger
> name="org.codehaus.plexus.component.manager.ClassicSingletonComponentManager">
> + <level value="error"/>
> + </logger>
> +
> + <logger
> name="org.springframework.beans.factory.xml.XmlBeanDefinitionReader">
> + <level value="error"/>
> + </logger>
> + <logger
> name="org.springframework.beans.factory.support.DefaultListableBeanFactory">
> + <level value="error"/>
> + </logger>
> +
> + <root>
> + <priority value="info" />
> + <appender-ref ref="console" />
> + </root>
> +
> +</log4j:configuration>
>
> Propchange: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
>
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
>
> ------------------------------------------------------------------------------
> svn:executable = *
>
> Propchange: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
>
> ------------------------------------------------------------------------------
> svn:keywords = Author Date Id Revision
>
>
>
Re: svn commit: r666882 - in /continuum/trunk: continuum-api/src/main/java/org/apache/maven/continuum/ continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ continuum-core/src/main/java/org/apache/maven/continuum/ continuum-core/src
Posted by Marica Tan <ct...@exist.com>.
Nevermind :) It was fixed in revision r667525.
On Thu, Jun 12, 2008 at 7:01 AM, <ol...@apache.org> wrote:
> Author: olamy
> Date: Wed Jun 11 16:01:22 2008
> New Revision: 666882
>
> URL: http://svn.apache.org/viewvc?rev=666882&view=rev
> Log:
> [CONTINUUM-1792] svn checkout with authentification doesn't work in 1.2
> (trunk rev 663360)
>
>
>
> Added:
>
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> (with props)
> continuum/trunk/continuum-webapp/src/test/resources/log4j.xml (with
> props)
> Modified:
>
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
>
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
>
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
>
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> continuum/trunk/continuum-webapp/pom.xml
>
> Modified:
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
> (original)
> +++
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
> Wed Jun 11 16:01:22 2008
> @@ -67,7 +67,7 @@
>
> public List<ProjectGroup> getAllProjectGroupsWithBuildDetails();
>
> - public Collection<ProjectGroup> getAllProjectGroups();
> + public List<ProjectGroup> getAllProjectGroups();
>
> public ProjectGroup getProjectGroupByProjectId( int projectId )
> throws ContinuumException;
> @@ -103,6 +103,12 @@
> void removeProject( int projectId )
> throws ContinuumException;
>
> +
> + /**
> + * @deprecated
> + * @param projectId
> + * @throws ContinuumException
> + */
> void checkoutProject( int projectId )
> throws ContinuumException;
>
>
> Modified:
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
> (original)
> +++
> continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
> Wed Jun 11 16:01:22 2008
> @@ -21,7 +21,6 @@
>
> import java.net.URL;
>
> -import org.apache.maven.continuum.model.project.BuildDefinition;
> import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
>
> /**
> @@ -40,7 +39,8 @@
> throws ContinuumProjectBuilderException;
>
> ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url,
> String username, String password,
> - boolean
> recursiveProjects, BuildDefinitionTemplate buildDefinitionTemplate )
> + boolean
> recursiveProjects,
> +
> BuildDefinitionTemplate buildDefinitionTemplate )
> throws ContinuumProjectBuilderException;
>
> BuildDefinitionTemplate getDefaultBuildDefinitionTemplate()
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
> Wed Jun 11 16:01:22 2008
> @@ -346,9 +346,9 @@
>
> }
>
> - public Collection<ProjectGroup> getAllProjectGroups()
> + public List<ProjectGroup> getAllProjectGroups()
> {
> - return store.getAllProjectGroups();
> + return new ArrayList<ProjectGroup>( store.getAllProjectGroups() );
> }
>
> public ProjectGroup getProjectGroupByGroupId( String groupId )
> @@ -791,6 +791,9 @@
> }
> }
>
> + /**
> + * @see org.apache.maven.continuum.Continuum#checkoutProject(int)
> + */
> public void checkoutProject( int projectId )
> throws ContinuumException
> {
> @@ -1538,6 +1541,9 @@
> // Shell projects
> //
> ----------------------------------------------------------------------
>
> + /**
> + * @see
> org.apache.maven.continuum.Continuum#addProject(org.apache.maven.continuum.model.project.Project,
> java.lang.String)
> + */
> public int addProject( Project project, String executorId )
> throws ContinuumException
> {
> @@ -1550,6 +1556,9 @@
> return addProject( project, executorId, groupId, -1 );
> }
>
> + /**
> + * @see
> org.apache.maven.continuum.Continuum#addProject(org.apache.maven.continuum.model.project.Project,
> java.lang.String, int, int)
> + */
> public int addProject( Project project, String executorId, int groupId,
> int buildDefintionTemplateId )
> throws ContinuumException
> {
> @@ -1607,6 +1616,7 @@
> // Activities. These should end up as workflows in werkflow
> //
> ----------------------------------------------------------------------
>
> + @SuppressWarnings("unchecked")
> private int executeAddProjectFromScmActivity( Project project, int
> groupId )
> throws ContinuumException
> {
> @@ -1625,7 +1635,7 @@
> context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT_GROUP,
> projectGroup );
>
> context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new
> Integer( projectGroup.getId() ) );
> -
> +
> executeAction( "validate-project", context );
>
> executeAction( "store-project", context );
> @@ -1637,24 +1647,6 @@
> return ( (Integer) context.get(
> AbstractContinuumAction.KEY_PROJECT_ID ) ).intValue();
> }
>
> - /**
> - * Add a Maven 1 / Maven 2 project to Continuum
> - *
> - * @param metadataUrl url of the pom
> - * @param projectBuilderId {@link MavenTwoContinuumProjectBuilder#ID}
> for Maven 2 project
> - * or {@link
> MavenOneContinuumProjectBuilder#ID} for Maven 1 project.
> - * @return a holder with the projects, project groups and errors
> occurred during the project adding
> - * @throws ContinuumException
> - */
> - /*
> - private ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> -
> String projectBuilderId,
> -
> boolean checkProtocol )
> - throws ContinuumException
> - {
> - return executeAddProjectsFromMetadataActivity( metadataUrl,
> projectBuilderId, -1, checkProtocol );
> - }
> - */
> private ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
>
> String projectBuilderId,
>
> int projectGroupId,
> @@ -1666,15 +1658,16 @@
> false, false,
> buildDefintionTemplateId );
> }
>
> - private ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> -
> String projectBuilderId,
> -
> int projectGroupId,
> -
> boolean checkProtocol,
> -
> boolean useCredentialsCache,
> -
> boolean loadRecursiveProjects,
> -
> int buildDefintionTemplateId )
> - throws ContinuumException
> - {
> +
> + protected ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> +
> String projectBuilderId,
> +
> int projectGroupId,
> +
> boolean checkProtocol,
> +
> boolean useCredentialsCache,
> +
> boolean loadRecursiveProjects,
> +
> int buildDefintionTemplateId, boolean addAssignableRoles )
> + throws ContinuumException
> + {
> if ( checkProtocol )
> {
> try
> @@ -1698,8 +1691,11 @@
>
> context.put( CreateProjectsFromMetadataAction.KEY_URL, metadataUrl
> );
>
> - context.put(
> CreateProjectsFromMetadataAction.KEY_LOAD_RECURSIVE_PROJECTS,
> - Boolean.valueOf( loadRecursiveProjects ) );
> + context.put(
> CreateProjectsFromMetadataAction.KEY_LOAD_RECURSIVE_PROJECTS, Boolean
> + .valueOf( loadRecursiveProjects ) );
> +
> + context.put(
> CreateProjectsFromMetadataAction.KEY_SCM_USE_CREDENTIALS_CACHE, Boolean
> + .valueOf( useCredentialsCache ) );
>
> context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY,
> getWorkingDirectory() );
>
> @@ -1811,10 +1807,23 @@
>
> List<Project> projects = result.getProjects();
>
> + String scmUserName = null;
> + String scmPassword = null;
> +
> for ( Project project : projects )
> {
> project.setScmUseCache( useCredentialsCache );
> -
> +
> + // values backup for first checkout
> + scmUserName = project.getScmUsername();
> + scmPassword = project.getScmPassword();
> + // CONTINUUM-1792 : we don't store it
> + if ( useCredentialsCache )
> + {
> + project.setScmUsername( null );
> + project.setScmPassword( null );
> + }
> +
> projectGroup.addProject( project );
> }
>
> @@ -1834,6 +1843,17 @@
> //
> context.put( AbstractContinuumAction.KEY_PROJECT_ID, new
> Integer( project.getId() ) );
>
> + if ( !StringUtils.isEmpty( scmUserName ) )
> + {
> + project.setScmUsername( scmUserName );
> + context.put( AbstractContinuumAction.KEY_SCM_USERNAME,
> scmUserName );
> + }
> + if ( !StringUtils.isEmpty( scmPassword ) )
> + {
> + project.setScmPassword( scmPassword );
> + context.put( AbstractContinuumAction.KEY_SCM_PASSWORD,
> scmPassword );
> + }
> + context.put( AbstractContinuumAction.KEY_PROJECT, project
> );
> executeAction( "add-project-to-checkout-queue", context );
> }
> }
> @@ -1844,9 +1864,25 @@
>
> context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new
> Integer( projectGroup.getId() ) );
> // add the relevent security administration roles for this project
> - executeAction( "add-assignable-roles", context );
> -
> + if ( addAssignableRoles )
> + {
> + executeAction( "add-assignable-roles", context );
> + }
> return result;
> + }
> +
> + protected ContinuumProjectBuildingResult
> executeAddProjectsFromMetadataActivity( String metadataUrl,
> +
> String projectBuilderId,
> +
> int projectGroupId,
> +
> boolean checkProtocol,
> +
> boolean useCredentialsCache,
> +
> boolean loadRecursiveProjects,
> +
> int buildDefintionTemplateId )
> + throws ContinuumException
> + {
> + return executeAddProjectsFromMetadataActivity( metadataUrl,
> projectBuilderId, projectGroupId, checkProtocol,
> +
> useCredentialsCache, loadRecursiveProjects,
> +
> buildDefintionTemplateId, true );
> }
>
> //
> ----------------------------------------------------------------------
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
> Wed Jun 11 16:01:22 2008
> @@ -75,6 +75,12 @@
> public static final String KEY_FIRST_RUN = "first-run";
>
> public static final String KEY_PROJECT_RELATIVE_PATH =
> "project-relative-path";
> +
> + public static final String KEY_SCM_USE_CREDENTIALS_CACHE =
> "useCredentialsCache";
> +
> + public static final String KEY_SCM_USERNAME = "scmUserName";
> +
> + public static final String KEY_SCM_PASSWORD = "scmUserPassword";
>
> //
> ----------------------------------------------------------------------
> // Utils
> @@ -192,6 +198,11 @@
> {
> return ( (Boolean) getObject( context, key ) ).booleanValue();
> }
> +
> + public static boolean getBoolean( Map context, String key, boolean
> defaultValue )
> + {
> + return ( (Boolean) getObject( context, key, Boolean.valueOf(
> defaultValue ) ) ).booleanValue();
> + }
>
> protected static int getInteger( Map context, String key )
> {
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
> Wed Jun 11 16:01:22 2008
> @@ -19,14 +19,14 @@
> * under the License.
> */
>
> +import java.util.Map;
> +
> import org.apache.maven.continuum.model.project.Project;
> import org.apache.maven.continuum.scm.queue.CheckOutTask;
> import org.apache.maven.continuum.store.ContinuumStore;
> import org.apache.maven.continuum.utils.WorkingDirectoryService;
> import org.codehaus.plexus.taskqueue.TaskQueue;
>
> -import java.util.Map;
> -
> /**
> * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
> * @version $Id$
> @@ -50,14 +50,20 @@
> * @plexus.requirement role-hint="jdo"
> */
> private ContinuumStore store;
> -
> +
> + @SuppressWarnings("unchecked")
> public void execute( Map context )
> throws Exception
> {
> - Project project = store.getProject( getProjectId( context ) );
> +
> + Project project = (Project) getObject( context, KEY_PROJECT, null
> );
> + if (project == null)
> + {
> + project = store.getProject( getProjectId( context ) );
> + }
>
> - CheckOutTask checkOutTask =
> - new CheckOutTask( project.getId(),
> workingDirectoryService.getWorkingDirectory( project ), project.getName() );
> + CheckOutTask checkOutTask = new CheckOutTask( project.getId(),
> workingDirectoryService
> + .getWorkingDirectory( project ), project.getName(),
> project.getScmUsername(), project.getScmPassword() );
>
> checkOutQueue.put( checkOutTask );
> }
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
> Wed Jun 11 16:01:22 2008
> @@ -90,7 +90,9 @@
>
> try
> {
> - ContinuumScmConfiguration config = createScmConfiguration(
> project, workingDirectory );
> + String scmUserName = getString( context, KEY_SCM_USERNAME );
> + String scmPassword = getString( context, KEY_SCM_PASSWORD );
> + ContinuumScmConfiguration config = createScmConfiguration(
> project, workingDirectory, scmUserName, scmPassword );
>
> String tag = config.getTag();
> getLogger().info(
> @@ -181,12 +183,13 @@
> context.put( KEY_CHECKOUT_SCM_RESULT, result );
> }
>
> - private ContinuumScmConfiguration createScmConfiguration( Project
> project, File workingDirectory )
> + private ContinuumScmConfiguration createScmConfiguration( Project
> project, File workingDirectory,
> + String
> scmUserName, String scmPassword )
> {
> ContinuumScmConfiguration config = new ContinuumScmConfiguration();
> config.setUrl( project.getScmUrl() );
> - config.setUsername( project.getScmUsername() );
> - config.setPassword( project.getScmPassword() );
> + config.setUsername( scmUserName );
> + config.setPassword( scmPassword );
> config.setUseCredentialsCache( project.isScmUseCache() );
> config.setWorkingDirectory( workingDirectory );
> config.setTag( project.getScmTag() );
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
> Wed Jun 11 16:01:22 2008
> @@ -53,6 +53,15 @@
> //
> //
> ----------------------------------------------------------------------
>
> + boolean useCredentialsCache = getBoolean( context,
> KEY_SCM_USE_CREDENTIALS_CACHE, false );
> + // CONTINUUM-1605 don't store username/password
> + if ( !useCredentialsCache )
> + {
> + project.setScmUsername( null );
> + project.setScmPassword( null );
> + project.setScmUseCache( false );
> + }
> +
> projectGroup.addProject( project );
>
> store.updateProjectGroup( projectGroup );
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
> Wed Jun 11 16:01:22 2008
> @@ -241,8 +241,6 @@
> We are interested in having the scm username and password being
> passed into this method be taken into
> account during project mapping so make sure we set it to the
> continuum project instance.
> */
> - /*
> - CONTINUUM-1605 don't store username/password
> if ( username != null && StringUtils.isNotEmpty( username ) )
> {
> continuumProject.setScmUsername( username );
> @@ -252,7 +250,6 @@
> continuumProject.setScmPassword( password );
> }
> }
> - */
>
> builderHelper.mapMavenProjectToContinuumProject( result,
> mavenProject, continuumProject, groupPom );
>
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java
> Wed Jun 11 16:01:22 2008
> @@ -35,14 +35,22 @@
> private File workingDirectory;
>
> private String projectName;
> +
> + private String scmUserName;
> +
> + private String scmPassword;
>
> - public CheckOutTask( int projectId, File workingDirectory, String
> projectName )
> + public CheckOutTask( int projectId, File workingDirectory, String
> projectName, String scmUserName, String scmPassword )
> {
> this.projectId = projectId;
>
> this.workingDirectory = workingDirectory;
>
> this.projectName = projectName;
> +
> + this.scmUserName = scmUserName;
> +
> + this.scmPassword = scmPassword;
> }
>
> public int getProjectId()
> @@ -65,6 +73,18 @@
> return projectName;
> }
>
> +
> + public String getScmUserName()
> + {
> + return scmUserName;
> + }
> +
> + public String getScmPassword()
> + {
> + return scmPassword;
> + }
> +
> +
> public int getHashCode()
> {
> return this.hashCode();
>
> Modified:
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
> (original)
> +++
> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
> Wed Jun 11 16:01:22 2008
> @@ -85,6 +85,11 @@
> context.put( AbstractContinuumAction.KEY_PROJECT, project );
>
> context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY,
> workingDirectory );
> +
> + context.put( AbstractContinuumAction.KEY_SCM_USERNAME,
> task.getScmUserName() );
> +
> + context.put( AbstractContinuumAction.KEY_SCM_PASSWORD,
> task.getScmPassword() );
> +
>
> try
> {
>
> Added:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java?rev=666882&view=auto
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> (added)
> +++
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
> Wed Jun 11 16:01:22 2008
> @@ -0,0 +1,68 @@
> +/*
> + * 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;
> +
> +import org.apache.maven.continuum.model.project.Project;
> +import
> org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
> +import
> org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder;
> +
> +/**
> + * @author <a href="mailto:olamy@apache.org">olamy</a>
> + * @since 12 juin 2008
> + * @version $Id$
> + */
> +public class AddProjectTest
> + extends AbstractContinuumTest
> +{
> + public void testScmUserNamePasswordNotStoring()
> + throws Exception
> + {
> + String metadataUrl = "
> http://test:;password@svn.apache.org/repos/asf/continuum/tags/continuum-1.1/continuum-api/pom.xml
> ";
> + DefaultContinuum continuum = (DefaultContinuum) lookup(
> Continuum.ROLE );
> +
> + ContinuumProjectBuildingResult result = continuum
> + .executeAddProjectsFromMetadataActivity( metadataUrl,
> MavenTwoContinuumProjectBuilder.ID,
> +
> getDefaultProjectGroup().getId(), false, true, false, -1, false );
> + assertEquals( 1, result.getProjects().size() );
> +
> + // read the project from store
> + Project project = continuum.getProject( result.getProjects().get(
> 0 ).getId());
> + assertNull( project.getScmUsername() );
> + assertNull( project.getScmPassword() );
> + assertTrue( project.isScmUseCache() );
> + }
> +
> + public void testScmUserNamePasswordStoring()
> + throws Exception
> + {
> + String metadataUrl = "
> http://test:;password@svn.apache.org/repos/asf/continuum/tags/continuum-1.1/continuum-api/pom.xml
> ";
> + DefaultContinuum continuum = (DefaultContinuum) lookup(
> Continuum.ROLE );
> +
> + ContinuumProjectBuildingResult result = continuum
> + .executeAddProjectsFromMetadataActivity( metadataUrl,
> MavenTwoContinuumProjectBuilder.ID,
> +
> getDefaultProjectGroup().getId(), false, false, false, -1, false );
> + assertEquals( 1, result.getProjects().size() );
> +
> + // read the project from store
> + Project project = continuum.getProject( result.getProjects().get(
> 0 ).getId() );
> + assertEquals( "test", project.getScmUsername() );
> + assertEquals( ";password", project.getScmPassword() );
> + assertFalse( project.isScmUseCache() );
> + }
> +}
>
> Propchange:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
>
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
>
> ------------------------------------------------------------------------------
> svn:executable = *
>
> Propchange:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
>
> ------------------------------------------------------------------------------
> svn:keywords = Author Date Revision Id
>
> Modified:
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> ---
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> (original)
> +++
> continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
> Wed Jun 11 16:01:22 2008
> @@ -386,4 +386,6 @@
> {
> return (Continuum) lookup( Continuum.ROLE );
> }
> +
> +
> }
>
> Modified: continuum/trunk/continuum-webapp/pom.xml
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/pom.xml?rev=666882&r1=666881&r2=666882&view=diff
>
> ==============================================================================
> --- continuum/trunk/continuum-webapp/pom.xml (original)
> +++ continuum/trunk/continuum-webapp/pom.xml Wed Jun 11 16:01:22 2008
> @@ -583,5 +583,30 @@
> </plugins>
> </build>
> </profile>
> + <profile>
> + <!-- profile for dev an log output in the console -->
> + <id>dev</id>
> + <build>
> + <plugins>
> + <plugin>
> + <artifactId>maven-antrun-plugin</artifactId>
> + <executions>
> + <execution>
> + <id>override-log4j-with-console-output</id>
> + <phase>process-resources</phase>
> + <goals>
> + <goal>run</goal>
> + </goals>
> + <configuration>
> + <tasks>
> + <copy overwrite="true"
> file="${basedir}/src/test/resources/log4j.xml"
> todir="${basedir}/src/main/webapp/WEB-INF/classes" />
> + </tasks>
> + </configuration>
> + </execution>
> + </executions>
> + </plugin>
> + </plugins>
> + </build>
> + </profile>
> </profiles>
> </project>
>
> Added: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
> URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/test/resources/log4j.xml?rev=666882&view=auto
>
> ==============================================================================
> --- continuum/trunk/continuum-webapp/src/test/resources/log4j.xml (added)
> +++ continuum/trunk/continuum-webapp/src/test/resources/log4j.xml Wed Jun
> 11 16:01:22 2008
> @@ -0,0 +1,108 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
> +
> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
> +
> + <appender name="console" class="org.apache.log4j.ConsoleAppender">
> + <layout class="org.apache.log4j.PatternLayout">
> + <param name="Target" value="System.out"/>
> + <param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
> + </layout>
> + </appender>
> +
> + <!-- Help identify bugs during testing -->
> + <logger name="org.apache.maven">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.apache.maven.continuum">
> + <level value="info" />
> + </logger>
> +
> + <logger name="org.apache.maven.scm">
> + <level value="info" />
> + </logger>
> +
> + <logger name="org.codehaus.plexus.redback">
> + <level value="info"/>
> + </logger>
> +
> + <!-- squelch noisy objects (for now) -->
> + <logger name="org.apache.commons">
> + <level value="warn"/>
> + </logger>
> +
> + <logger name="net.sf.ehcache">
> + <level value="warn"/>
> + </logger>
> +
> + <logger name="org.codehaus.plexus.mailsender.MailSender">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.codehaus.plexus.velocity">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="org.quartz">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.apache.jasper">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="com.opensymphony.xwork">
> + <level value="info"/>
> + </logger>
> +
> + <!-- CONTINUUM-1228 -->
> + <logger name="com.opensymphony.xwork.util.OgnlUtil">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="com.opensymphony.webwork">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="org.codehaus.plexus.PlexusContainer">
> + <level value="info"/>
> + </logger>
> +
> + <logger name="JPOX">
> + <level value="warn"/>
> + </logger>
> +
> + <logger name="JPOX.MetaData">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="JPOX.RDBMS.SQL">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="SQL">
> + <level value="error"/>
> + </logger>
> +
> + <logger name="freemarker">
> + <level value="warn"/>
> + </logger>
> +
> + <logger
> name="org.codehaus.plexus.component.manager.ClassicSingletonComponentManager">
> + <level value="error"/>
> + </logger>
> +
> + <logger
> name="org.springframework.beans.factory.xml.XmlBeanDefinitionReader">
> + <level value="error"/>
> + </logger>
> + <logger
> name="org.springframework.beans.factory.support.DefaultListableBeanFactory">
> + <level value="error"/>
> + </logger>
> +
> + <root>
> + <priority value="info" />
> + <appender-ref ref="console" />
> + </root>
> +
> +</log4j:configuration>
>
> Propchange: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
>
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
>
> ------------------------------------------------------------------------------
> svn:executable = *
>
> Propchange: continuum/trunk/continuum-webapp/src/test/resources/log4j.xml
>
> ------------------------------------------------------------------------------
> svn:keywords = Author Date Id Revision
>
>
>