if ( ( modelBase.getModules() != null ) && ( modelBase.getModules().size() > 0 ) ) for ( Iterator iter = modelBase.getModules().iterator(); iter.hasNext(); ) if ( modelBase.getDistributionManagement() != null ) writeDistributionManagement( (DistributionManagement) modelBase.getDistributionManagement(), "distributionManagement", serializer ); if ( ( modelBase.getProperties() != null ) && ( modelBase.getProperties().size() > 0 ) ) for ( Iterator iter = modelBase.getProperties().keySet().iterator(); iter.hasNext(); ) String value = (String) modelBase.getProperties().get( key ); serializer.startTag( NAMESPACE, "" + key + "" ).text( value ).endTag( NAMESPACE, "" + key + "" ); if ( modelBase.getDependencyManagement() != null ) writeDependencyManagement( (DependencyManagement) modelBase.getDependencyManagement(), "dependencyManagement", serializer ); if ( ( modelBase.getDependencies() != null ) && ( modelBase.getDependencies().size() > 0 ) ) for ( Iterator iter = modelBase.getDependencies().iterator(); iter.hasNext(); ) if ( ( modelBase.getRepositories() != null ) && ( modelBase.getRepositories().size() > 0 ) ) for ( Iterator iter = modelBase.getRepositories().iterator(); iter.hasNext(); ) if ( ( modelBase.getPluginRepositories() != null ) && ( modelBase.getPluginRepositories().size() > 0 ) )
private static void cloneModelBaseFields( ModelBase src, ModelBase result ) { result.setDependencies( cloneList( src.getDependencies(), DEPENDENCY_CLONER ) ); result.setDependencyManagement( cloneDependencyManagement( src.getDependencyManagement() ) ); result.setDistributionManagement( cloneDistributionManagement( src.getDistributionManagement() ) ); result.setModules( cloneListOfStrings( src.getModules() ) ); result.setPluginRepositories( cloneList( src.getPluginRepositories(), REPOSITORY_CLONER ) ); result.setProperties( cloneProperties( src.getProperties() ) ); result.setReporting( cloneReporting( src.getReporting() ) ); result.setRepositories( cloneList( src.getRepositories(), REPOSITORY_CLONER ) ); }
protected void mergeModelBase_Modules( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getModules(); if ( !src.isEmpty() ) { List<String> tgt = target.getModules(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setModules( merged ); } }
protected void mergeModelBase_Properties( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { Properties merged = new Properties(); if ( sourceDominant ) { merged.putAll( target.getProperties() ); merged.putAll( source.getProperties() ); } else { merged.putAll( source.getProperties() ); merged.putAll( target.getProperties() ); } target.setProperties( merged ); target.setLocation( "properties", InputLocation.merge( target.getLocation( "properties" ), source.getLocation( "properties" ), sourceDominant ) ); }
ModelBase modelBase = new ModelBase(); for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- ) modelBase.setModules( modules ); while ( parser.nextTag() == XmlPullParser.START_TAG ) modelBase.setDistributionManagement( parseDistributionManagement( parser, strict ) ); modelBase.addProperty( key, value ); modelBase.setDependencyManagement( parseDependencyManagement( parser, strict ) ); modelBase.setDependencies( dependencies ); while ( parser.nextTag() == XmlPullParser.START_TAG ) modelBase.setRepositories( repositories ); while ( parser.nextTag() == XmlPullParser.START_TAG ) modelBase.setPluginRepositories( pluginRepositories ); while ( parser.nextTag() == XmlPullParser.START_TAG ) modelBase.setReports( org.codehaus.plexus.util.xml.Xpp3DomBuilder.build( parser, true ) ); modelBase.setReporting( parseReporting( parser, strict ) );
private static void interpolate(Map<String, String> dict, ModelBase model) { final Properties modelProps = model.getProperties(); for (Map.Entry<String, String> e : dict.entrySet()) { modelProps.setProperty(e.getKey(), String.valueOf(e.getValue())); } interpolate(dict, model.getDependencies()); final DependencyManagement depMgmt = model.getDependencyManagement(); if (depMgmt != null) { interpolate(dict, depMgmt.getDependencies()); } if (model instanceof Model) { final Build build = ((Model) model).getBuild(); if (build != null) { for (Plugin bp: build.getPlugins()) { interpolate(dict, bp.getDependencies()); } if (build.getPluginManagement() != null) { for (Plugin bp: build.getPluginManagement().getPlugins()) { interpolate(dict, bp.getDependencies()); } } } } }
private void mergeModelBase(ModelBase model, ModelBase generatedModel) { // ModelBase can be a Model or a Profile... Map<String,Dependency> dependenciesByIds=createDependencyMap(model.getDependencies()); Map<String,Dependency> generatedDependenciesByIds=createDependencyMap(generatedModel.getDependencies()); for (String generatedDependencyId : generatedDependenciesByIds.keySet()) { if (!dependenciesByIds.containsKey(generatedDependencyId)) { model.addDependency(generatedDependenciesByIds.get(generatedDependencyId)); } else { log.warn("Can not override property: " + generatedDependencyId); } // TODO: maybe warn, if a property key gets overriden? model.getProperties().putAll(generatedModel.getProperties()); // TODO: maybe merge more than just dependencies and properties... } }
/** * Method addDependency. * * @param dependency */ public void addDependency( Dependency dependency ) { getDependencies().add( dependency ); } //-- void addDependency( Dependency )
rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencies() ), model, properties, result, releaseDescriptor, simulate ); if ( modelBase.getDependencyManagement() != null ) rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencyManagement().getDependencies() ), model, properties, result, releaseDescriptor, simulate ); if ( modelBase.getReporting() != null ) rewriteArtifactVersions( toMavenCoordinates( modelBase.getReporting().getPlugins() ), model, properties, result, releaseDescriptor, simulate );
protected void mergeModelBase_Repositories( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { List<Repository> src = source.getRepositories(); if ( !src.isEmpty() ) { List<Repository> tgt = target.getRepositories(); Map<Object, Repository> merged = new LinkedHashMap<>( ( src.size() + tgt.size() ) * 2 ); for ( Repository element : tgt ) { Object key = getRepositoryKey( element ); merged.put( key, element ); } for ( Repository element : src ) { Object key = getRepositoryKey( element ); if ( sourceDominant || !merged.containsKey( key ) ) { merged.put( key, element ); } } target.setRepositories( new ArrayList<>( merged.values() ) ); } }
protected void mergeModelBase_PluginRepositories( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { List<Repository> src = source.getPluginRepositories(); if ( !src.isEmpty() ) { List<Repository> tgt = target.getPluginRepositories(); Map<Object, Repository> merged = new LinkedHashMap<>( ( src.size() + tgt.size() ) * 2 ); for ( Repository element : tgt ) { Object key = getRepositoryKey( element ); merged.put( key, element ); } for ( Repository element : src ) { Object key = getRepositoryKey( element ); if ( sourceDominant || !merged.containsKey( key ) ) { merged.put( key, element ); } } target.setPluginRepositories( new ArrayList<>( merged.values() ) ); } }
@Override protected void mergeModelBase_Modules( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getModules(); if ( !src.isEmpty() && sourceDominant ) { List<Integer> indices = new ArrayList<>(); List<String> tgt = target.getModules(); Set<String> excludes = new LinkedHashSet<>( tgt ); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); for ( int i = 0, n = tgt.size(); i < n; i++ ) { indices.add( i ); } for ( int i = 0, n = src.size(); i < n; i++ ) { String s = src.get( i ); if ( !excludes.contains( s ) ) { merged.add( s ); indices.add( ~i ); } } target.setModules( merged ); target.setLocation( "modules", InputLocation.merge( target.getLocation( "modules" ), source.getLocation( "modules" ), indices ) ); } }
/** * Method removeModule. * * @param string */ public void removeModule( String string ) { getModules().remove( string ); } //-- void removeModule( String )
protected void mergeModelBase_Dependencies( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { List<Dependency> src = source.getDependencies(); if ( !src.isEmpty() ) { List<Dependency> tgt = target.getDependencies(); Map<Object, Dependency> merged = new LinkedHashMap<>( ( src.size() + tgt.size() ) * 2 ); for ( Dependency element : tgt ) { Object key = getDependencyKey( element ); merged.put( key, element ); } for ( Dependency element : src ) { Object key = getDependencyKey( element ); if ( sourceDominant || !merged.containsKey( key ) ) { merged.put( key, element ); } } target.setDependencies( new ArrayList<>( merged.values() ) ); } }
/** * Method addProperty. * * @param key * @param value */ public void addProperty( String key, String value ) { getProperties().put( key, value ); } //-- void addProperty( String, String )
protected void mergeModelBase_DependencyManagement( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { DependencyManagement src = source.getDependencyManagement(); if ( src != null ) { DependencyManagement tgt = target.getDependencyManagement(); if ( tgt == null ) { tgt = new DependencyManagement(); target.setDependencyManagement( tgt ); } mergeDependencyManagement( tgt, src, sourceDominant, context ); } }
/** * Method addPluginRepository. * * @param repository */ public void addPluginRepository( Repository repository ) { getPluginRepositories().add( repository ); } //-- void addPluginRepository( Repository )
/** * Method addRepository. * * @param repository */ public void addRepository( Repository repository ) { getRepositories().add( repository ); } //-- void addRepository( Repository )
protected void mergeModelBase_Reporting( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { Reporting src = source.getReporting(); if ( src != null ) { Reporting tgt = target.getReporting(); if ( tgt == null ) { tgt = new Reporting(); target.setReporting( tgt ); } mergeReporting( tgt, src, sourceDominant, context ); } }
protected void mergeModelBase_DistributionManagement( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { DistributionManagement src = source.getDistributionManagement(); if ( src != null ) { DistributionManagement tgt = target.getDistributionManagement(); if ( tgt == null ) { tgt = new DistributionManagement(); target.setDistributionManagement( tgt ); } mergeDistributionManagement( tgt, src, sourceDominant, context ); } }