public boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems ) { Activation activation = profile.getActivation(); if ( activation == null ) { return false; } String jdk = activation.getJdk(); if ( jdk == null ) { return false; } String version = context.getSystemProperties().get( "java.version" ); if ( version == null || version.length() <= 0 ) { problems.add( new ModelProblemCollectorRequest( Severity.ERROR, Version.BASE ) .setMessage( "Failed to determine Java version for profile " + profile.getId() ) .setLocation(activation.getLocation( "jdk" ) ) ); return false; } if ( jdk.startsWith( "!" ) ) { return !version.startsWith( jdk.substring( 1 ) ); } else if ( isRange( jdk ) ) { return isInRange( version, getRange( jdk ) ); } else { return version.startsWith( jdk ); } }
public boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems ) { Activation activation = profile.getActivation(); if ( activation == null ) { return false; } ActivationOS os = activation.getOs(); if ( os == null ) { return false; } boolean active = ensureAtLeastOneNonNull( os ); if ( active && os.getFamily() != null ) { active = determineFamilyMatch( os.getFamily() ); } if ( active && os.getName() != null ) { active = determineNameMatch( os.getName() ); } if ( active && os.getArch() != null ) { active = determineArchMatch( os.getArch() ); } if ( active && os.getVersion() != null ) { active = determineVersionMatch( os.getVersion() ); } return active; }
protected void assertActivation( boolean active, Profile profile, ProfileActivationContext context ) { SimpleProblemCollector problems = new SimpleProblemCollector(); assertEquals( active, activator.isActive( profile, context, problems ) ); assertEquals( problems.getErrors().toString(), 0, problems.getErrors().size() ); assertEquals( problems.getWarnings().toString(), 0, problems.getWarnings().size() ); }
protected ProfileActivationContext newContext( final Properties userProperties, final Properties systemProperties ) { DefaultProfileActivationContext context = new DefaultProfileActivationContext(); return context.setUserProperties( userProperties ).setSystemProperties( systemProperties ); }
/** * Determines whether the specified profile is active in the given activator context. * * @param profile The profile whose activation status should be determined, must not be {@code null}. * @param context The environmental context used to determine the activation status of the profile, must not be * {@code null}. * @param problems The container used to collect problems (e.g. bad syntax) that were encountered, must not be * {@code null}. * @return {@code true} if the profile is active, {@code false} otherwise. */ boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems );