use of org.codehaus.plexus.component.repository.exception.ComponentLookupException in project drools by kiegroup.
the class MavenEmbedder method buildProjects.
public List<ProjectBuildingResult> buildProjects(File mavenProject, boolean recursive) throws ProjectBuildingException, MavenEmbedderException {
ClassLoader originalCl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(componentProvider.getSystemClassLoader());
ProjectBuilder projectBuilder = componentProvider.lookup(ProjectBuilder.class);
return projectBuilder.build(Collections.singletonList(mavenProject), recursive, getProjectBuildingRequest());
} catch (ComponentLookupException e) {
throw new MavenEmbedderException(e.getMessage(), e);
} finally {
Thread.currentThread().setContextClassLoader(originalCl);
}
}
use of org.codehaus.plexus.component.repository.exception.ComponentLookupException in project docker-maven-plugin by fabric8io.
the class AuthConfigFactory method decrypt.
private String decrypt(String password) throws MojoExecutionException {
try {
// Done by reflection since I have classloader issues otherwise
Object secDispatcher = container.lookup(SecDispatcher.ROLE, "maven");
Method method = secDispatcher.getClass().getMethod("decrypt", String.class);
return (String) method.invoke(secDispatcher, password);
} catch (ComponentLookupException e) {
throw new MojoExecutionException("Error looking security dispatcher", e);
} catch (ReflectiveOperationException e) {
throw new MojoExecutionException("Cannot decrypt password: " + e.getCause(), e);
}
}
use of org.codehaus.plexus.component.repository.exception.ComponentLookupException in project tycho by eclipse.
the class DefaultEquinoxInstallationFactory method unpack.
protected void unpack(File source, File destination) {
UnArchiver unzip;
try {
unzip = plexus.lookup(UnArchiver.class, "zip");
} catch (ComponentLookupException e) {
throw new RuntimeException("Could not lookup required component", e);
}
unzip.setIgnorePermissions(true);
destination.mkdirs();
unzip.setSourceFile(source);
unzip.setDestDirectory(destination);
try {
unzip.extract();
} catch (ArchiverException e) {
throw new RuntimeException("Unable to unpack jar " + source, e);
}
}
use of org.codehaus.plexus.component.repository.exception.ComponentLookupException in project tycho by eclipse.
the class DefaultDependencyResolverFactory method lookupDependencyResolver.
public DependencyResolver lookupDependencyResolver(MavenProject project) {
Properties properties = (Properties) project.getContextValue(TychoConstants.CTX_MERGED_PROPERTIES);
TargetPlatformConfiguration configuration = TychoProjectUtils.getTargetPlatformConfiguration(project);
String property = properties.getProperty("tycho.targetPlatform");
DependencyResolver resolver;
if (property != null) {
logger.warn("-Dtycho.targetPlatform is deprecated and WILL be removed in the next Tycho version.");
File location = new File(property);
if (!location.exists() || !location.isDirectory()) {
throw new RuntimeException("Invalid target platform location: " + property);
}
try {
resolver = container.lookup(DependencyResolver.class, LocalDependencyResolver.ROLE_HINT);
} catch (ComponentLookupException e) {
throw new RuntimeException("Could not instantiate required component", e);
}
try {
((LocalDependencyResolver) resolver).setLocation(new File(property));
} catch (IOException e) {
throw new RuntimeException("Could not create target platform", e);
}
return resolver;
}
String resolverRole = configuration.getTargetPlatformResolver();
if (resolverRole == null) {
resolverRole = DEFAULT_RESOLVER_HINT;
}
try {
resolver = container.lookup(DependencyResolver.class, resolverRole);
} catch (ComponentLookupException e) {
throw new RuntimeException("Could not instantiate required component", e);
}
return resolver;
}
use of org.codehaus.plexus.component.repository.exception.ComponentLookupException in project plugin-compat-tester by jenkinsci.
the class PluginCompatTester method testPluginAgainst.
private TestExecutionResult testPluginAgainst(MavenCoordinates coreCoordinates, Plugin plugin, MavenRunner.Config mconfig, PomData pomData, Map<String, Plugin> otherPlugins, Map<String, String> pluginGroupIds, PluginCompatTesterHooks pcth) throws PluginSourcesUnavailableException, PomTransformationException, PomExecutionException, IOException {
System.out.println(String.format("%n%n%n%n%n"));
System.out.println(String.format("#############################################"));
System.out.println(String.format("#############################################"));
System.out.println(String.format("##%n## Starting to test plugin %s v%s%n## against %s%n##", plugin.name, plugin.version, coreCoordinates));
System.out.println(String.format("#############################################"));
System.out.println(String.format("#############################################"));
System.out.println(String.format("%n%n%n%n%n"));
File pluginCheckoutDir = new File(config.workDirectory.getAbsolutePath() + File.separator + plugin.name + File.separator);
try {
// Run any precheckout hooks
Map<String, Object> beforeCheckout = new HashMap<String, Object>();
beforeCheckout.put("pluginName", plugin.name);
beforeCheckout.put("plugin", plugin);
beforeCheckout.put("pomData", pomData);
beforeCheckout.put("config", config);
beforeCheckout.put("runCheckout", true);
beforeCheckout = pcth.runBeforeCheckout(beforeCheckout);
if (beforeCheckout.get("executionResult") != null) {
// Check if the hook returned a result
return (TestExecutionResult) beforeCheckout.get("executionResult");
} else if ((boolean) beforeCheckout.get("runCheckout")) {
if (beforeCheckout.get("checkoutDir") != null) {
pluginCheckoutDir = (File) beforeCheckout.get("checkoutDir");
}
if (pluginCheckoutDir.exists()) {
System.out.println("Deleting working directory " + pluginCheckoutDir.getAbsolutePath());
FileUtils.deleteDirectory(pluginCheckoutDir);
}
pluginCheckoutDir.mkdir();
System.out.println("Created plugin checkout dir : " + pluginCheckoutDir.getAbsolutePath());
if (localCheckoutProvided()) {
if (!onlyOnePluginIncluded()) {
File localCheckoutPluginDir = new File(config.getLocalCheckoutDir(), plugin.name);
File pomLocalCheckoutPluginDir = new File(localCheckoutPluginDir, "pom.xml");
if (pomLocalCheckoutPluginDir.exists()) {
System.out.println("Copy plugin directory from : " + localCheckoutPluginDir.getAbsolutePath());
FileUtils.copyDirectoryStructure(localCheckoutPluginDir, pluginCheckoutDir);
} else {
cloneFromSCM(pomData.getConnectionUrl(), plugin.name, plugin.version, pluginCheckoutDir);
}
} else {
// TODO this fails when it encounters symlinks (e.g. work/jobs/…/builds/lastUnstableBuild),
// and even up-to-date versions of org.apache.commons.io.FileUtils seem to not handle links,
// so may need to use something like http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/essential/io/examples/Copy.java
System.out.println("Copy plugin directory from : " + config.getLocalCheckoutDir().getAbsolutePath());
FileUtils.copyDirectoryStructure(config.getLocalCheckoutDir(), pluginCheckoutDir);
}
} else {
// These hooks could redirect the SCM, skip checkout (if multiple plugins use the same preloaded repo)
cloneFromSCM(pomData.getConnectionUrl(), plugin.name, plugin.version, pluginCheckoutDir);
}
} else {
// If the plugin exists in a different directory (multimodule plugins)
if (beforeCheckout.get("pluginDir") != null) {
pluginCheckoutDir = (File) beforeCheckout.get("checkoutDir");
}
System.out.println("The plugin has already been checked out, likely due to a multimodule situation. Continue.");
}
} catch (ComponentLookupException e) {
System.err.println("Error : " + e.getMessage());
throw new PluginSourcesUnavailableException("Problem while creating ScmManager !", e);
} catch (Exception e) {
System.err.println("Error : " + e.getMessage());
throw new PluginSourcesUnavailableException("Problem while checking out plugin sources!", e);
}
File buildLogFile = createBuildLogFile(config.reportFile, plugin.name, plugin.version, coreCoordinates);
// Creating log directory
FileUtils.forceMkdir(buildLogFile.getParentFile());
// Creating log file
FileUtils.fileWrite(buildLogFile.getAbsolutePath(), "");
// Ran the BeforeCompileHooks
Map<String, Object> beforeCompile = new HashMap<String, Object>();
beforeCompile.put("pluginName", plugin.name);
beforeCompile.put("plugin", plugin);
beforeCompile.put("pluginDir", pluginCheckoutDir);
beforeCompile.put("pomData", pomData);
beforeCompile.put("config", config);
beforeCompile.put("core", coreCoordinates);
Map<String, Object> hookInfo = pcth.runBeforeCompilation(beforeCompile);
boolean ranCompile = hookInfo.containsKey(PluginCompatTesterHookBeforeCompile.OVERRIDE_DEFAULT_COMPILE) ? (boolean) hookInfo.get(PluginCompatTesterHookBeforeCompile.OVERRIDE_DEFAULT_COMPILE) : false;
try {
// We also skip potential javadoc execution to avoid general test failure.
if (!ranCompile) {
runner.run(mconfig, pluginCheckoutDir, buildLogFile, "clean", "process-test-classes", "-Dmaven.javadoc.skip");
}
ranCompile = true;
// Then transform the POM and run tests against that.
// You might think that it would suffice to run e.g.
// -Dmaven-surefire-plugin.version=2.15 -Dmaven.test.dependency.excludes=org.jenkins-ci.main:jenkins-war -Dmaven.test.additionalClasspath=/…/org/jenkins-ci/main/jenkins-war/1.580.1/jenkins-war-1.580.1.war clean test
// (2.15+ required for ${maven.test.dependency.excludes} and ${maven.test.additionalClasspath} to be honored from CLI)
// but it does not work; there are lots of linkage errors as some things are expected to be in the test classpath which are not.
// Much simpler to do use the parent POM to set up the test classpath.
MavenPom pom = new MavenPom(pluginCheckoutDir);
try {
addSplitPluginDependencies(plugin.name, mconfig, pluginCheckoutDir, pom, otherPlugins, pluginGroupIds, coreCoordinates.version);
} catch (Exception x) {
x.printStackTrace();
pomData.getWarningMessages().add(Functions.printThrowable(x));
// but continue
}
List<String> args = new ArrayList<String>();
args.add("--define=maven.test.redirectTestOutputToFile=false");
args.add("--define=concurrency=1");
args.add("hpi:resolve-test-dependencies");
args.add("hpi:test-hpl");
args.add("surefire:test");
// Run preexecution hooks
Map<String, Object> forExecutionHooks = new HashMap<String, Object>();
forExecutionHooks.put("pluginName", plugin.name);
forExecutionHooks.put("args", args);
forExecutionHooks.put("pomData", pomData);
forExecutionHooks.put("pom", pom);
forExecutionHooks.put("coreCoordinates", coreCoordinates);
forExecutionHooks.put("config", config);
forExecutionHooks.put("pluginDir", pluginCheckoutDir);
pcth.runBeforeExecution(forExecutionHooks);
runner.run(mconfig, pluginCheckoutDir, buildLogFile, ((List<String>) forExecutionHooks.get("args")).toArray(new String[args.size()]));
return new TestExecutionResult(((PomData) forExecutionHooks.get("pomData")).getWarningMessages());
} catch (PomExecutionException e) {
PomExecutionException e2 = new PomExecutionException(e);
e2.getPomWarningMessages().addAll(pomData.getWarningMessages());
if (ranCompile) {
// So the status is considered to be TEST_FAILURES not COMPILATION_ERROR:
e2.succeededPluginArtifactIds.add("maven-compiler-plugin");
}
throw e2;
}
}
Aggregations