You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/09/11 10:27:13 UTC
svn commit: r694172 -
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java
Author: sisbell
Date: Thu Sep 11 01:27:13 2008
New Revision: 694172
URL: http://svn.apache.org/viewvc?rev=694172&view=rev
Log:
Dumped most of project restorer code.
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java?rev=694172&r1=694171&r2=694172&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java Thu Sep 11 01:27:13 2008
@@ -64,7 +64,7 @@
{
return;
}
-
+ /*
restoreBuildRoots( project, config );
if ( project.getBuild() != null )
{
@@ -77,7 +77,7 @@
{
restoreDynamicState( executionProject, config );
}
-
+ */
project.setConcrete( false );
}
@@ -89,439 +89,24 @@
return;
}
- Build build = project.getBuild();
- if ( build != null )
- {
- initResourceMergeIds( build.getResources() );
- initResourceMergeIds( build.getTestResources() );
- }
-
Model model = ModelUtils.cloneModel( project.getModel() );
File basedir = project.getBasedir();
- model = modelInterpolator.interpolate( model, basedir, config, getLogger().isDebugEnabled() );
-
- List originalInterpolatedCompileSourceRoots =
- interpolateListOfStrings( project.getCompileSourceRoots(), model, project.getBasedir(), config );
-
- project.preserveCompileSourceRoots( originalInterpolatedCompileSourceRoots );
-
- project.setCompileSourceRoots( originalInterpolatedCompileSourceRoots == null
- ? null
- : translateListOfPaths( originalInterpolatedCompileSourceRoots, basedir ) );
-
- List originalInterpolatedTestCompileSourceRoots =
- interpolateListOfStrings( project.getTestCompileSourceRoots(), model, project.getBasedir(), config );
-
- project.preserveTestCompileSourceRoots( originalInterpolatedTestCompileSourceRoots );
- project.setTestCompileSourceRoots( originalInterpolatedTestCompileSourceRoots == null
- ? null
- : translateListOfPaths( originalInterpolatedTestCompileSourceRoots, basedir ) );
-
- List originalInterpolatedScriptSourceRoots =
- interpolateListOfStrings( project.getScriptSourceRoots(), model, project.getBasedir(), config );
-
- project.preserveScriptSourceRoots( originalInterpolatedScriptSourceRoots );
- project.setScriptSourceRoots( originalInterpolatedScriptSourceRoots == null
- ? null
- : translateListOfPaths( originalInterpolatedScriptSourceRoots, basedir ) );
-
Model model2 = ModelUtils.cloneModel( model );
-
pathTranslator.alignToBaseDirectory( model, basedir );
-
project.preserveBuild( model2.getBuild() );
- project.setBuild( model.getBuild() );
- calculateConcreteProjectReferences( project, config );
+ project.setBuild( model.getBuild() );
+ //
+ /*
MavenProject executionProject = project.getExecutionProject();
if ( executionProject != null && executionProject != project )
{
calculateConcreteState( executionProject, config );
}
-
+ */
project.setConcrete( true );
}
-
-
- private void restoreDynamicProjectReferences( MavenProject project, ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- Map projectRefs = project.getProjectReferences();
- if ( projectRefs != null )
- {
- for ( Iterator it = projectRefs.values().iterator(); it.hasNext(); )
- {
- MavenProject projectRef = (MavenProject) it.next();
- restoreDynamicState( projectRef, config );
- }
- }
- }
-
- private void restoreBuildRoots( MavenProject project, ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- project.setCompileSourceRoots( restoreListOfStrings( project.getDynamicCompileSourceRoots(),
- project.getOriginalInterpolatedCompileSourceRoots(),
- project.getCompileSourceRoots(), project, config ) );
-
- project.setTestCompileSourceRoots( restoreListOfStrings( project.getDynamicTestCompileSourceRoots(),
- project.getOriginalInterpolatedTestCompileSourceRoots(),
- project.getTestCompileSourceRoots(), project,
- config ) );
-
- project.setScriptSourceRoots( restoreListOfStrings( project.getDynamicScriptSourceRoots(),
- project.getOriginalInterpolatedScriptSourceRoots(),
- project.getScriptSourceRoots(), project, config ) );
-
- project.clearRestorableRoots();
- }
-
- private void restoreModelBuildSection( MavenProject project, ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- Build changedBuild = project.getBuild();
- Build dynamicBuild = project.getDynamicBuild();
- Build originalInterpolatedBuild = project.getOriginalInterpolatedBuild();
-
- dynamicBuild.setResources( restoreResources( dynamicBuild.getResources(),
- originalInterpolatedBuild.getResources(),
- changedBuild.getResources(), project, config ) );
-
- dynamicBuild.setTestResources( restoreResources( dynamicBuild.getTestResources(),
- originalInterpolatedBuild.getTestResources(),
- changedBuild.getTestResources(), project, config ) );
-
- dynamicBuild.setFilters( restoreListOfStrings( dynamicBuild.getFilters(),
- originalInterpolatedBuild.getFilters(),
- changedBuild.getFilters(), project, config ) );
-
- dynamicBuild.setFinalName( restoreString( dynamicBuild.getFinalName(), originalInterpolatedBuild.getFinalName(),
- changedBuild.getFinalName(), project, config ) );
-
- dynamicBuild.setDefaultGoal( restoreString( dynamicBuild.getDefaultGoal(),
- originalInterpolatedBuild.getDefaultGoal(),
- changedBuild.getDefaultGoal(), project, config ) );
-
- dynamicBuild.setSourceDirectory( restoreString( dynamicBuild.getSourceDirectory(),
- originalInterpolatedBuild.getSourceDirectory(),
- changedBuild.getSourceDirectory(), project, config ) );
-
- dynamicBuild.setTestSourceDirectory( restoreString( dynamicBuild.getTestSourceDirectory(),
- originalInterpolatedBuild.getTestSourceDirectory(),
- changedBuild.getTestSourceDirectory(), project, config ) );
-
- dynamicBuild.setScriptSourceDirectory( restoreString( dynamicBuild.getScriptSourceDirectory(),
- originalInterpolatedBuild.getScriptSourceDirectory(),
- changedBuild.getScriptSourceDirectory(), project,
- config ) );
-
- dynamicBuild.setOutputDirectory( restoreString( dynamicBuild.getOutputDirectory(),
- originalInterpolatedBuild.getOutputDirectory(),
- changedBuild.getOutputDirectory(), project, config ) );
-
- dynamicBuild.setTestOutputDirectory( restoreString( dynamicBuild.getTestOutputDirectory(),
- originalInterpolatedBuild.getTestOutputDirectory(),
- changedBuild.getTestOutputDirectory(), project, config ) );
-
- dynamicBuild.setDirectory( restoreString( dynamicBuild.getDirectory(), originalInterpolatedBuild.getDirectory(),
- changedBuild.getDirectory(), project, config ) );
-
- project.setBuild( dynamicBuild );
-
- project.clearRestorableBuild();
- }
-
- private List interpolateListOfStrings( List originalStrings, Model model, File projectDir,
- ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- if ( originalStrings == null )
- {
- return null;
- }
-
- List result = new ArrayList();
-
- for ( Iterator it = originalStrings.iterator(); it.hasNext(); )
- {
- String original = (String) it.next();
- String interpolated =
- modelInterpolator.interpolate( original, model, projectDir, config, getLogger().isDebugEnabled() );
-
- result.add( interpolated );
- }
-
- return result;
- }
-
- private String restoreString( String originalString, String originalInterpolatedString, String changedString,
- MavenProject project, ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- if ( originalString == null )
- {
- return changedString;
- }
- else if ( changedString == null )
- {
- return originalString;
- }
-
- Model model = project.getModel();
-
- String relativeChangedString;
- if ( project.getBasedir() != null )
- {
- relativeChangedString = pathTranslator.unalignFromBaseDirectory( changedString, project.getBasedir() );
- }
- else
- {
- relativeChangedString = changedString;
- }
-
- String interpolatedOriginal = modelInterpolator.interpolate( originalString, model, project.getBasedir(),
- config, getLogger().isDebugEnabled() );
- String interpolatedOriginal2 = modelInterpolator.interpolate( originalInterpolatedString, model,
- project.getBasedir(), config,
- getLogger().isDebugEnabled() );
-
- String interpolatedChanged = modelInterpolator.interpolate( changedString, model, project.getBasedir(), config,
- getLogger().isDebugEnabled() );
- String relativeInterpolatedChanged = modelInterpolator.interpolate( relativeChangedString, model,
- project.getBasedir(), config,
- getLogger().isDebugEnabled() );
-
- if ( interpolatedOriginal.equals( interpolatedChanged ) || interpolatedOriginal2.equals( interpolatedChanged ) )
- {
- return originalString;
- }
- else if ( interpolatedOriginal.equals( relativeInterpolatedChanged ) ||
- interpolatedOriginal2.equals( relativeInterpolatedChanged ) )
- {
- return originalString;
- }
-
- return relativeChangedString;
- }
-
- private List restoreListOfStrings( List originalStrings, List originalInterpolatedStrings, List changedStrings,
- MavenProject project, ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- if ( originalStrings == null )
- {
- return changedStrings;
- }
- else if ( changedStrings == null )
- {
- return originalStrings;
- }
-
- List result = new ArrayList();
-
- Map orig = new HashMap();
- for ( int idx = 0; idx < originalStrings.size(); idx++ )
- {
- String[] permutations = new String[2];
-
- permutations[0] = (String) originalInterpolatedStrings.get( idx );
- permutations[1] = (String) originalStrings.get( idx );
-
- orig.put( permutations[0], permutations );
- }
-
- for ( Iterator it = changedStrings.iterator(); it.hasNext(); )
- {
- String changedString = (String) it.next();
- String relativeChangedString;
- if ( project.getBasedir() != null )
- {
- relativeChangedString = pathTranslator.unalignFromBaseDirectory( changedString, project.getBasedir() );
- }
- else
- {
- relativeChangedString = changedString;
- }
-
- String interpolated = modelInterpolator.interpolate( changedString, project.getModel(),
- project.getBasedir(), config,
- getLogger().isDebugEnabled() );
-
- String relativeInterpolated = modelInterpolator.interpolate( relativeChangedString, project.getModel(),
- project.getBasedir(), config,
- getLogger().isDebugEnabled() );
-
- String[] original = (String[]) orig.get( interpolated );
- if ( original == null )
- {
- original = (String[]) orig.get( relativeInterpolated );
- }
-
- if ( original == null )
- {
- result.add( relativeChangedString );
- }
- else
- {
- result.add( original[1] );
- }
- }
-
- return result;
- }
-
- // TODO: Convert this to use the mergeId on each resource...
- private List restoreResources( List<Resource> originalResources, List<Resource> originalInterpolatedResources,
- List<Resource> changedResources, MavenProject project,
- ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- if ( originalResources == null || changedResources == null )
- {
- return originalResources;
- }
-
- List<Resource> result = new ArrayList<Resource>();
-
- Map<String, Resource[]> originalResourcesByMergeId = new HashMap<String, Resource[]>();
- for ( int idx = 0; idx < originalResources.size(); idx++ )
- {
- Resource[] permutations = new Resource[2];
-
- permutations[0] = originalInterpolatedResources.get( idx );
- permutations[1] = originalResources.get( idx );
-
- originalResourcesByMergeId.put( permutations[0].getMergeId(), permutations );
- }
-
- for ( Resource resource : changedResources )
- {
- String mergeId = resource.getMergeId();
- if ( mergeId == null || !originalResourcesByMergeId.containsKey( mergeId ) )
- {
- result.add( resource );
- }
- else
- {
- Resource originalInterpolatedResource = originalResourcesByMergeId.get( mergeId )[0];
- Resource originalResource = originalResourcesByMergeId.get( mergeId )[1];
-
- String dir = modelInterpolator.interpolate( resource.getDirectory(), project.getModel(),
- project.getBasedir(), config,
- getLogger().isDebugEnabled() );
- String oDir = originalInterpolatedResource.getDirectory();
-
- if ( !dir.equals( oDir ) )
- {
- originalResource.setDirectory(
- pathTranslator.unalignFromBaseDirectory( dir, project.getBasedir() ) );
- }
-
- if ( resource.getTargetPath() != null )
- {
- String target = modelInterpolator.interpolate( resource.getTargetPath(), project.getModel(),
- project.getBasedir(), config,
- getLogger().isDebugEnabled() );
-
- String oTarget = originalInterpolatedResource.getTargetPath();
-
- if ( !target.equals( oTarget ) )
- {
- originalResource.setTargetPath(
- pathTranslator.unalignFromBaseDirectory( target, project.getBasedir() ) );
- }
- }
-
- originalResource.setFiltering( resource.isFiltering() );
-
- originalResource.setExcludes( collectRestoredListOfPatterns( resource.getExcludes(),
- originalResource.getExcludes(),
- originalInterpolatedResource.getExcludes() ) );
-
- originalResource.setIncludes( collectRestoredListOfPatterns( resource.getIncludes(),
- originalResource.getIncludes(),
- originalInterpolatedResource.getIncludes() ) );
-
- result.add( originalResource );
- }
- }
-
- return result;
- }
-
- private List<String> collectRestoredListOfPatterns( List<String> patterns, List<String> originalPatterns,
- List<String> originalInterpolatedPatterns )
- {
- LinkedHashSet<String> collectedPatterns = new LinkedHashSet<String>();
-
- collectedPatterns.addAll( originalPatterns );
-
- for ( String pattern : patterns )
- {
- if ( !originalInterpolatedPatterns.contains( pattern ) )
- {
- collectedPatterns.add( pattern );
- }
- }
-
- return (List<String>) ( collectedPatterns.isEmpty()
- ? Collections.emptyList()
- : new ArrayList<String>( collectedPatterns ) );
- }
-
-
- private void initResourceMergeIds( List<Resource> resources )
- {
- if ( resources != null )
- {
- for ( Resource resource : resources )
- {
- resource.initMergeId();
- }
- }
- }
-
- private void calculateConcreteProjectReferences( MavenProject project, ProjectBuilderConfiguration config )
- throws ModelInterpolationException
- {
- Map projectRefs = project.getProjectReferences();
-
- if ( projectRefs != null )
- {
- for ( Iterator it = projectRefs.values().iterator(); it.hasNext(); )
- {
- MavenProject reference = (MavenProject) it.next();
- calculateConcreteState( reference, config );
- }
- }
- }
-
- private List translateListOfPaths( List paths, File basedir )
- {
- if ( paths == null )
- {
- return null;
- }
- else if ( basedir == null )
- {
- return paths;
- }
-
- List result = new ArrayList( paths.size() );
- for ( Iterator it = paths.iterator(); it.hasNext(); )
- {
- String path = (String) it.next();
-
- String aligned = pathTranslator.alignToBaseDirectory( path, basedir );
-
- result.add( aligned );
- }
-
- return result;
- }
-
-
}