Ensure we're only creating a List of String objects for serialization
The issue (stacktrace below) was caused by a number of File objects making their way into the yaml serialization tree * What went wrong: Execution failed for task ':serviceMetadataApi'. > expected NodeEvent, but got <com.fasterxml.jackson.dataformat.yaml.snakeyaml.events.DocumentEndEvent()> * Try: Run with --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':serviceMetadataApi'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:296) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:105) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:85) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:81) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:39) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29) BUILD FAILED at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50) at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) Total time: 21.573 secs at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) at org.gradle.launcher.Main.doAction(Main.java:33) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) at org.gradle.launcher.GradleMain.main(GradleMain.java:23) Caused by: com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.EmitterException: expected NodeEvent, but got <com.fasterxml.jackson.dataformat.yaml.snakeyaml.events.DocumentEndEvent()> at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter.expectNode(Emitter.java:409) at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter.access$1600(Emitter.java:63) at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter$ExpectBlockSequenceItem.expect(Emitter. java:596) at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter$ExpectFirstBlockSequenceItem.expect(Emitter.java:577) at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter.emit(Emitter.java:217) at com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.close(YAMLGenerator.java:287) at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:2879) at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2323) at com.fasterxml.jackson.databind.ObjectMapper$writeValueAsString.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at com.github.lookout.serviceartifact.Metadata.toYaml(Metadata.groovy:59) at com.github.lookout.serviceartifact.Metadata$toYaml.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at com.github.lookout.serviceartifact.AbstractComponent$_createCompressedTasks_closure1_closure6.doCall(AbstractComponent.groovy:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:439) at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:539) at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:520) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) ... 48 more jruby: FAILED gradleTest Compatibility Test Executor finished execuring tests 1 compatibility tests failed. ------------------------------------- gradleTest:jruby:2.0: FAILED ------------------------------------- :gradleTest FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':gradleTest'. > One or more compatibility tests have failed. Check the screen output for now. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 2 mins 20.045 secs
This commit is contained in:
parent
4477b81aba
commit
f0d15fb989
|
@ -109,7 +109,8 @@ gradleTest {
|
||||||
* according to ysb33r there's not enough of a difference in APIs between
|
* according to ysb33r there's not enough of a difference in APIs between
|
||||||
* version 2.0->2.2 and 2.2->2.4 to be worth testing
|
* version 2.0->2.2 and 2.2->2.4 to be worth testing
|
||||||
*/
|
*/
|
||||||
versions '2.0', '2.2', '2.4'
|
//versions '2.0', '2.2', '2.4'
|
||||||
|
versions '2.0'
|
||||||
dependsOn jar
|
dependsOn jar
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@ buildscript {
|
||||||
|
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
/* These settings are only needed for Gradle Integration Testing */
|
/* These settings are only needed for Gradle Integration Testing */
|
||||||
classpath 'com.github.lookout:service-artifact-plugin:0.4.0'
|
classpath 'com.github.lookout:service-artifact-plugin:%%VERSION%%'
|
||||||
//classpath fileTree('../../repo')
|
classpath fileTree('../../repo')
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,5 +50,5 @@ dependencies {
|
||||||
|
|
||||||
/* Only present for integration testing */
|
/* Only present for integration testing */
|
||||||
task runGradleTest {
|
task runGradleTest {
|
||||||
dependsOn assembleService
|
dependsOn assemble
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.github.lookout.serviceartifact
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper
|
import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
|
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
|
||||||
|
import org.slf4j.Logger
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
|
|
||||||
import com.github.lookout.serviceartifact.metadata.Data
|
import com.github.lookout.serviceartifact.metadata.Data
|
||||||
|
|
||||||
|
@ -10,6 +12,8 @@ import com.github.lookout.serviceartifact.metadata.Data
|
||||||
* Representation class for the metadata structure
|
* Representation class for the metadata structure
|
||||||
*/
|
*/
|
||||||
class Metadata {
|
class Metadata {
|
||||||
|
protected ObjectMapper mapper = new ObjectMapper(new YAMLFactory())
|
||||||
|
protected Logger logger = LoggerFactory.getLogger(this.class)
|
||||||
|
|
||||||
class Service {
|
class Service {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
|
@ -25,6 +29,11 @@ class Metadata {
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
String version
|
String version
|
||||||
|
|
||||||
|
String toString() {
|
||||||
|
return String.format("<Component@%d> \"%s\" \"%s\"",
|
||||||
|
hashCode(), this.name, this.version)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
|
@ -46,7 +55,10 @@ class Metadata {
|
||||||
* @return This instance as a YAML String
|
* @return This instance as a YAML String
|
||||||
*/
|
*/
|
||||||
String toYaml() {
|
String toYaml() {
|
||||||
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
|
logger.info("Writing the following structures to yaml")
|
||||||
|
logger.info("Service: ${this.service}")
|
||||||
|
logger.info("Component: ${this.component}")
|
||||||
|
logger.info("Data: ${this.data}")
|
||||||
return mapper.writeValueAsString(this)
|
return mapper.writeValueAsString(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.github.lookout.serviceartifact.metadata
|
package com.github.lookout.serviceartifact.metadata
|
||||||
|
|
||||||
|
import groovy.transform.TypeChecked
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore
|
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
@ -11,6 +13,7 @@ import org.slf4j.LoggerFactory
|
||||||
* Container class for encapsulating some of the DSL configuration behavior
|
* Container class for encapsulating some of the DSL configuration behavior
|
||||||
* behind the service { data { } } closure
|
* behind the service { data { } } closure
|
||||||
*/
|
*/
|
||||||
|
@TypeChecked
|
||||||
class Data {
|
class Data {
|
||||||
protected Logger logger = LoggerFactory.getLogger(this.class)
|
protected Logger logger = LoggerFactory.getLogger(this.class)
|
||||||
protected Project project
|
protected Project project
|
||||||
|
@ -29,7 +32,7 @@ class Data {
|
||||||
* @param arguments list of String objects representing data components
|
* @param arguments list of String objects representing data components
|
||||||
*/
|
*/
|
||||||
void dependencies(Object... arguments) {
|
void dependencies(Object... arguments) {
|
||||||
this.dependencies.addAll(arguments)
|
this.dependencies.addAll(arguments as List<String>)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,10 +42,11 @@ class Data {
|
||||||
void migrations(Object... arguments) {
|
void migrations(Object... arguments) {
|
||||||
arguments.each { Object argument ->
|
arguments.each { Object argument ->
|
||||||
if (argument instanceof FileTree) {
|
if (argument instanceof FileTree) {
|
||||||
this.migrations.addAll((argument as FileTree).files)
|
FileTree tree = argument as FileTree
|
||||||
|
this.migrations.addAll(tree.files.collect { File f -> f.absolutePath })
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.migrations.add(argument)
|
this.migrations.add(argument as String)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,4 +63,9 @@ class Data {
|
||||||
FileTree fileTree(Map args) {
|
FileTree fileTree(Map args) {
|
||||||
return project.fileTree(args)
|
return project.fileTree(args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String toString() {
|
||||||
|
return String.format("<Data@%d> %s (%s) - %s (%s)", hashCode(), this.dependencies, this.dependencies.class, this.migrations, this.dependencies.class)
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue