@Override public Model interpolateModel( Model model, File projectDir, ModelBuildingRequest config, ModelProblemCollector problems ) { interpolateObject( model, model, projectDir, config, problems ); return model; }
BuildTimestampValueSource( Date startTime, Properties properties ) { super( false ); this.mavenBuildTimestamp = new MavenBuildTimestamp( startTime, properties ); }
public void interpolate( Object target, InterpolateObjectAction interpolateObjectAction ) { for ( CacheField field : fields ) { field.interpolate( target, interpolateObjectAction ); } }
private void traverseObjectWithParents( Class<?> cls, Object target ) { if ( cls == null ) { return; } CacheItem cacheEntry = getCacheEntry( cls ); if ( cacheEntry.isArray() ) { evaluateArray( target, this ); } else if ( cacheEntry.isQualifiedForInterpolation ) { cacheEntry.interpolate( target, this ); traverseObjectWithParents( cls.getSuperclass(), target ); } }
protected void interpolateObject( Object obj, Model model, File projectDir, ModelBuildingRequest config, ModelProblemCollector problems ) { try { List<? extends ValueSource> valueSources = createValueSources( model, projectDir, config, problems ); List<? extends InterpolationPostProcessor> postProcessors = createPostProcessors( model, projectDir, config ); InterpolateObjectAction action = new InterpolateObjectAction( obj, valueSources, postProcessors, this, problems ); AccessController.doPrivileged( action ); } finally { getInterpolator().clearAnswers(); } }
CacheItem( Class clazz ) this.isQualifiedForInterpolation = isQualifiedForInterpolation( clazz ); this.isArray = clazz.isArray(); List<CacheField> fields = new ArrayList<>(); if ( isQualifiedForInterpolation( currentField, type ) ) fields.add( new StringField( currentField ) ); fields.add( new ListField( currentField ) ); fields.add( new MapField( currentField ) ); fields.add( new ObjectField( currentField ) );
protected ModelInterpolator newModelInterpolator() { UrlNormalizer normalizer = newUrlNormalizer(); PathTranslator pathTranslator = newPathTranslator(); return new StringSearchModelInterpolator().setPathTranslator( pathTranslator ).setUrlNormalizer( normalizer ); }
modelInterpolator.interpolateModel( model, model.getProjectDirectory(), request, problems ); if ( interpolatedModel.getParent() != null )
@Override public Object getValue( String expression ) { if ( "build.timestamp".equals( expression ) || "maven.build.timestamp".equals( expression ) ) { return mavenBuildTimestamp.formattedTimestamp(); } return null; } }
protected List<? extends InterpolationPostProcessor> createPostProcessors( final Model model, final File projectDir, final ModelBuildingRequest config ) { List<InterpolationPostProcessor> processors = new ArrayList<>( 2 ); if ( projectDir != null ) { processors.add( new PathTranslatingPostProcessor( PROJECT_PREFIXES, TRANSLATED_PATH_EXPRESSIONS, projectDir, pathTranslator ) ); } processors.add( new UrlNormalizingPostProcessor( urlNormalizer ) ); return processors; }
if ( config.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 ) modelValueSource1 = new ProblemDetectingValueSource( modelValueSource1, "pom.", "project.", problems ); if ( config.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 ) modelValueSource2 = new ProblemDetectingValueSource( modelValueSource2, "", "project.", problems ); valueSources.add( new BuildTimestampValueSource( config.getBuildStartTime(), modelProperties ) );
private String interpolate( String value ) { return modelInterpolator.interpolateInternal( value, valueSources, postProcessors, problems ); }
private CacheItem getCacheEntry( Class<?> cls ) { CacheItem cacheItem = CACHED_ENTRIES.get( cls ); if ( cacheItem == null ) { cacheItem = new CacheItem( cls ); CACHED_ENTRIES.put( cls, cacheItem ); } return cacheItem; }
@Override public Object run() { while ( !interpolationTargets.isEmpty() ) { Object obj = interpolationTargets.removeFirst(); traverseObjectWithParents( obj.getClass(), obj ); } return null; }
public AbstractStringBasedModelInterpolator() { interpolator = createInterpolator(); recursionInterceptor = new PrefixAwareRecursionInterceptor( PROJECT_PREFIXES ); }
private static void evaluateArray( Object target, InterpolateObjectAction ctx ) { int len = Array.getLength( target ); for ( int i = 0; i < len; i++ ) { Object value = Array.get( target, i ); if ( value != null ) { if ( String.class == value.getClass() ) { String interpolated = ctx.interpolate( (String) value ); if ( !interpolated.equals( value ) ) { Array.set( target, i, interpolated ); } } else { ctx.interpolationTargets.add( value ); } } } }
try doInterpolate( target, interpolateObjectAction );
BuildTimestampValueSource( Date startTime, Properties properties ) { super( false ); this.mavenBuildTimestamp = new MavenBuildTimestamp( startTime, properties ); }
@Override public Model interpolateModel( Model model, File projectDir, ModelBuildingRequest config, ModelProblemCollector problems ) { interpolateObject( model, model, projectDir, config, problems ); return model; }
public void interpolate( Object target, InterpolateObjectAction interpolateObjectAction ) { for ( CacheField field : fields ) { field.interpolate( target, interpolateObjectAction ); } }