use of org.gradle.tooling.internal.provider.serialization.PayloadSerializer in project gradle by gradle.
the class ClientProvidedBuildActionRunner method buildResult.
@SuppressWarnings("deprecation")
private BuildActionResult buildResult(Object clientAction, GradleInternal gradle) {
forceFullConfiguration(gradle);
DefaultBuildController internalBuildController = new DefaultBuildController(gradle);
Object model = null;
Throwable failure = null;
try {
if (clientAction instanceof InternalBuildActionVersion2<?>) {
model = ((InternalBuildActionVersion2) clientAction).execute(internalBuildController);
} else {
model = ((org.gradle.tooling.internal.protocol.InternalBuildAction) clientAction).execute(internalBuildController);
}
} catch (BuildCancelledException e) {
failure = new InternalBuildCancelledException(e);
} catch (RuntimeException e) {
failure = new InternalBuildActionFailureException(e);
}
PayloadSerializer payloadSerializer = getPayloadSerializer(gradle);
if (failure != null) {
return new BuildActionResult(null, payloadSerializer.serialize(failure));
} else {
return new BuildActionResult(payloadSerializer.serialize(model), null);
}
}
use of org.gradle.tooling.internal.provider.serialization.PayloadSerializer in project gradle by gradle.
the class TestExecutionRequestActionRunner method run.
@Override
public void run(BuildAction action, BuildController buildController) {
if (!(action instanceof TestExecutionRequestAction)) {
return;
}
GradleInternal gradle = buildController.getGradle();
try {
TestExecutionRequestAction testExecutionRequestAction = (TestExecutionRequestAction) action;
TestExecutionResultEvaluator testExecutionResultEvaluator = new TestExecutionResultEvaluator(testExecutionRequestAction);
buildOperationListenerManager.addListener(testExecutionResultEvaluator);
try {
doRun(testExecutionRequestAction, buildController);
} finally {
buildOperationListenerManager.removeListener(testExecutionResultEvaluator);
}
testExecutionResultEvaluator.evaluate();
} catch (RuntimeException rex) {
Throwable throwable = findRootCause(rex);
if (throwable instanceof TestExecutionException) {
// Tunnel the failure through the reporting
throw new ReportedException(new InternalTestExecutionException("Error while running test(s)", throwable));
} else {
throw rex;
}
}
PayloadSerializer payloadSerializer = gradle.getServices().get(PayloadSerializer.class);
buildController.setResult(new BuildActionResult(payloadSerializer.serialize(null), null));
}
use of org.gradle.tooling.internal.provider.serialization.PayloadSerializer in project gradle by gradle.
the class InProcessGradleExecuter method executeBuild.
private BuildResult executeBuild(GradleInvocation invocation, OutputStream outputStream, OutputStream errorStream, BuildListenerImpl listener) {
// Augment the environment for the execution
System.setIn(connectStdIn());
processEnvironment.maybeSetProcessDir(getWorkingDir());
for (Map.Entry<String, String> entry : invocation.environmentVars.entrySet()) {
processEnvironment.maybeSetEnvironmentVariable(entry.getKey(), entry.getValue());
}
Map<String, String> implicitJvmSystemProperties = getImplicitJvmSystemProperties();
System.getProperties().putAll(implicitJvmSystemProperties);
// TODO: Reuse more of CommandlineActionFactory
CommandLineParser parser = new CommandLineParser();
FileCollectionFactory fileCollectionFactory = TestFiles.fileCollectionFactory();
ParametersConverter parametersConverter = new ParametersConverter(new BuildLayoutFactory(), fileCollectionFactory);
parametersConverter.configure(parser);
Parameters parameters = parametersConverter.convert(parser.parse(getAllArgs()), getWorkingDir());
BuildActionExecuter<BuildActionParameters, BuildRequestContext> actionExecuter = GLOBAL_SERVICES.get(BuildActionExecuter.class);
ListenerManager listenerManager = GLOBAL_SERVICES.get(ListenerManager.class);
listenerManager.addListener(listener);
try {
// TODO: Reuse more of BuildActionsFactory
StartParameterInternal startParameter = parameters.getStartParameter();
BuildAction action = new ExecuteBuildAction(startParameter);
BuildActionParameters buildActionParameters = createBuildActionParameters(startParameter);
BuildRequestContext buildRequestContext = createBuildRequestContext();
LoggingManagerInternal loggingManager = createLoggingManager(startParameter, outputStream, errorStream);
loggingManager.start();
try {
startMeasurement();
try {
BuildActionResult result = actionExecuter.execute(action, buildActionParameters, buildRequestContext);
if (result.getException() != null) {
return new BuildResult(null, result.getException());
}
if (result.getFailure() != null) {
PayloadSerializer payloadSerializer = new PayloadSerializer(new TestClassLoaderRegistry());
return new BuildResult(null, (RuntimeException) payloadSerializer.deserialize(result.getFailure()));
}
return new BuildResult(null, null);
} finally {
stopMeasurement();
}
} finally {
loggingManager.stop();
}
} finally {
listenerManager.removeListener(listener);
}
}
use of org.gradle.tooling.internal.provider.serialization.PayloadSerializer in project gradle by gradle.
the class ClientProvidedBuildActionRunner method buildResult.
private BuildActionResult buildResult(InternalBuildAction<?> clientAction, GradleInternal gradle, boolean isRunTasks) {
if (!isRunTasks) {
forceFullConfiguration(gradle);
}
InternalBuildController internalBuildController = new DefaultBuildController(gradle);
Object model = null;
Throwable failure = null;
try {
model = clientAction.execute(internalBuildController);
} catch (BuildCancelledException e) {
failure = new InternalBuildCancelledException(e);
} catch (RuntimeException e) {
failure = new InternalBuildActionFailureException(e);
}
PayloadSerializer payloadSerializer = getPayloadSerializer(gradle);
if (failure != null) {
return new BuildActionResult(null, payloadSerializer.serialize(failure));
} else {
return new BuildActionResult(payloadSerializer.serialize(model), null);
}
}
use of org.gradle.tooling.internal.provider.serialization.PayloadSerializer in project gradle by gradle.
the class ClientProvidedBuildActionRunner method run.
@Override
public void run(BuildAction action, final BuildController buildController) {
if (!(action instanceof ClientProvidedBuildAction)) {
return;
}
final GradleInternal gradle = buildController.getGradle();
gradle.getStartParameter().setConfigureOnDemand(false);
ClientProvidedBuildAction clientProvidedBuildAction = (ClientProvidedBuildAction) action;
PayloadSerializer payloadSerializer = getPayloadSerializer(gradle);
final Object clientAction = payloadSerializer.deserialize(clientProvidedBuildAction.getAction());
gradle.addBuildListener(new BuildAdapter() {
@Override
public void buildFinished(BuildResult result) {
if (result.getFailure() == null) {
buildController.setResult(buildResult(clientAction, gradle));
}
}
});
if (clientProvidedBuildAction.isRunTasks()) {
buildController.run();
} else {
buildController.configure();
}
}
Aggregations