use of org.codehaus.plexus.interpolation.RegexBasedInterpolator in project intellij-community by JetBrains.
the class MyFileProfileActivator method isActive.
public boolean isActive(Profile profile) {
Activation activation = profile.getActivation();
ActivationFile actFile = activation.getFile();
if (actFile != null) {
// check if the file exists, if it does then the profile will be active
String fileString = actFile.getExists();
RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
try {
interpolator.addValueSource(new EnvarBasedValueSource());
} catch (IOException e) {
// ignored
}
interpolator.addValueSource(new MapBasedValueSource(System.getProperties()));
try {
if (StringUtils.isNotEmpty(fileString)) {
fileString = StringUtils.replace(interpolator.interpolate(fileString, ""), "\\", "/");
return fileExists(fileString);
}
// check if the file is missing, if it is then the profile will be active
fileString = actFile.getMissing();
if (StringUtils.isNotEmpty(fileString)) {
fileString = StringUtils.replace(interpolator.interpolate(fileString, ""), "\\", "/");
return !fileExists(fileString);
}
} catch (InterpolationException e) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to interpolate missing file location for profile activator: " + fileString, e);
} else {
logger.warn("Failed to interpolate missing file location for profile activator: " + fileString + ". Run in debug mode (-X) for more information.");
}
}
}
return false;
}
use of org.codehaus.plexus.interpolation.RegexBasedInterpolator in project intellij-community by JetBrains.
the class MyFileProfileActivator method isActive.
public boolean isActive(Profile profile) {
Activation activation = profile.getActivation();
ActivationFile actFile = activation.getFile();
if (actFile != null) {
// check if the file exists, if it does then the profile will be active
String fileString = actFile.getExists();
RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
try {
interpolator.addValueSource(new EnvarBasedValueSource());
} catch (IOException e) {
// ignored
}
interpolator.addValueSource(new MapBasedValueSource(System.getProperties()));
try {
if (StringUtils.isNotEmpty(fileString)) {
fileString = StringUtils.replace(interpolator.interpolate(fileString, ""), "\\", "/");
return fileExists(fileString);
}
// check if the file is missing, if it is then the profile will be active
fileString = actFile.getMissing();
if (StringUtils.isNotEmpty(fileString)) {
fileString = StringUtils.replace(interpolator.interpolate(fileString, ""), "\\", "/");
return !fileExists(fileString);
}
} catch (InterpolationException e) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to interpolate missing file location for profile activator: " + fileString, e);
} else {
logger.warn("Failed to interpolate missing file location for profile activator: " + fileString + ". Run in debug mode (-X) for more information.");
}
}
}
return false;
}
use of org.codehaus.plexus.interpolation.RegexBasedInterpolator in project maven-plugins by apache.
the class DoapUtil method interpolate.
/**
* Interpolate a string with project and settings.
*
* @param value could be null
* @param project not null
* @param settings could be null
* @return the value trimmed and interpolated or null if the interpolation doesn't work.
* @since 1.1
*/
public static String interpolate(String value, final MavenProject project, Settings settings) {
if (project == null) {
throw new IllegalArgumentException("project is required");
}
if (value == null) {
return value;
}
if (!value.contains("${")) {
return value.trim();
}
RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
try {
interpolator.addValueSource(new EnvarBasedValueSource());
} catch (IOException e) {
// ignore
}
interpolator.addValueSource(new PropertiesBasedValueSource(System.getProperties()));
interpolator.addValueSource(new PropertiesBasedValueSource(project.getProperties()));
interpolator.addValueSource(new PrefixedObjectValueSource("project", project));
interpolator.addValueSource(new PrefixedObjectValueSource("pom", project));
interpolator.addValueSource(new ObjectBasedValueSource(project) {
@Override
public Object getValue(String expression) {
try {
return ReflectionValueExtractor.evaluate(expression, project, true);
} catch (Exception e) {
addFeedback("Failed to extract \'" + expression + "\' from: " + project, e);
}
return null;
}
});
if (settings != null) {
interpolator.addValueSource(new PrefixedObjectValueSource("settings", settings));
}
String interpolatedValue = value;
try {
interpolatedValue = interpolator.interpolate(value).trim();
} catch (InterpolationException e) {
// ignore
}
if (interpolatedValue.startsWith("${")) {
return null;
}
return interpolatedValue;
}
use of org.codehaus.plexus.interpolation.RegexBasedInterpolator in project maven-plugins by apache.
the class DocumentDescriptorReader method readAndFilterDocumentDescriptor.
/**
* Read and filter the <code>docDescriptor</code> file.
*
* @param docDescriptor not null.
* @return a DocumentModel instance.
* @throws XmlPullParserException if an error occurs during parsing.
* @throws IOException if an error occurs during reading.
*/
public DocumentModel readAndFilterDocumentDescriptor(final File docDescriptor) throws XmlPullParserException, IOException {
Reader reader = null;
try {
// System properties
final Properties filterProperties = System.getProperties();
// Project properties
if (project != null && project.getProperties() != null) {
filterProperties.putAll(project.getProperties());
}
final Interpolator interpolator = new RegexBasedInterpolator();
interpolator.addValueSource(new MapBasedValueSource(filterProperties));
interpolator.addValueSource(new EnvarBasedValueSource());
interpolator.addValueSource(new ObjectBasedValueSource(project) {
/** {@inheritDoc} */
public Object getValue(final String expression) {
try {
return ReflectionValueExtractor.evaluate(expression, project);
} catch (Exception e) {
addFeedback("Failed to extract \'" + expression + "\' from: " + project, e);
}
return null;
}
});
final DateBean bean = new DateBean();
interpolator.addValueSource(new ObjectBasedValueSource(bean));
reader = ReaderFactory.newXmlReader(docDescriptor);
final String interpolatedDoc = interpolator.interpolate(IOUtil.toString(reader));
reader.close();
reader = null;
if (log != null && log.isDebugEnabled()) {
log.debug("Interpolated document descriptor (" + docDescriptor.getAbsolutePath() + ")\n" + interpolatedDoc);
}
// No Strict
return new DocumentXpp3Reader().read(new StringReader(interpolatedDoc), false);
} catch (InterpolationException e) {
final IOException io = new IOException("Error interpolating document descriptor");
io.initCause(e);
throw io;
} finally {
IOUtil.close(reader);
}
}
use of org.codehaus.plexus.interpolation.RegexBasedInterpolator in project maven-plugins by apache.
the class AbstractInvokerMojo method getInvokerProperties.
/**
* Gets the (interpolated) invoker properties for an integration test.
*
* @param projectDirectory The base directory of the IT project, must not be <code>null</code>.
* @return The invoker properties, may be empty but never <code>null</code>.
* @throws org.apache.maven.plugin.MojoExecutionException If an I/O error occurred during reading the properties.
*/
private InvokerProperties getInvokerProperties(final File projectDirectory) throws MojoExecutionException {
Properties props = new Properties();
if (invokerPropertiesFile != null) {
File propertiesFile = new File(projectDirectory, invokerPropertiesFile);
if (propertiesFile.isFile()) {
InputStream in = null;
try {
in = new FileInputStream(propertiesFile);
props.load(in);
in.close();
in = null;
} catch (IOException e) {
throw new MojoExecutionException("Failed to read invoker properties: " + propertiesFile, e);
} finally {
IOUtil.close(in);
}
}
Interpolator interpolator = new RegexBasedInterpolator();
interpolator.addValueSource(new MapBasedValueSource(getInterpolationValueSource(false)));
// CHECKSTYLE_OFF: LineLength
for (String key : props.stringPropertyNames()) {
String value = props.getProperty(key);
try {
value = interpolator.interpolate(value, "");
} catch (InterpolationException e) {
throw new MojoExecutionException("Failed to interpolate invoker properties: " + propertiesFile, e);
}
props.setProperty(key, value);
}
// CHECKSTYLE_ON: LineLength
}
return new InvokerProperties(props);
}
Aggregations