package org.infinispan.it.osgi.util;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
public class MavenUtils {
private static final String MAVEN_PROPERTIES_FILENAME = "maven.properties";
private static final String PROP_MAVEN_LOCAL_REPO = "localRepository";
/**
* Get the Maven properties defined in the project.
*
* @return a Properties object containing the Maven project properties.
* @throws Exception
*/
public static Properties getProperties() throws Exception {
Bundle bundle = FrameworkUtil.getBundle(MavenUtils.class);
URL resource;
if (bundle != null) {
/* OSGi */
resource = bundle.getResource(MAVEN_PROPERTIES_FILENAME);
} else {
resource = MavenUtils.class.getClassLoader().getResource(MAVEN_PROPERTIES_FILENAME);
}
InputStream stream = resource.openStream();
Properties props = new Properties();
try {
props.load(stream);
} finally {
stream.close();
}
/* Set to null properties which were not set in Maven. */
for (String prop : props.stringPropertyNames()) {
String propValue = props.getProperty(prop);
if (String.format("${%s}", prop).equals(propValue.trim())) {
props.remove(prop);
}
}
return props;
}
public static String getLocalRepository() throws Exception {
String localRepo = System.getProperty(PROP_MAVEN_LOCAL_REPO);
if (localRepo == null) {
localRepo = getProperties().getProperty(PROP_MAVEN_LOCAL_REPO);
}
if (localRepo == null) {
return null;
}
return (new File(localRepo)).getAbsolutePath();
}
}