You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2008/10/06 14:16:22 UTC
svn commit: r702122 - in /continuum/trunk:
continuum-commons/src/main/java/org/apache/continuum/installation/
continuum-commons/src/main/java/org/apache/continuum/profile/
continuum-commons/src/test/java/org/apache/continuum/
continuum-commons/src/test...
Author: ctan
Date: Mon Oct 6 05:16:22 2008
New Revision: 702122
URL: http://svn.apache.org/viewvc?rev=702122&view=rev
Log:
merge -r 702087:702088 from continuum-1.2.x branch moved DefaultInstallationService and DefaultProfileService to continuum-commons
Added:
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java (with props)
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java (with props)
continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/
continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/
continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java (with props)
continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/
continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java (with props)
Removed:
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/installation/
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/profile/
continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/installation/
continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/profile/
Added: continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java?rev=702122&view=auto
==============================================================================
--- continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java (added)
+++ continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java Mon Oct 6 05:16:22 2008
@@ -0,0 +1,462 @@
+package org.apache.continuum.installation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.continuum.dao.InstallationDao;
+import org.apache.maven.continuum.execution.ExecutorConfigurator;
+import org.apache.maven.continuum.installation.AlreadyExistsInstallationException;
+import org.apache.maven.continuum.installation.InstallationException;
+import org.apache.maven.continuum.installation.InstallationService;
+import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.Profile;
+import org.apache.maven.continuum.profile.AlreadyExistsProfileException;
+import org.apache.maven.continuum.profile.ProfileException;
+import org.apache.maven.continuum.profile.ProfileService;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * @author <a href="mailto:olamy@codehaus.org">olamy</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.maven.continuum.installation.InstallationService"
+ * TODO use some cache mechanism to prevent always reading from store ?
+ * @since 13 juin 07
+ */
+public class DefaultInstallationService
+ extends AbstractLogEnabled
+ implements InstallationService, Initializable
+{
+ /**
+ * @plexus.requirement
+ */
+ private InstallationDao installationDao;
+
+ /**
+ * @plexus.requirement role-hint="default"
+ */
+ private ProfileService profileService;
+
+ private Map<String, ExecutorConfigurator> typesValues;
+
+ // ---------------------------------------------
+ // Plexus lifecycle
+ // ---------------------------------------------
+
+ public void initialize()
+ throws InitializationException
+ {
+ this.typesValues = new HashMap<String, ExecutorConfigurator>();
+ this.typesValues.put( InstallationService.ANT_TYPE,
+ new ExecutorConfigurator( "ant", "bin", "ANT_HOME", "-version" ) );
+
+ this.typesValues.put( InstallationService.ENVVAR_TYPE, null );
+ this.typesValues.put( InstallationService.JDK_TYPE,
+ new ExecutorConfigurator( "java", "bin", "JAVA_HOME", "-version" ) );
+ this.typesValues.put( InstallationService.MAVEN1_TYPE,
+ new ExecutorConfigurator( "maven", "bin", "MAVEN_HOME", "-v" ) );
+ this.typesValues
+ .put( InstallationService.MAVEN2_TYPE, new ExecutorConfigurator( "mvn", "bin", "M2_HOME", "-v" ) );
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#add(org.apache.maven.continuum.model.system.Installation)
+ */
+ public Installation add( Installation installation )
+ throws InstallationException, AlreadyExistsInstallationException
+ {
+ try
+ {
+ return this.add( installation, false );
+ }
+ catch ( AlreadyExistsProfileException e )
+ {
+ // normally cannot happend here but anyway we throw the exception
+ throw new InstallationException( e.getMessage(), e );
+ }
+ }
+
+ public Installation add( Installation installation, boolean automaticProfile )
+ throws InstallationException, AlreadyExistsProfileException, AlreadyExistsInstallationException
+ {
+ if ( alreadyExistInstallationName( installation ) )
+ {
+ throw new AlreadyExistsInstallationException(
+ "Installation with name " + installation.getName() + " already exists" );
+ }
+ // TODO must be done in the same transaction
+ Installation storedOne = null;
+ try
+ {
+ String envVarName = this.getEnvVar( installation.getType() );
+ // override with the defined var name for defined types
+ if ( StringUtils.isNotEmpty( envVarName ) )
+ {
+ installation.setVarName( envVarName );
+ }
+ storedOne = installationDao.addInstallation( installation );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+ try
+ {
+ if ( automaticProfile )
+ {
+ Profile profile = new Profile();
+ profile.setName( storedOne.getName() );
+ profile = profileService.addProfile( profile );
+ profileService.addInstallationInProfile( profile, storedOne );
+ }
+ }
+ catch ( ProfileException e )
+ {
+ throw new InstallationException( "failed to create automatic Profile " + e.getMessage(), e );
+ }
+ return storedOne;
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#delete(org.apache.maven.continuum.model.system.Installation)
+ */
+ public void delete( Installation installation )
+ throws InstallationException
+ {
+ try
+ {
+ installationDao.removeInstallation( installation );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#getAllInstallations()
+ */
+ @SuppressWarnings("unchecked")
+ public List<Installation> getAllInstallations()
+ throws InstallationException
+ {
+ try
+ {
+ List installations = installationDao.getAllInstallations();
+ return installations == null ? Collections.EMPTY_LIST : installations;
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#getInstallation(int)
+ */
+ public Installation getInstallation( int installationId )
+ throws InstallationException
+ {
+ try
+ {
+ return installationDao.getInstallation( installationId );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#update(org.apache.maven.continuum.model.system.Installation)
+ */
+ public void update( Installation installation )
+ throws InstallationException
+ {
+ try
+ {
+ Installation stored = getInstallation( installation.getInstallationId() );
+ if ( stored == null )
+ {
+ throw new InstallationException( "installation with name " + installation.getName() + " not exists" );
+ }
+
+ stored.setName( installation.getName() );
+ stored.setType( installation.getType() );
+ String envVarName = this.getEnvVar( installation.getType() );
+ // override with the defined var name for defined types
+ if ( StringUtils.isNotEmpty( envVarName ) )
+ {
+ installation.setVarName( envVarName );
+ }
+ else
+ {
+ stored.setVarName( installation.getVarName() );
+ }
+ stored.setVarValue( installation.getVarValue() );
+ installationDao.updateInstallation( stored );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#getExecutorConfigurator(java.lang.String)
+ */
+ public ExecutorConfigurator getExecutorConfigurator( String type )
+ {
+ return this.typesValues.get( type );
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#getEnvVar(java.lang.String)
+ */
+ public String getEnvVar( String type )
+ {
+ ExecutorConfigurator executorConfigurator = this.typesValues.get( type );
+ return executorConfigurator == null ? null : executorConfigurator.getEnvVar();
+ }
+
+ // -------------------------------------------------------------
+ // versions informations on jdk and builders (mvn, maven, ant )
+ // -------------------------------------------------------------
+
+ /**
+ * TODO replace with calling getExecutorConfiguratorVersion
+ *
+ * @see org.apache.maven.continuum.installation.InstallationService#getDefaultJdkInformations()
+ */
+ public List<String> getDefaultJdkInformations()
+ throws InstallationException
+ {
+ try
+ {
+ Properties systemEnvVars = CommandLineUtils.getSystemEnvVars( false );
+
+ String javaHome = (String) systemEnvVars.get( "JAVA_HOME" );
+ // olamy : JAVA_HOME can not exists with a mac user
+ if ( StringUtils.isEmpty( javaHome ) )
+ {
+ return getJavaHomeInformations( System.getProperty( "java.home" ) );
+ }
+ return getJavaHomeInformations( javaHome );
+
+ }
+ catch ( IOException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+ catch ( CommandLineException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * TODO replace with calling getExecutorConfiguratorVersion
+ *
+ * @see org.apache.maven.continuum.installation.InstallationService#getJdkInformations(org.apache.maven.continuum.model.system.Installation)
+ */
+ public List<String> getJdkInformations( Installation installation )
+ throws InstallationException
+ {
+ if ( installation == null )
+ {
+ return getDefaultJdkInformations();
+ }
+ if ( StringUtils.isEmpty( installation.getVarValue() ) )
+ {
+ return getDefaultJdkInformations();
+ }
+ try
+ {
+ return getJavaHomeInformations( installation.getVarValue() );
+ }
+ catch ( CommandLineException e )
+ {
+ throw new InstallationException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @param javaHome
+ * @return
+ * @throws CommandLineException
+ */
+ private List<String> getJavaHomeInformations( String javaHome )
+ throws CommandLineException
+ {
+ Commandline commandline = new Commandline();
+
+ String executable = javaHome + File.separator + "bin" + File.separator + "java";
+
+ commandline.setExecutable( executable );
+ commandline.addArguments( new String[]{"-version"} );
+ final List<String> cliOutput = new ArrayList<String>();
+ //TODO ShellCommandHelper ?
+ int result = CommandLineUtils.executeCommandLine( commandline, new StreamConsumer()
+ {
+ public void consumeLine( String line )
+ {
+ cliOutput.add( line );
+ }
+ }, new StreamConsumer()
+ {
+ public void consumeLine( String line )
+ {
+ cliOutput.add( line );
+ }
+ } );
+ if ( result != 0 )
+ {
+ throw new CommandLineException( "cli to get JAVA_HOME informations return code " + result );
+ }
+ return cliOutput;
+ }
+
+ private Map<String, String> getEnvVars( Profile profile )
+ {
+ Map<String, String> environnments = new HashMap<String, String>();
+ if ( profile == null )
+ {
+ return environnments;
+ }
+ if ( profile.getBuilder() != null )
+ {
+ environnments.put( profile.getBuilder().getVarName(), profile.getBuilder().getVarValue() );
+ }
+ if ( profile.getJdk() != null )
+ {
+ environnments.put( profile.getJdk().getVarName(), profile.getJdk().getVarValue() );
+ }
+ if ( profile.getEnvironmentVariables() != null )
+ {
+ for ( Installation installation : (List<Installation>) profile.getEnvironmentVariables() )
+ {
+ environnments.put( installation.getVarName(), installation.getVarValue() );
+ }
+ }
+ return environnments;
+ }
+
+ /**
+ * @see org.apache.maven.continuum.installation.InstallationService#getExecutorConfiguratorVersion(java.lang.String,org.apache.maven.continuum.execution.ExecutorConfigurator,Profile)
+ */
+ @SuppressWarnings("unchecked")
+ public List<String> getExecutorConfiguratorVersion( String path, ExecutorConfigurator executorConfigurator,
+ Profile profile )
+ throws InstallationException
+ {
+
+ if ( executorConfigurator == null )
+ {
+ return Collections.EMPTY_LIST;
+ }
+ if ( executorConfigurator.getExecutable() == null )
+ {
+ return Collections.EMPTY_LIST;
+ }
+ StringBuilder executable = new StringBuilder();
+ try
+ {
+ Commandline commandline = new Commandline();
+ if ( StringUtils.isNotEmpty( path ) )
+ {
+ executable.append( path ).append( File.separator );
+ executable.append( executorConfigurator.getRelativePath() + File.separator );
+ commandline.addEnvironment( executorConfigurator.getEnvVar(), path );
+ }
+ //Installations are env var they must be add if exists
+ Map<String, String> environments = getEnvVars( profile );
+ // no null check we use a private method just here
+ for ( Iterator<String> iterator = environments.keySet().iterator(); iterator.hasNext(); )
+ {
+ String key = iterator.next();
+ String value = environments.get( key );
+ commandline.addEnvironment( key, value );
+ }
+
+ executable = executable.append( executorConfigurator.getExecutable() );
+ commandline.setExecutable( executable.toString() );
+ commandline.addArguments( new String[]{executorConfigurator.getVersionArgument()} );
+ final List<String> cliOutput = new ArrayList<String>();
+ //TODO ShellCommandHelper ?
+ int result = CommandLineUtils.executeCommandLine( commandline, new StreamConsumer()
+ {
+ public void consumeLine( String line )
+ {
+ cliOutput.add( line );
+ }
+ }, new StreamConsumer()
+ {
+ public void consumeLine( String line )
+ {
+ cliOutput.add( line );
+ }
+ } );
+ if ( result != 0 )
+ {
+ throw new InstallationException( "cli to get " + executable + " version return code " + result );
+ }
+ return cliOutput;
+ }
+ catch ( CommandLineException e )
+ {
+ getLogger().error(
+ "fail to execute " + executable + " with arg " + executorConfigurator.getVersionArgument() );
+ throw new InstallationException( e.getMessage(), e );
+ }
+ }
+
+ private boolean alreadyExistInstallationName( Installation installation )
+ throws InstallationException
+ {
+ List<Installation> all = getAllInstallations();
+ for ( Installation install : all )
+ {
+ if ( org.apache.commons.lang.StringUtils.equals( installation.getName(), install.getName() ) )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
Propchange: continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/installation/DefaultInstallationService.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java?rev=702122&view=auto
==============================================================================
--- continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java (added)
+++ continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java Mon Oct 6 05:16:22 2008
@@ -0,0 +1,316 @@
+package org.apache.continuum.profile;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.continuum.dao.ProfileDao;
+import org.apache.maven.continuum.installation.InstallationService;
+import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.Profile;
+import org.apache.maven.continuum.profile.AlreadyExistsProfileException;
+import org.apache.maven.continuum.profile.ProfileException;
+import org.apache.maven.continuum.profile.ProfileService;
+import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:olamy@codehaus.org">olamy</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.maven.continuum.profile.ProfileService"
+ * TODO use some cache mechanism to prevent always reading from store ?
+ * @since 15 juin 07
+ */
+public class DefaultProfileService
+ implements ProfileService
+{
+ /**
+ * @plexus.requirement
+ */
+ private ProfileDao profileDao;
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#updateProfile(org.apache.maven.continuum.model.system.Profile)
+ */
+ public void updateProfile( Profile profile )
+ throws ProfileException, AlreadyExistsProfileException
+ {
+
+ // already exists check should be done in the same transaction
+ // but we assume we don't have a huge load and a lot of concurrent access ;-)
+ if ( alreadyExistsProfileName( profile ) )
+ {
+ throw new AlreadyExistsProfileException( "profile with name " + profile.getName() + " already exists" );
+ }
+
+ try
+ {
+ Profile stored = getProfile( profile.getId() );
+ stored.setActive( profile.isActive() );
+ stored.setBuilder( profile.getBuilder() );
+ stored.setBuildWithoutChanges( profile.isBuildWithoutChanges() );
+ stored.setDescription( profile.getDescription() );
+ stored.setJdk( profile.getJdk() );
+ stored.setName( profile.getName() );
+ stored.setEnvironmentVariables( profile.getEnvironmentVariables() );
+ profileDao.updateProfile( stored );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+ public void updateProfileCheckDuplicateName( Profile profile, boolean checkDuplicateName )
+ throws ProfileException, AlreadyExistsProfileException
+ {
+ if ( checkDuplicateName )
+ {
+ // already exists check should be done in the same transaction
+ // but we assume we don't have a huge load and a lot of concurrent access ;-)
+ if ( alreadyExistsProfileName( profile ) )
+ {
+ throw new AlreadyExistsProfileException( "profile with name " + profile.getName() + " already exists" );
+ }
+ }
+ try
+ {
+ Profile stored = getProfile( profile.getId() );
+ stored.setActive( profile.isActive() );
+ stored.setBuilder( profile.getBuilder() );
+ stored.setBuildWithoutChanges( profile.isBuildWithoutChanges() );
+ stored.setDescription( profile.getDescription() );
+ stored.setJdk( profile.getJdk() );
+ stored.setName( profile.getName() );
+ stored.setEnvironmentVariables( profile.getEnvironmentVariables() );
+ profileDao.updateProfile( stored );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#addProfile(org.apache.maven.continuum.model.system.Profile)
+ */
+ public Profile addProfile( Profile profile )
+ throws ProfileException, AlreadyExistsProfileException
+ {
+ // already exists check should be done in the same transaction
+ // but we assume we don't have a huge load and a lot of concurrent access ;-)
+ if ( alreadyExistsProfileName( profile ) )
+ {
+ throw new AlreadyExistsProfileException( "profile with name " + profile.getName() + " already exists" );
+ }
+ profile.setBuilder( null );
+ profile.setJdk( null );
+ profile.setEnvironmentVariables( null );
+ return profileDao.addProfile( profile );
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#deleteProfile(int)
+ */
+ public void deleteProfile( int profileId )
+ throws ProfileException
+ {
+ try
+ {
+ profileDao.removeProfile( getProfile( profileId ) );
+ }
+ catch ( Exception e )
+ {
+ throw new ProfileException( "Cannot remove the profile", e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#getAllProfiles()
+ */
+ public List<Profile> getAllProfiles()
+ throws ProfileException
+ {
+ return profileDao.getAllProfilesByName();
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#getProfile(int)
+ */
+ public Profile getProfile( int profileId )
+ throws ProfileException
+ {
+ try
+ {
+ return profileDao.getProfile( profileId );
+ }
+ catch ( ContinuumObjectNotFoundException e )
+ {
+ // really ignore ?
+ return null;
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#setBuilderInProfile(org.apache.maven.continuum.model.system.Profile,org.apache.maven.continuum.model.system.Installation)
+ */
+ public void setBuilderInProfile( Profile profile, Installation builder )
+ throws ProfileException
+ {
+ Profile stored = getProfile( profile.getId() );
+ stored.setBuilder( builder );
+ try
+ {
+ profileDao.updateProfile( stored );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#setJdkInProfile(org.apache.maven.continuum.model.system.Profile,org.apache.maven.continuum.model.system.Installation)
+ */
+ public void setJdkInProfile( Profile profile, Installation jdk )
+ throws ProfileException
+ {
+ Profile stored = getProfile( profile.getId() );
+ stored.setJdk( jdk );
+ try
+ {
+ profileDao.updateProfile( stored );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.continuum.profile.ProfileService#addEnvVarInProfile(org.apache.maven.continuum.model.system.Profile,org.apache.maven.continuum.model.system.Installation)
+ */
+ public void addEnvVarInProfile( Profile profile, Installation envVar )
+ throws ProfileException
+ {
+ Profile stored = getProfile( profile.getId() );
+ stored.addEnvironmentVariable( envVar );
+ try
+ {
+ profileDao.updateProfile( stored );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+ public void addInstallationInProfile( Profile profile, Installation installation )
+ throws ProfileException
+ {
+ if ( InstallationService.JDK_TYPE.equals( installation.getType() ) )
+ {
+ setJdkInProfile( profile, installation );
+ }
+ else if ( InstallationService.MAVEN1_TYPE.equals( installation.getType() ) ||
+ InstallationService.MAVEN2_TYPE.equals( installation.getType() ) ||
+ InstallationService.ANT_TYPE.equals( installation.getType() ) )
+ {
+ setBuilderInProfile( profile, installation );
+ }
+ else
+ {
+ addEnvVarInProfile( profile, installation );
+ }
+
+ }
+
+ public void removeInstallationFromProfile( Profile profile, Installation installation )
+ throws ProfileException
+ {
+ Profile stored = getProfile( profile.getId() );
+ if ( InstallationService.JDK_TYPE.equals( installation.getType() ) )
+ {
+ stored.setJdk( null );
+ }
+ else if ( InstallationService.MAVEN1_TYPE.equals( installation.getType() ) ||
+ InstallationService.MAVEN2_TYPE.equals( installation.getType() ) ||
+ InstallationService.ANT_TYPE.equals( installation.getType() ) )
+ {
+ stored.setBuilder( null );
+ }
+ else
+ {
+ // remove one
+ List<Installation> storedEnvVars = stored.getEnvironmentVariables();
+ List<Installation> newEnvVars = new ArrayList<Installation>();
+ for ( Installation storedInstallation : storedEnvVars )
+ {
+ if ( !StringUtils.equals( storedInstallation.getName(), installation.getName() ) )
+ {
+ newEnvVars.add( storedInstallation );
+ }
+ }
+ stored.setEnvironmentVariables( newEnvVars );
+ }
+ try
+ {
+ updateProfileCheckDuplicateName( stored, false );
+ }
+ catch ( AlreadyExistsProfileException e )
+ {
+ // normally cannot happend here but anyway we throw the exception
+ throw new ProfileException( e.getMessage(), e );
+ }
+ }
+
+
+ public Profile getProfileWithName( String profileName )
+ throws ProfileException
+ {
+ List<Profile> allProfiles = getAllProfiles();
+ for ( Profile profile : allProfiles )
+ {
+ if ( StringUtils.equals( profile.getName(), profileName ) )
+ {
+ return profile;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param profile
+ * @return true if profile with same name (<b>case sensitive</b>) exists
+ * @throws ProfileException
+ */
+ private boolean alreadyExistsProfileName( Profile profile )
+ throws ProfileException
+ {
+ return getProfileWithName( profile.getName() ) != null;
+ }
+
+}
Propchange: continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/profile/DefaultProfileService.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java?rev=702122&view=auto
==============================================================================
--- continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java (added)
+++ continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java Mon Oct 6 05:16:22 2008
@@ -0,0 +1,242 @@
+package org.apache.continuum.installation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.continuum.dao.DaoUtils;
+import org.apache.maven.continuum.AbstractContinuumTest;
+import org.apache.maven.continuum.execution.ExecutorConfigurator;
+import org.apache.maven.continuum.installation.AlreadyExistsInstallationException;
+import org.apache.maven.continuum.installation.InstallationService;
+import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.Profile;
+import org.apache.maven.continuum.profile.ProfileService;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:olamy@codehaus.org">olamy</a>
+ * @version $Id$
+ * @since 13 juin 07
+ */
+public class DefaultInstallationServiceTest
+ extends AbstractContinuumTest
+{
+ private static final String DEFAULT_INSTALLATION_NAME = "defaultInstallation";
+
+ private static final String NEW_INSTALLATION_NAME = "newInstallation";
+
+ //public Installation defaultInstallation;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ DaoUtils daoUtils = (DaoUtils) lookup( DaoUtils.class.getName() );
+ daoUtils.eraseDatabase();
+ /*if ( getInstallationService().getAllInstallations().isEmpty() )
+ {
+ defaultInstallation = createDefault();
+ ContinuumStore store = getStore();
+ defaultInstallation = store.addInstallation( defaultInstallation );
+ }*/
+ }
+
+ private Installation createDefaultInstallation()
+ {
+ Installation installation = new Installation();
+ installation.setType( "description" );
+ installation.setName( DEFAULT_INSTALLATION_NAME );
+ installation.setVarName( "varName" );
+ installation.setVarValue( "varValue" );
+ return installation;
+ }
+
+ private InstallationService getInstallationService()
+ throws Exception
+ {
+ //Continuum continuum = (Continuum) lookup( Continuum.ROLE );
+ //return continuum.getInstallationService();
+ return (InstallationService) lookup( InstallationService.ROLE );
+ }
+
+ private Installation addInstallation( String name, String varName, String varValue, String type )
+ throws Exception
+ {
+
+ Installation installation = new Installation();
+ installation.setType( InstallationService.JDK_TYPE );
+ installation.setName( name );
+ installation.setVarName( varName );
+ installation.setVarValue( varValue );
+ return getInstallationService().add( installation );
+ }
+
+ public void testAddInstallation()
+ throws Exception
+ {
+ Installation added = this.addInstallation( NEW_INSTALLATION_NAME, null, "bar", InstallationService.JDK_TYPE );
+ Installation getted = getInstallationService().getInstallation( added.getInstallationId() );
+ assertNotNull( getted );
+ assertEquals( getInstallationService().getEnvVar( InstallationService.JDK_TYPE ), getted.getVarName() );
+ assertEquals( "bar", getted.getVarValue() );
+ assertEquals( 1, getInstallationService().getAllInstallations().size() );
+ }
+
+ public void testAddDuplicateInstallation()
+ throws Exception
+ {
+ Installation added = this.addInstallation( NEW_INSTALLATION_NAME, null, "bar", InstallationService.JDK_TYPE );
+ Installation getted = getInstallationService().getInstallation( added.getInstallationId() );
+ assertNotNull( getted );
+ assertEquals( getInstallationService().getEnvVar( InstallationService.JDK_TYPE ), getted.getVarName() );
+ assertEquals( "bar", getted.getVarValue() );
+ try
+ {
+ added = this.addInstallation( NEW_INSTALLATION_NAME, null, "bar", InstallationService.JDK_TYPE );
+ fail( "not in AlreadyExistsInstallationException" );
+ }
+ catch ( AlreadyExistsInstallationException e )
+ {
+ // we must be here
+ }
+ assertEquals( 1, getInstallationService().getAllInstallations().size() );
+ }
+
+ public void testRemove()
+ throws Exception
+ {
+ String name = "toremove";
+ Installation added = this.addInstallation( name, "foo", "bar", InstallationService.JDK_TYPE );
+ Installation getted = getInstallationService().getInstallation( added.getInstallationId() );
+ assertNotNull( getted );
+ getInstallationService().delete( getted );
+ getted = getInstallationService().getInstallation( added.getInstallationId() );
+ assertNull( getted );
+
+ }
+
+ public void testUpdate()
+ throws Exception
+ {
+ String name = "toupdate";
+ Installation added = this.addInstallation( name, "foo", "bar", InstallationService.JDK_TYPE );
+ Installation getted = getInstallationService().getInstallation( added.getInstallationId() );
+ assertNotNull( getted );
+ assertEquals( getInstallationService().getEnvVar( InstallationService.JDK_TYPE ), getted.getVarName() );
+ assertEquals( "bar", getted.getVarValue() );
+ getted.setVarName( "updatefoo" );
+ getted.setVarValue( "updatedbar" );
+ getInstallationService().update( getted );
+ getted = getInstallationService().getInstallation( added.getInstallationId() );
+ assertNotNull( getted );
+ assertEquals( getInstallationService().getEnvVar( InstallationService.JDK_TYPE ), getted.getVarName() );
+ assertEquals( "updatedbar", getted.getVarValue() );
+ }
+
+ public void testgetDefaultJdkInformations()
+ throws Exception
+ {
+ InstallationService installationService = (InstallationService) lookup( InstallationService.ROLE, "default" );
+ List<String> infos = installationService.getDefaultJdkInformations();
+ assertNotNull( infos );
+ }
+
+ public void testgetJdkInformations()
+ throws Exception
+ {
+ InstallationService installationService = (InstallationService) lookup( InstallationService.ROLE, "default" );
+ String javaHome = System.getenv( "JAVA_HOME" );
+ if ( StringUtils.isEmpty( javaHome ) )
+ {
+ javaHome = System.getProperty( "java.home" );
+ }
+ Installation installation = new Installation();
+ installation.setName( "test" );
+ installation.setType( InstallationService.JDK_TYPE );
+ installation.setVarValue( javaHome );
+
+ List<String> infos = installationService.getJdkInformations( installation );
+ assertNotNull( infos );
+ }
+
+ public void testgetJdkInformationsWithCommonMethod()
+ throws Exception
+ {
+ InstallationService installationService = (InstallationService) lookup( InstallationService.ROLE, "default" );
+ ExecutorConfigurator java = installationService.getExecutorConfigurator( InstallationService.JDK_TYPE );
+ String javaHome = System.getenv( "JAVA_HOME" );
+ if ( StringUtils.isEmpty( javaHome ) )
+ {
+ javaHome = System.getProperty( "java.home" );
+ }
+ List<String> infos = installationService.getExecutorConfiguratorVersion( javaHome, java, null );
+ System.out.println( infos );
+ assertNotNull( infos );
+ }
+
+ public void testgetMvnVersionWithCommonMethod()
+ throws Exception
+ {
+ InstallationService installationService = (InstallationService) lookup( InstallationService.ROLE, "default" );
+ ExecutorConfigurator java = installationService.getExecutorConfigurator( InstallationService.MAVEN2_TYPE );
+ List<String> infos = installationService.getExecutorConfiguratorVersion( null, java, null );
+ assertNotNull( infos );
+ }
+
+ public void testAddInstallationAutomaticProfile()
+ throws Exception
+ {
+
+ Installation installation = new Installation();
+ installation.setType( InstallationService.JDK_TYPE );
+ installation.setName( "automaticJdk" );
+ installation.setVarName( "automaticvarName" );
+ installation.setVarValue( "automaticvarValue" );
+ installation = getInstallationService().add( installation, true );
+ ProfileService profileService = (ProfileService) lookup( ProfileService.ROLE, "default" );
+ List<Profile> profiles = profileService.getAllProfiles();
+ assertEquals( 1, profiles.size() );
+ Profile profile = (Profile) profiles.get( 0 );
+ assertEquals( "automaticJdk", profile.getName() );
+ Installation jdk = profile.getJdk();
+ assertNotNull( jdk );
+ assertEquals( "automaticJdk", jdk.getName() );
+ }
+
+ public void testUpdateName()
+ throws Exception
+ {
+ Installation installation = new Installation();
+ installation.setType( InstallationService.JDK_TYPE );
+ installation.setName( "automatic" );
+ installation.setVarName( "automaticvarName" );
+ installation.setVarValue( "automaticvarValue" );
+ installation = getInstallationService().add( installation, true );
+
+ installation.setName( "new name here" );
+ getInstallationService().update( installation );
+
+ Installation getted = getInstallationService().getInstallation( installation.getInstallationId() );
+ assertEquals( "new name here", getted.getName() );
+
+
+ }
+}
Propchange: continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/installation/DefaultInstallationServiceTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java?rev=702122&view=auto
==============================================================================
--- continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java (added)
+++ continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java Mon Oct 6 05:16:22 2008
@@ -0,0 +1,312 @@
+package org.apache.continuum.profile;
+
+import org.apache.continuum.dao.DaoUtils;
+import org.apache.maven.continuum.AbstractContinuumTest;
+import org.apache.maven.continuum.installation.InstallationService;
+import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.Profile;
+import org.apache.maven.continuum.profile.AlreadyExistsProfileException;
+import org.apache.maven.continuum.profile.ProfileService;
+
+import java.util.List;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:olamy@codehaus.org">olamy</a>
+ * @version $Id$
+ * @since 15 juin 07
+ */
+public class DefaultProfileServiceTest
+ extends AbstractContinuumTest
+{
+
+ Installation jdk1;
+
+ String jdk1Name = "jdk1";
+
+ Installation jdk2;
+
+ String jdk2Name = "jdk2";
+
+ Installation mvn205;
+
+ String mvn205Name = "mvn 2.0.5";
+
+ Installation mvn206;
+
+ String mvn206Name = "mvn 2.0.6";
+
+ Profile jdk1mvn205;
+
+ String jdk1mvn205Name = "jdk1 mvn 2.0.5";
+
+ Profile jdk2mvn206;
+
+ String jdk2mvn206Name = "jdk2 mvn 2.0.6";
+
+ Installation mvnOpts1;
+
+ String mvnOpts1Name = "mvnOpts1";
+
+ Installation mvnOpts2;
+
+ String mvnOpts2Name = "mvnOpts2";
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ DaoUtils daoUtils = (DaoUtils) lookup( DaoUtils.class.getName() );
+ daoUtils.eraseDatabase();
+
+ jdk1 = new Installation();
+ jdk1.setType( InstallationService.JDK_TYPE );
+ jdk1.setVarValue( "/foo/bar" );
+ jdk1.setName( jdk1Name );
+ jdk1 = getInstallationService().add( jdk1 );
+
+ jdk2 = new Installation();
+ jdk2.setType( InstallationService.JDK_TYPE );
+ jdk2.setVarValue( "/foo/bar/zloug" );
+ jdk2.setName( jdk2Name );
+ jdk2 = getInstallationService().add( jdk2 );
+
+ mvn205 = new Installation();
+ mvn205.setType( InstallationService.MAVEN2_TYPE );
+ mvn205.setVarValue( "/users/maven-2.0.5" );
+ mvn205.setName( mvn205Name );
+ mvn205 = getInstallationService().add( mvn205 );
+
+ mvn206 = new Installation();
+ mvn206.setType( InstallationService.MAVEN2_TYPE );
+ mvn206.setVarValue( "/users/maven-2.0.6" );
+ mvn206.setName( mvn206Name );
+ mvn206 = getInstallationService().add( mvn206 );
+
+ jdk1mvn205 = new Profile();
+ jdk1mvn205.setJdk( jdk1 );
+ jdk1mvn205.setBuilder( mvn205 );
+ jdk1mvn205.setName( jdk1mvn205Name );
+ getProfileService().addProfile( jdk1mvn205 );
+
+ jdk2mvn206 = new Profile();
+ jdk2mvn206.setJdk( jdk2 );
+ jdk2mvn206.setBuilder( mvn206 );
+ jdk2mvn206.setName( jdk2mvn206Name );
+ getProfileService().addProfile( jdk2mvn206 );
+
+ mvnOpts1 = new Installation();
+ mvnOpts1.setType( InstallationService.ENVVAR_TYPE );
+ mvnOpts1.setVarName( "MAVEN_OPTS" );
+ mvnOpts1.setVarValue( "-Xmx256m -Djava.awt.headless=true" );
+ mvnOpts1.setName( mvnOpts1Name );
+ mvnOpts1 = getInstallationService().add( mvnOpts1 );
+
+ mvnOpts2 = new Installation();
+ mvnOpts2.setType( InstallationService.ENVVAR_TYPE );
+ mvnOpts2.setVarName( "MAVEN_OPTS" );
+ mvnOpts2.setVarValue( "-Xmx1024m -Xms1024m" );
+ mvnOpts2.setName( mvnOpts2Name );
+ mvnOpts2 = getInstallationService().add( mvnOpts2 );
+
+ }
+
+ public InstallationService getInstallationService()
+ throws Exception
+ {
+ return (InstallationService) lookup( InstallationService.ROLE, "default" );
+ }
+
+ public ProfileService getProfileService()
+ throws Exception
+ {
+ return (ProfileService) lookup( ProfileService.ROLE, "default" );
+ }
+
+ public void testAddProfile()
+ throws Exception
+ {
+ Profile defaultProfile = new Profile();
+ String name = "default profile";
+ defaultProfile.setName( name );
+ Profile getted = getProfileService().addProfile( defaultProfile );
+ assertNotNull( getProfileService().getProfile( getted.getId() ) );
+ assertEquals( name, getProfileService().getProfile( getted.getId() ).getName() );
+ assertEquals( 3, getProfileService().getAllProfiles().size() );
+ }
+
+ public void testAddDuplicateProfile()
+ throws Exception
+ {
+ Profile defaultProfile = new Profile();
+ String name = "default profile";
+ defaultProfile.setName( name );
+ Profile getted = getProfileService().addProfile( defaultProfile );
+ assertNotNull( getProfileService().getProfile( getted.getId() ) );
+ assertEquals( name, getProfileService().getProfile( getted.getId() ).getName() );
+ assertEquals( 3, getProfileService().getAllProfiles().size() );
+
+ defaultProfile = new Profile();
+ defaultProfile.setName( name );
+ try
+ {
+ getted = getProfileService().addProfile( defaultProfile );
+ fail( "no AlreadyExistsProfileException with an already exist name " );
+ }
+ catch ( AlreadyExistsProfileException e )
+ {
+ // we must be here
+ }
+ assertEquals( 3, getProfileService().getAllProfiles().size() );
+ }
+
+ public void testDeleteProfile()
+ throws Exception
+ {
+ Profile defaultProfile = new Profile();
+ defaultProfile.setName( "default profile" );
+ Profile getted = getProfileService().addProfile( defaultProfile );
+ int id = getted.getId();
+ assertNotNull( getProfileService().getProfile( id ) );
+ getProfileService().deleteProfile( id );
+ assertNull( getProfileService().getProfile( id ) );
+ }
+
+ public void testgetAllProfile()
+ throws Exception
+ {
+ List<Profile> all = getProfileService().getAllProfiles();
+ assertNotNull( all );
+ assertFalse( all.isEmpty() );
+ assertEquals( 2, all.size() );
+ }
+
+ public void testupdateProfile()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertEquals( jdk1mvn205Name, profile.getName() );
+ String newName = "new name";
+ profile.setName( newName );
+ getProfileService().updateProfile( profile );
+
+ Profile getted = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertNotNull( getted );
+ assertEquals( newName, getted.getName() );
+ }
+
+ public void testupdateProfileDuplicateName()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertEquals( jdk1mvn205Name, profile.getName() );
+ profile.setName( jdk2mvn206Name );
+
+ try
+ {
+ getProfileService().updateProfile( profile );
+ fail( "no AlreadyExistsProfileException with duplicate name" );
+ }
+ catch ( AlreadyExistsProfileException e )
+ {
+ // we must be here
+ }
+ Profile getted = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertNotNull( getted );
+ assertEquals( jdk1mvn205Name, getted.getName() );
+ }
+
+ public void testsetJdkInProfile()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ getProfileService().setJdkInProfile( profile, jdk2 );
+
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertEquals( jdk2.getName(), profile.getJdk().getName() );
+ assertEquals( jdk2.getVarValue(), profile.getJdk().getVarValue() );
+ }
+
+ public void testsetBuilderInProfile()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ getProfileService().setBuilderInProfile( profile, mvn206 );
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertEquals( mvn206.getName(), profile.getBuilder().getName() );
+ assertEquals( mvn206.getVarValue(), profile.getBuilder().getVarValue() );
+
+ }
+
+ public void testaddEnvVarInProfile()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ getProfileService().setBuilderInProfile( profile, mvn206 );
+ getProfileService().addEnvVarInProfile( profile, mvnOpts1 );
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertFalse( profile.getEnvironmentVariables().isEmpty() );
+ assertEquals( 1, profile.getEnvironmentVariables().size() );
+ }
+
+ public void testRemoveInstallationLinkedToAProfile()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ getProfileService().setJdkInProfile( profile, jdk2 );
+
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ InstallationService installationService = (InstallationService) lookup( InstallationService.ROLE, "default" );
+ installationService.delete( jdk2 );
+ }
+
+ public void testRemoveEnvVarFromProfile()
+ throws Exception
+ {
+ Profile profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ getProfileService().setJdkInProfile( profile, jdk2 );
+ getProfileService().addEnvVarInProfile( profile, mvnOpts1 );
+ getProfileService().addEnvVarInProfile( profile, mvnOpts2 );
+
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertNotNull( profile.getJdk() );
+ assertEquals( 2, profile.getEnvironmentVariables().size() );
+
+ getProfileService().removeInstallationFromProfile( profile, mvnOpts1 );
+
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertNotNull( profile.getJdk() );
+ assertEquals( 1, profile.getEnvironmentVariables().size() );
+
+ getProfileService().removeInstallationFromProfile( profile, jdk2 );
+
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertNull( profile.getJdk() );
+ assertEquals( 1, profile.getEnvironmentVariables().size() );
+
+ getProfileService().removeInstallationFromProfile( profile, mvnOpts2 );
+ profile = getProfileService().getProfile( jdk1mvn205.getId() );
+ assertNull( profile.getJdk() );
+ assertEquals( 0, profile.getEnvironmentVariables().size() );
+ }
+
+
+}
Propchange: continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-commons/src/test/java/org/apache/continuum/profile/DefaultProfileServiceTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision