use of org.codehaus.plexus.PlexusContainer in project kie-wb-common by kiegroup.
the class AFMavenCli method doMain.
public int doMain(AFCliRequest cliRequest, ClassWorld classWorld) {
PlexusContainer localContainer = null;
try {
initialize(cliRequest);
cli(cliRequest);
logging(cliRequest);
version(cliRequest);
properties(cliRequest);
localContainer = container(cliRequest, classWorld);
commands(cliRequest);
configure(cliRequest);
toolchains(cliRequest);
populateRequest(cliRequest);
repository(cliRequest);
return execute(cliRequest);
} catch (ExitException e) {
e.getStackTrace();
return e.exitCode;
} catch (UnrecognizedOptionException e) {
e.getStackTrace();
return 1;
} catch (BuildAbort e) {
e.getStackTrace();
AFCLIReportingUtils.showError(slf4jLogger, "ABORTED", e, cliRequest.isShowErrors());
return 2;
} catch (Exception e) {
e.getStackTrace();
AFCLIReportingUtils.showError(slf4jLogger, "Error executing Maven.", e, cliRequest.isShowErrors());
return 1;
} finally {
if (localContainer != null) {
localContainer.dispose();
localContainer = null;
}
}
}
use of org.codehaus.plexus.PlexusContainer in project tycho by eclipse.
the class ProviderHelperTest method testMultipleProviderTypesFound.
public void testMultipleProviderTypesFound() throws Exception {
TestFrameworkProvider anotherProvider = new TestFrameworkProvider() {
@Override
public boolean isEnabled(List<ClasspathEntry> testBundleClassPath, Properties surefireProperties) {
return true;
}
@Override
public Version getVersion() {
return new Version("1.0");
}
@Override
public String getType() {
return "another_test_fwk";
}
@Override
public String getSurefireProviderClassName() {
return "a.nother.test.framework.Provider";
}
@Override
public List<Dependency> getRequiredBundles() {
return emptyList();
}
@Override
public Properties getProviderSpecificProperties() {
return new Properties();
}
};
PlexusContainer container = getContainer();
container.addComponent(anotherProvider, TestFrameworkProvider.class, "another_test_fwk");
ProviderHelper providerSelector = container.lookup(ProviderHelper.class);
try {
providerSelector.selectProvider(classPath("org.junit:4.8.1"), new Properties(), null);
fail();
} catch (MojoExecutionException e) {
// expected
} finally {
container.release(anotherProvider);
}
}
use of org.codehaus.plexus.PlexusContainer in project build-info by JFrogDev.
the class BuildInfoRecorderLifecycleParticipantTest method testParticipantImplementation.
public void testParticipantImplementation() throws Exception {
BuildInfoRecorder buildInfoRecorder = new BuildInfoRecorder();
BuildInfoRecorderLifecycleParticipant participant = new BuildInfoRecorderLifecycleParticipant();
Class<BuildInfoRecorderLifecycleParticipant> participantClass = BuildInfoRecorderLifecycleParticipant.class;
Field recorderField = participantClass.getDeclaredField("recorder");
recorderField.set(participant, buildInfoRecorder);
Field loggerField = participantClass.getDeclaredField("logger");
loggerField.setAccessible(true);
loggerField.set(participant, new AbstractLogger(1, "dummy") {
public void debug(String message, Throwable throwable) {
Assert.assertTrue(message.contains("value is true"));
}
public void info(String message, Throwable throwable) {
assert false;
}
public void warn(String message, Throwable throwable) {
assert false;
}
public void error(String message, Throwable throwable) {
assert false;
}
public void fatalError(String message, Throwable throwable) {
assert false;
}
public Logger getChildLogger(String name) {
assert false;
return null;
}
});
PlexusContainer plexusContainerMock = EasyMock.createMock(PlexusContainer.class);
RepositorySystemSession repositorySystemSession = EasyMock.createMock(RepositorySystemSession.class);
MavenExecutionRequest requestMock = EasyMock.createMock(MavenExecutionRequest.class);
Properties mockSessionProperties = new Properties();
mockSessionProperties.setProperty(BuildInfoConfigProperties.ACTIVATE_RECORDER, "true");
EasyMock.expect(requestMock.getSystemProperties()).andReturn(mockSessionProperties).once();
EasyMock.expect(requestMock.getUserProperties()).andReturn(mockSessionProperties).once();
AbstractExecutionListener existingListener = new AbstractExecutionListener();
EasyMock.expect(requestMock.getExecutionListener()).andReturn(existingListener).times(1);
EasyMock.expect(requestMock.getUserSettingsFile()).andReturn(null).once();
EasyMock.expect(requestMock.setExecutionListener(buildInfoRecorder)).andReturn(null).once();
EasyMock.replay(requestMock);
MavenExecutionResult resultMock = EasyMock.createMock(MavenExecutionResult.class);
MavenSession session = new MavenSession(plexusContainerMock, repositorySystemSession, requestMock, resultMock);
// value is true
participant.afterProjectsRead(session);
}
use of org.codehaus.plexus.PlexusContainer in project pom-manipulation-ext by release-engineering.
the class VersioningCalculatorTest method setupSession.
private VersioningState setupSession(final Properties properties, final Map<ProjectRef, String[]> versionMap) throws Exception {
final ArtifactRepository ar = new MavenArtifactRepository("test", "http://repo.maven.apache.org/maven2", new DefaultRepositoryLayout(), new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy());
final MavenExecutionRequest req = new DefaultMavenExecutionRequest().setUserProperties(properties).setRemoteRepositories(Arrays.asList(ar));
final PlexusContainer container = new DefaultPlexusContainer();
final MavenSession mavenSession = new MavenSession(container, null, req, new DefaultMavenExecutionResult());
session = new ManipulationSession();
session.setMavenSession(mavenSession);
final VersioningState state = new VersioningState(properties);
session.setState(state);
final Map<String, byte[]> dataMap = new HashMap<>();
if (versionMap != null && !versionMap.isEmpty()) {
for (final Map.Entry<ProjectRef, String[]> entry : versionMap.entrySet()) {
final String path = toMetadataPath(entry.getKey());
final byte[] data = setupMetadataVersions(entry.getValue());
dataMap.put(path, data);
}
}
final Location mdLoc = MavenLocationExpander.EXPANSION_TARGET;
final Transport mdTrans = new StubTransport(dataMap);
modder = new TestVersionCalculator(new ManipulationSession(), mdLoc, mdTrans, temp.newFolder("galley-cache"));
return state;
}
use of org.codehaus.plexus.PlexusContainer in project component-runtime by Talend.
the class ArtifactTransformer method hasTransformedResource.
@Override
public boolean hasTransformedResource() {
artifacts = new ArrayList<>();
final ArtifactFilter filter = getFilter();
if (userArtifacts != null && !userArtifacts.isEmpty()) {
final ArtifactResolver resolver;
final DependencyGraphBuilder graphBuilder;
final ProjectBuilder projectBuilder;
final PlexusContainer container = session.getContainer();
try {
resolver = ArtifactResolver.class.cast(container.lookup(ArtifactResolver.class, "default"));
projectBuilder = ProjectBuilder.class.cast(container.lookup(ProjectBuilder.class, "default"));
graphBuilder = includeTransitiveDependencies ? DependencyGraphBuilder.class.cast(container.lookup(DependencyGraphBuilder.class, "default")) : null;
} catch (final ComponentLookupException e) {
throw new IllegalArgumentException(e);
}
artifacts.addAll(userArtifacts.stream().flatMap(coords -> {
try {
final String type = ofNullable(coords.type).filter(s -> !s.isEmpty()).orElse("jar");
final Artifact art = new DefaultArtifact(coords.groupId, coords.artifactId, coords.version, coords.scope, type, ofNullable(coords.classifier).orElse(""), new DefaultArtifactHandler() {
{
setExtension(type);
}
});
final Artifact artifact = resolver.resolveArtifact(session.getProjectBuildingRequest(), art).getArtifact();
if (includeTransitiveDependencies) {
final DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
try {
final ProjectBuildingResult projectBuildingResult = projectBuilder.build(artifact, true, request);
final DependencyNode transitives = graphBuilder.buildDependencyGraph(projectBuildingResult.getProject(), filter);
final CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor();
transitives.accept(new FilteringDependencyNodeVisitor(visitor, new ArtifactDependencyNodeFilter(filter)));
return Stream.concat(Stream.of(artifact), visitor.getNodes().stream().map(DependencyNode::getArtifact).map(a -> {
try {
return resolver.resolveArtifact(request, a).getArtifact();
} catch (final ArtifactResolverException e) {
throw new IllegalStateException(e);
}
}));
} catch (final ProjectBuildingException | DependencyGraphBuilderException e) {
throw new IllegalStateException(e);
}
}
return Stream.of(artifact);
} catch (final ArtifactResolverException e) {
throw new IllegalArgumentException(e);
}
}).collect(toSet()));
}
if (includeProjectComponentDependencies) {
// this is a weird category of projects but can exist
final MavenProject project = session.getCurrentProject();
if (project.getArtifacts() != null && !project.getArtifacts().isEmpty()) {
project.setArtifactFilter(filter);
try {
artifacts.addAll(project.getArtifacts());
} finally {
// shade plugin uses it OOTB so reset it for the end of the execution (in case
// another transformer needs it)
project.setArtifactFilter(new CumulativeScopeArtifactFilter(singletonList("runtime")));
}
}
}
return !artifacts.isEmpty();
}
Aggregations