From 91e963f6920faa80f6d267dd3635d80f0e0b3ce2 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:18:21 +0000 Subject: [PATCH 01/12] Add failing test for NPE when XSD annotation has no documentation (#2) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- .../XJCPluginDescriptionAnnotationTest.groovy | 46 +++++++++++++++++++ src/test/resources/NoDocumentation.xsd | 31 +++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 src/test/resources/NoDocumentation.xsd diff --git a/src/test/groovy/info/hubbitus/XJCPluginDescriptionAnnotationTest.groovy b/src/test/groovy/info/hubbitus/XJCPluginDescriptionAnnotationTest.groovy index 8321e9f..05c0ec7 100644 --- a/src/test/groovy/info/hubbitus/XJCPluginDescriptionAnnotationTest.groovy +++ b/src/test/groovy/info/hubbitus/XJCPluginDescriptionAnnotationTest.groovy @@ -110,4 +110,50 @@ class XJCPluginDescriptionAnnotationTest extends Specification { cls.getDeclaredFields().find{ 'name' == it.name }.getAnnotation(XsdInfo).name() == 'Фамилия и имя' cls.getDeclaredFields().find{ 'age' == it.name }.getAnnotation(XsdInfo).name() == 'Возраст' } + + /** + * https://github.com/Hubbitus/xjc-documentation-annotation-plugin/issues/2 + */ + def "XSD without documentation (or without annotation) must not cause NPE"(){ + setup: + File generatedClassesDir = new File(this.getClass().getResource('/').getPath() + 'generated-classes-nodoc') + generatedClassesDir.mkdir() + when: + int res = Driver.run( + [ + '-npa' + ,'-no-header' + ,'-XPluginDescriptionAnnotation' + ,'-d', generatedClassesDir.absolutePath + ,'-p', 'info.hubbitus.generated.nodoc' + ,this.getClass().getResource('/NoDocumentation.xsd') + ] as String[] + ,new XJCListener() { + @Override void error(SAXParseException e) { throw new IllegalStateException(e) } + @Override void fatalError(SAXParseException e) { throw new IllegalStateException(e) } + @Override void warning(SAXParseException e) { log.warn("SAX Parse warning: ", e) } + @Override void info(SAXParseException e) { log.info("SAX Parse information: ", e) } + } + ) + then: + res == 0 + + when: + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler() + int compileRes = compiler.run(null, null, null, + new File(generatedClassesDir, '/info/hubbitus/generated/nodoc/NoDoc.java').absolutePath, + new File(generatedClassesDir, '/info/hubbitus/generated/nodoc/NoAnnotation.java').absolutePath + ) + ClassLoader cl = new URLClassLoader([generatedClassesDir.toURI().toURL()] as URL[]) + Class noDoc = cl.loadClass('info.hubbitus.generated.nodoc.NoDoc') + Class noAnnotation = cl.loadClass('info.hubbitus.generated.nodoc.NoAnnotation') + then: + compileRes == 0 + noDoc.getDeclaredAnnotation(XsdInfo).name() == '' + noDoc.getDeclaredFields().find{ 'withoutAnnotation' == it.name }.getAnnotation(XsdInfo).name() == '' + noDoc.getDeclaredFields().find{ 'onlyAppinfo' == it.name }.getAnnotation(XsdInfo).name() == '' + noDoc.getDeclaredFields().find{ 'attrOnlyAppinfo' == it.name }.getAnnotation(XsdInfo).name() == '' + noDoc.getDeclaredFields().find{ 'attrWithoutAnnotation' == it.name }.getAnnotation(XsdInfo).name() == '' + noAnnotation.getDeclaredAnnotation(XsdInfo).name() == '' + } } diff --git a/src/test/resources/NoDocumentation.xsd b/src/test/resources/NoDocumentation.xsd new file mode 100644 index 0000000..09dfacc --- /dev/null +++ b/src/test/resources/NoDocumentation.xsd @@ -0,0 +1,31 @@ + + + + + + + Some application info + + + + + + Some application info + + + + + + Some application info + + + + + + + + + + + + From 5684a6553cf37f04b6b689b1163e2e306ebbacb3 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:18:42 +0000 Subject: [PATCH 02/12] Fix NPE when XSD annotation has no documentation (#2) Annotation and documentation are optional in XSD; treat missing ones as empty description. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- .../XJCPluginDescriptionAnnotation.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java b/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java index e2b9dcc..f6c29ac 100644 --- a/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java +++ b/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java @@ -19,6 +19,7 @@ import com.sun.tools.xjc.outline.ClassOutline; import com.sun.tools.xjc.outline.Outline; import com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo; +import com.sun.xml.xsom.XSAnnotation; import com.sun.xml.xsom.XSComponent; import com.sun.xml.xsom.impl.AttributeUseImpl; import com.sun.xml.xsom.impl.ParticleImpl; @@ -170,33 +171,38 @@ private static Object getPrivateField(Object obj, String fieldName) { } static private String classInfoGetDescriptionAnnotation(CClassInfo classInfo){ - String description = ""; - if (null != (classInfo.getSchemaComponent()).getAnnotation()){ - description = ((BindInfo)(classInfo.getSchemaComponent()).getAnnotation().getAnnotation()).getDocumentation(); - } - return description.trim(); + return resolveDescription(classInfo.getSchemaComponent().getAnnotation()); } static private String fieldGetDescriptionAnnotation(CPropertyInfo propertyInfo){ - String description = ""; - assert ( (propertyInfo.getSchemaComponent() instanceof AttributeUseImpl) || (propertyInfo.getSchemaComponent() instanceof ParticleImpl) ); + XSComponent schemaComponent = propertyInfo.getSchemaComponent(); + XSAnnotation annotation = null; // // // // Идентификатор документа - if ( (propertyInfo.getSchemaComponent() instanceof AttributeUseImpl) - && null != ( ((AttributeUseImpl)propertyInfo.getSchemaComponent()).getDecl().getAnnotation() )){ - description = ((BindInfo)((AttributeUseImpl)propertyInfo.getSchemaComponent()).getDecl().getAnnotation().getAnnotation()).getDocumentation(); + if (schemaComponent instanceof AttributeUseImpl){ + annotation = ((AttributeUseImpl)schemaComponent).getDecl().getAnnotation(); } // // // // Заголовок заявления - if ( (propertyInfo.getSchemaComponent() instanceof ParticleImpl) - && null != ( (((ParticleImpl) propertyInfo.getSchemaComponent()).getTerm()).getAnnotation() )){ - description = ((BindInfo)(((ParticleImpl) propertyInfo.getSchemaComponent()).getTerm()).getAnnotation().getAnnotation()).getDocumentation(); + else if (schemaComponent instanceof ParticleImpl){ + annotation = ((ParticleImpl)schemaComponent).getTerm().getAnnotation(); + } + return resolveDescription(annotation); + } + + /** + * Annotation (as well as documentation inside it) is optional in XSD, so both may be absent. + */ + static private String resolveDescription(XSAnnotation annotation){ + if (null == annotation || null == annotation.getAnnotation()){ + return ""; } - return description.trim(); + String description = ((BindInfo)annotation.getAnnotation()).getDocumentation(); + return null == description ? "" : description.trim(); } // @Override From c353a71a67b6db6fe30284839f0ae7d5f382cdd3 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:35:05 +0000 Subject: [PATCH 03/12] Update Gradle wrapper to 8.14.3 and migrate build to modern Gradle - maven plugin/uploadArchives -> maven-publish with signing - compile/testCompile -> api/implementation/testImplementation - Groovy 2.5.23 and Spock 1.3 so tests run on JDK 21 - Force UTF-8 for javac and javadoc Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- build.gradle | 121 ++++----- gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 43764 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 305 ++++++++++++++--------- gradlew.bat | 178 ++++++------- 6 files changed, 355 insertions(+), 257 deletions(-) diff --git a/build.gradle b/build.gradle index d6f4713..1ccd020 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ plugins { - id 'java' + id 'java-library' id 'groovy' // Testing // http://central.sonatype.org/pages/gradle.html - id 'maven' + id 'maven-publish' id 'idea' id 'signing' } @@ -10,95 +10,102 @@ plugins { group 'info.hubbitus' version '1.1' -sourceCompatibility = 1.8 +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' +} + +tasks.withType(Javadoc).configureEach { + options.encoding = 'UTF-8' +} repositories { mavenCentral() } dependencies { - compile 'com.sun.xml.bind:jaxb-core:2.3.0.1' - compile "javax.xml.bind:jaxb-api:${versionJaxbIpi}" - testCompile "javax.xml.bind:jaxb-api:${versionJaxbIpi}" - compile "com.sun.xml.bind:jaxb-xjc:${versionJaxb}" - compile "com.sun.xml.bind:jaxb-impl:${versionJaxb}" + api 'com.sun.xml.bind:jaxb-core:2.3.0.1' + api "javax.xml.bind:jaxb-api:${versionJaxbIpi}" + testImplementation "javax.xml.bind:jaxb-api:${versionJaxbIpi}" + implementation "com.sun.xml.bind:jaxb-xjc:${versionJaxb}" + implementation "com.sun.xml.bind:jaxb-impl:${versionJaxb}" // Logging - compile "org.slf4j:slf4j-api:${versionSlf4j}" - compile "ch.qos.logback:logback-classic:${versionLogback}" + implementation "org.slf4j:slf4j-api:${versionSlf4j}" + implementation "ch.qos.logback:logback-classic:${versionLogback}" - testCompile "org.codehaus.groovy:groovy:${versionGroovy}" - testCompile "org.spockframework:spock-core:${versionSpock}" + testImplementation "org.codehaus.groovy:groovy:${versionGroovy}" + testImplementation "org.spockframework:spock-core:${versionSpock}" } /////////////////////////////////////////////////////////////// // Artifacts publishing into central OSS repository // http://central.sonatype.org/pages/gradle.html -task javadocJar(type: Jar) { - archiveClassifier.set('javadoc') // https://discuss.gradle.org/t/publishing-jars-with-classifiers-after-v5-0/30144/2 - from javadoc -} +def ossrhUserName = project.findProperty('ossrhUsername') ?: '' // To do not fail on CI when them does not defined +def ossrhPassword = project.findProperty('ossrhPassword') ?: '' -task sourcesJar(type: Jar) { - archiveClassifier.set('sources') - from sourceSets.main.allSource +java { + withJavadocJar() + withSourcesJar() } -artifacts { - archives javadocJar, sourcesJar -} -signing { - required { gradle.taskGraph.hasTask("uploadArchives") } // https://groups.google.com/forum/#!topic/gaelyk/WfdEDBOzIOM - sign configurations.archives -} - -ext{// To do not fail on CI when them does not defined - ossrhUser = (project.hasProperty('ossrhUsername') ? project.property('ossrhUsername') : '') - ossrhPass = (project.hasProperty('ossrhPassword') ? project.property('ossrhPassword') : '') -} - -uploadArchives { - repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUser, password: ossrhPass) - } - - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUser, password: ossrhPass) - } +publishing { + publications { + mavenJava(MavenPublication) { + from components.java - pom.project { - name project.name - packaging 'jar' - description 'XJC plugin to bring XSD descriptions into annotations of generated classes' - url 'https://github.com/Hubbitus/xjc-documentation-annotation-plugin' + pom { + name = project.name + packaging = 'jar' + description = 'XJC plugin to bring XSD descriptions into annotations of generated classes' + url = 'https://github.com/Hubbitus/xjc-documentation-annotation-plugin' scm { - connection 'scm:git:https://github.com/Hubbitus/xjc-documentation-annotation-plugin.git' - developerConnection 'scm:git:git@github.com:Hubbitus/xjc-documentation-annotation-plugin.git' - url 'https://github.com/Hubbitus/xjc-documentation-annotation-plugin' + connection = 'scm:git:https://github.com/Hubbitus/xjc-documentation-annotation-plugin.git' + developerConnection = 'scm:git:git@github.com:Hubbitus/xjc-documentation-annotation-plugin.git' + url = 'https://github.com/Hubbitus/xjc-documentation-annotation-plugin' } licenses { license { - name 'MIT' - url 'https://opensource.org/licenses/MIT' + name = 'MIT' + url = 'https://opensource.org/licenses/MIT' } } developers { developer { - id 'Hubbitus' - name 'Pavel Alexeev' - email 'Pahan@Hubbitus.info' + id = 'Hubbitus' + name = 'Pavel Alexeev' + email = 'Pahan@Hubbitus.info' } } } } } + + repositories { + maven { + name = 'ossrh' + def releasesRepoUrl = uri('https://oss.sonatype.org/service/local/staging/deploy/maven2/') + def snapshotsRepoUrl = uri('https://oss.sonatype.org/content/repositories/snapshots/') + url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl + credentials { + username = ossrhUserName + password = ossrhPassword + } + } + } +} + +signing { + required { gradle.taskGraph.hasTask('publish') } // Do not require signing on CI/local builds + sign publishing.publications.mavenJava } + // /Artifacts publishing into central OSS repository //////////////////////////////////////////////////// diff --git a/gradle.properties b/gradle.properties index 861ccfc..2d54dae 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,8 @@ versionJaxb = 2.4.0-b180830.0438 versionJaxbIpi = 2.4.0-b180830.0359 #versionGroovy = 3.0.0-alpha-4 -versionGroovy = 2.5.5 -versionSpock = 1.2-groovy-2.5 +versionGroovy = 2.5.23 +versionSpock = 1.3-groovy-2.5 versionSlf4j = 1.7.25 versionLogback = 1.2.3 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..1b33c55baabb587c669f562ae36f953de2481846 100644 GIT binary patch literal 43764 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 z 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 \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +132,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 6d57edc..5eed7ee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,94 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega From b7c5eee64f83789c81b60e44a821b76851ff1cd3 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:42:04 +0000 Subject: [PATCH 04/12] Update example-project-gradle to Gradle 8.14.3 and xjc plugin 2.0.0 Example now needs a plugin release containing the fix for #2: published 1.1 fails on maven-4.0.0.xsd with NPE. Verified against locally published build. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- example-project-gradle/build.gradle | 33 +- .../xjc/plugin/example/Activation.java | 182 ++ .../xjc/plugin/example/ActivationFile.java | 100 + .../xjc/plugin/example/ActivationOS.java | 152 ++ .../plugin/example/ActivationProperty.java | 97 + .../hubbitus/xjc/plugin/example/Build.java | 798 ++++++++ .../xjc/plugin/example/BuildBase.java | 553 ++++++ .../xjc/plugin/example/CiManagement.java | 202 ++ .../xjc/plugin/example/Contributor.java | 412 ++++ .../hubbitus/xjc/plugin/example/Customer.java | 99 + .../xjc/plugin/example/Dependency.java | 370 ++++ .../plugin/example/DependencyManagement.java | 142 ++ .../plugin/example/DeploymentRepository.java | 236 +++ .../xjc/plugin/example/Developer.java | 439 +++++ .../example/DistributionManagement.java | 208 ++ .../xjc/plugin/example/Exclusion.java | 100 + .../xjc/plugin/example/Extension.java | 123 ++ .../xjc/plugin/example/IssueManagement.java | 96 + .../hubbitus/xjc/plugin/example/License.java | 154 ++ .../xjc/plugin/example/MailingList.java | 282 +++ .../hubbitus/xjc/plugin/example/Notifier.java | 311 +++ .../xjc/plugin/example/ObjectFactory.java | 720 +++++++ .../xjc/plugin/example/Organization.java | 95 + .../hubbitus/xjc/plugin/example/Parent.java | 157 ++ .../hubbitus/xjc/plugin/example/Plugin.java | 587 ++++++ .../xjc/plugin/example/PluginExecution.java | 332 ++++ .../xjc/plugin/example/PluginManagement.java | 142 ++ .../xjc/plugin/example/Prerequisites.java | 67 + .../hubbitus/xjc/plugin/example/Profile.java | 812 ++++++++ .../hubbitus/xjc/plugin/example/Project.java | 1682 +++++++++++++++++ .../xjc/plugin/example/Relocation.java | 152 ++ .../xjc/plugin/example/ReportPlugin.java | 359 ++++ .../xjc/plugin/example/ReportSet.java | 299 +++ .../xjc/plugin/example/Reporting.java | 197 ++ .../xjc/plugin/example/Repository.java | 208 ++ .../xjc/plugin/example/RepositoryPolicy.java | 123 ++ .../hubbitus/xjc/plugin/example/Resource.java | 326 ++++ .../info/hubbitus/xjc/plugin/example/Scm.java | 156 ++ .../hubbitus/xjc/plugin/example/Site.java | 123 ++ 39 files changed, 11610 insertions(+), 16 deletions(-) create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java create mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java diff --git a/example-project-gradle/build.gradle b/example-project-gradle/build.gradle index 9931bde..6ce5384 100644 --- a/example-project-gradle/build.gradle +++ b/example-project-gradle/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.unbroken-dome.xjc' version '1.4.1' // https://github.com/unbroken-dome/gradle-xjc-plugin + id 'org.unbroken-dome.xjc' version '2.0.0' // https://github.com/unbroken-dome/gradle-xjc-plugin id 'idea' id 'groovy' // For Spock tests } @@ -8,7 +8,10 @@ plugins { group 'info.hubbitus' version '1.0-SNAPSHOT' -sourceCompatibility = 1.8 +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} repositories { mavenCentral() @@ -22,12 +25,12 @@ dependencies { xjcClasspath "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" // Compile dependency for annotations used - compile "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" - testCompile "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" + implementation "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" + testImplementation "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" // Tests - testCompile 'org.codehaus.groovy:groovy:2.5.5' - testCompile 'org.spockframework:spock-core:1.2-groovy-2.5' + testImplementation 'org.codehaus.groovy:groovy:2.5.23' + testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5' } // Results will be in directory `src/main/generated-java` @@ -38,20 +41,18 @@ xjcGenerate { * 2. maven-4.0.0.xsd - example by SOq https://stackoverflow.com/questions/42223784/how-can-i-generate-a-class-from-which-i-can-retrieve-the-xml-of-a-node-as-a-stri */ source = fileTree('src/main/resources') { include '*.xsd' } - bindingFiles = fileTree('src/main/jaxb') { include '*.xjb' } - outputDirectory = file('src/main/generated-java') - packageLevelAnnotations = false - targetPackage = 'info.hubbitus.xjc.plugin.example' - extraArgs = [ '-XPluginDescriptionAnnotation' ] + bindingFiles = fileTree('src/main/resources') { include '*.xjb' } + outputDirectory.set(layout.projectDirectory.dir('src/main/generated-java')) + packageLevelAnnotations.set(false) + targetPackage.set('info.hubbitus.xjc.plugin.example') + extraArgs.set([ '-XPluginDescriptionAnnotation' ]) } -// Add generated files into compilation: -// https://stackoverflow.com/questions/36749015/how-do-i-get-intellij-to-recognize-gradle-generated-sources-dir/44740130#44740130 -sourceSets.main.java.srcDir new File(buildDir, xjcGenerate.outputDirectory.absolutePath) +// The xjc plugin adds generated sources into compilation of main source set automatically. idea { module { - // Marks the already(!) added srcDir as "generated" - generatedSourceDirs += xjcGenerate.outputDirectory + // Marks the generated srcDir as "generated" + generatedSourceDirs += file('src/main/generated-java') } } diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java new file mode 100644 index 0000000..bdc2111 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java @@ -0,0 +1,182 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * The conditions within the build runtime environment which will trigger the + * automatic inclusion of the build profile. Multiple conditions can be defined, which must + * be all satisfied to activate the profile. + * + * + * <p>Java class for Activation complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Activation"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="activeByDefault" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; + * &lt;element name="jdk" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="os" type="{http://maven.apache.org/POM/4.0.0}ActivationOS" minOccurs="0"/&gt; + * &lt;element name="property" type="{http://maven.apache.org/POM/4.0.0}ActivationProperty" minOccurs="0"/&gt; + * &lt;element name="file" type="{http://maven.apache.org/POM/4.0.0}ActivationFile" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Activation", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The conditions within the build runtime environment which will trigger the\n automatic inclusion of the build profile. Multiple conditions can be defined, which must\n be all satisfied to activate the profile.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n") +public class Activation { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "false") + @XsdInfo(name = "If set to true, this profile will be active unless another profile in this\n pom is activated using the command line -P option or by one of that profile's\n activators.") + protected Boolean activeByDefault; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Specifies that this profile will be activated when a matching JDK is detected.\n For example, 1.4 only activates on JDKs versioned 1.4,\n while !1.4 matches any JDK that is not version 1.4. Ranges are supported too:\n [1.5,) activates when the JDK is 1.5 minimum.") + protected String jdk; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Specifies that this profile will be activated when matching operating system\n attributes are detected.") + protected ActivationOS os; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Specifies that this profile will be activated when this system property is\n specified.") + protected ActivationProperty property; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Specifies that this profile will be activated based on existence of a file.") + protected ActivationFile file; + + /** + * Gets the value of the activeByDefault property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isActiveByDefault() { + return activeByDefault; + } + + /** + * Sets the value of the activeByDefault property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setActiveByDefault(Boolean value) { + this.activeByDefault = value; + } + + /** + * Gets the value of the jdk property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getJdk() { + return jdk; + } + + /** + * Sets the value of the jdk property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setJdk(String value) { + this.jdk = value; + } + + /** + * Gets the value of the os property. + * + * @return + * possible object is + * {@link ActivationOS } + * + */ + public ActivationOS getOs() { + return os; + } + + /** + * Sets the value of the os property. + * + * @param value + * allowed object is + * {@link ActivationOS } + * + */ + public void setOs(ActivationOS value) { + this.os = value; + } + + /** + * Gets the value of the property property. + * + * @return + * possible object is + * {@link ActivationProperty } + * + */ + public ActivationProperty getProperty() { + return property; + } + + /** + * Sets the value of the property property. + * + * @param value + * allowed object is + * {@link ActivationProperty } + * + */ + public void setProperty(ActivationProperty value) { + this.property = value; + } + + /** + * Gets the value of the file property. + * + * @return + * possible object is + * {@link ActivationFile } + * + */ + public ActivationFile getFile() { + return file; + } + + /** + * Sets the value of the file property. + * + * @param value + * allowed object is + * {@link ActivationFile } + * + */ + public void setFile(ActivationFile value) { + this.file = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java new file mode 100644 index 0000000..29ddd28 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java @@ -0,0 +1,100 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * This is the file specification used to activate the profile. The <code>missing</code> value + * is the location of a file that needs to exist, and if it doesn't, the profile will be + * activated. On the other hand, <code>exists</code> will test for the existence of the file and if it is + * there, the profile will be activated.<br/> + * Variable interpolation for these file specifications is limited to <code>${basedir}</code>, + * System properties and request properties. + * + * <p>Java class for ActivationFile complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="ActivationFile"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="missing" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="exists" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ActivationFile", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "This is the file specification used to activate the profile. The missing value\n is the location of a file that needs to exist, and if it doesn't, the profile will be\n activated. On the other hand, exists will test for the existence of the file and if it is\n there, the profile will be activated.
\n Variable interpolation for these file specifications is limited to ${basedir},\n System properties and request properties.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") +public class ActivationFile { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the file that must be missing to activate the\n profile.") + protected String missing; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the file that must exist to activate the profile.") + protected String exists; + + /** + * Gets the value of the missing property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMissing() { + return missing; + } + + /** + * Sets the value of the missing property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMissing(String value) { + this.missing = value; + } + + /** + * Gets the value of the exists property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getExists() { + return exists; + } + + /** + * Sets the value of the exists property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setExists(String value) { + this.exists = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java new file mode 100644 index 0000000..5418ce8 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java @@ -0,0 +1,152 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * This is an activator which will detect an operating system's attributes in order + * to activate its profile. + * + * <p>Java class for ActivationOS complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="ActivationOS"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="family" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="arch" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ActivationOS", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "This is an activator which will detect an operating system's attributes in order\n to activate its profile.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") +public class ActivationOS { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the operating system to be used to activate the profile. This must be an exact match\n of the ${os.name} Java property, such as Windows XP.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The general family of the OS to be used to activate the profile, such as\n windows or unix.") + protected String family; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The architecture of the operating system to be used to activate the\n profile.") + protected String arch; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The version of the operating system to be used to activate the\n profile.") + protected String version; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the family property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFamily() { + return family; + } + + /** + * Sets the value of the family property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFamily(String value) { + this.family = value; + } + + /** + * Gets the value of the arch property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArch() { + return arch; + } + + /** + * Sets the value of the arch property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArch(String value) { + this.arch = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java new file mode 100644 index 0000000..c4f8d34 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java @@ -0,0 +1,97 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * This is the property specification used to activate a profile. If the value field + * is empty, then the existence of the named property will activate the profile, otherwise it + * does a case-sensitive match against the property value as well. + * + * <p>Java class for ActivationProperty complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="ActivationProperty"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ActivationProperty", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "This is the property specification used to activate a profile. If the value field\n is empty, then the existence of the named property will activate the profile, otherwise it\n does a case-sensitive match against the property value as well.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") +public class ActivationProperty { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the property to be used to activate a profile.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The value of the property required to activate a profile.") + protected String value; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java new file mode 100644 index 0000000..5dcb11e --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java @@ -0,0 +1,798 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * + * + * The <code>&lt;build&gt;</code> element contains informations required to build the project. + * Default values are defined in Super POM. + * + * + * + * <p>Java class for Build complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Build"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="sourceDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="scriptSourceDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="testSourceDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="outputDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="testOutputDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="extensions" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="extension" type="{http://maven.apache.org/POM/4.0.0}Extension" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="defaultGoal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="resources" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="testResources" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="directory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="finalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="filters" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="pluginManagement" type="{http://maven.apache.org/POM/4.0.0}PluginManagement" minOccurs="0"/&gt; + * &lt;element name="plugins" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Build", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <build> element contains informations required to build the project.\n Default values are defined in Super POM.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Build { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element specifies a directory containing the source of the project. The\n generated build system will compile the sources from this directory when the project is\n built. The path given is relative to the project descriptor.\n The default value is src/main/java.") + protected String sourceDirectory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element specifies a directory containing the script sources of the\n project. This directory is meant to be different from the sourceDirectory, in that its\n contents will be copied to the output directory in most cases (since scripts are\n interpreted rather than compiled).\n The default value is src/main/scripts.") + protected String scriptSourceDirectory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element specifies a directory containing the unit test source of the\n project. The generated build system will compile these directories when the project is\n being tested. The path given is relative to the project descriptor.\n The default value is src/test/java.") + protected String testSourceDirectory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The directory where compiled application classes are placed.\n The default value is target/classes.") + protected String outputDirectory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The directory where compiled test classes are placed.\n The default value is target/test-classes.") + protected String testOutputDirectory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A set of build extensions to use from this project.") + protected Build.Extensions extensions; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The default goal (or phase in Maven 2) to execute when none is specified for\n the project. Note that in case of a multi-module build, only the default goal of the top-level\n project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3,\n multiple goals/phases can be separated by whitespace.") + protected String defaultGoal; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project. These resources are often included in the final\n package.\n The default value is src/main/resources.") + protected Build.Resources resources; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project's unit tests.\n The default value is src/test/resources.") + protected Build.TestResources testResources; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The directory where all files generated by the build are placed.\n The default value is target.") + protected String directory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The filename (excluding the extension, and with no path information) that\n the produced artifact will be called.\n The default value is ${artifactId}-${version}.") + protected String finalName; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The list of filter properties files that are used when filtering is enabled.") + protected Build.Filters filters; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Default plugin information to be made available for reference by projects\n derived from this one. This plugin configuration will not be resolved or bound to the\n lifecycle unless referenced. Any local configuration for a given plugin will override\n the plugin's entire definition here.") + protected PluginManagement pluginManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The list of plugins to use.") + protected Build.Plugins plugins; + + /** + * Gets the value of the sourceDirectory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSourceDirectory() { + return sourceDirectory; + } + + /** + * Sets the value of the sourceDirectory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSourceDirectory(String value) { + this.sourceDirectory = value; + } + + /** + * Gets the value of the scriptSourceDirectory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getScriptSourceDirectory() { + return scriptSourceDirectory; + } + + /** + * Sets the value of the scriptSourceDirectory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setScriptSourceDirectory(String value) { + this.scriptSourceDirectory = value; + } + + /** + * Gets the value of the testSourceDirectory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTestSourceDirectory() { + return testSourceDirectory; + } + + /** + * Sets the value of the testSourceDirectory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTestSourceDirectory(String value) { + this.testSourceDirectory = value; + } + + /** + * Gets the value of the outputDirectory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOutputDirectory() { + return outputDirectory; + } + + /** + * Sets the value of the outputDirectory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOutputDirectory(String value) { + this.outputDirectory = value; + } + + /** + * Gets the value of the testOutputDirectory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTestOutputDirectory() { + return testOutputDirectory; + } + + /** + * Sets the value of the testOutputDirectory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTestOutputDirectory(String value) { + this.testOutputDirectory = value; + } + + /** + * Gets the value of the extensions property. + * + * @return + * possible object is + * {@link Build.Extensions } + * + */ + public Build.Extensions getExtensions() { + return extensions; + } + + /** + * Sets the value of the extensions property. + * + * @param value + * allowed object is + * {@link Build.Extensions } + * + */ + public void setExtensions(Build.Extensions value) { + this.extensions = value; + } + + /** + * Gets the value of the defaultGoal property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDefaultGoal() { + return defaultGoal; + } + + /** + * Sets the value of the defaultGoal property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDefaultGoal(String value) { + this.defaultGoal = value; + } + + /** + * Gets the value of the resources property. + * + * @return + * possible object is + * {@link Build.Resources } + * + */ + public Build.Resources getResources() { + return resources; + } + + /** + * Sets the value of the resources property. + * + * @param value + * allowed object is + * {@link Build.Resources } + * + */ + public void setResources(Build.Resources value) { + this.resources = value; + } + + /** + * Gets the value of the testResources property. + * + * @return + * possible object is + * {@link Build.TestResources } + * + */ + public Build.TestResources getTestResources() { + return testResources; + } + + /** + * Sets the value of the testResources property. + * + * @param value + * allowed object is + * {@link Build.TestResources } + * + */ + public void setTestResources(Build.TestResources value) { + this.testResources = value; + } + + /** + * Gets the value of the directory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDirectory() { + return directory; + } + + /** + * Sets the value of the directory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDirectory(String value) { + this.directory = value; + } + + /** + * Gets the value of the finalName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFinalName() { + return finalName; + } + + /** + * Sets the value of the finalName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFinalName(String value) { + this.finalName = value; + } + + /** + * Gets the value of the filters property. + * + * @return + * possible object is + * {@link Build.Filters } + * + */ + public Build.Filters getFilters() { + return filters; + } + + /** + * Sets the value of the filters property. + * + * @param value + * allowed object is + * {@link Build.Filters } + * + */ + public void setFilters(Build.Filters value) { + this.filters = value; + } + + /** + * Gets the value of the pluginManagement property. + * + * @return + * possible object is + * {@link PluginManagement } + * + */ + public PluginManagement getPluginManagement() { + return pluginManagement; + } + + /** + * Sets the value of the pluginManagement property. + * + * @param value + * allowed object is + * {@link PluginManagement } + * + */ + public void setPluginManagement(PluginManagement value) { + this.pluginManagement = value; + } + + /** + * Gets the value of the plugins property. + * + * @return + * possible object is + * {@link Build.Plugins } + * + */ + public Build.Plugins getPlugins() { + return plugins; + } + + /** + * Sets the value of the plugins property. + * + * @param value + * allowed object is + * {@link Build.Plugins } + * + */ + public void setPlugins(Build.Plugins value) { + this.plugins = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="extension" type="{http://maven.apache.org/POM/4.0.0}Extension" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "extensions" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Extensions { + + @XmlElement(name = "extension", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List extensions; + + /** + * Gets the value of the extensions property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the extensions property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getExtensions().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Extension } + * + * + */ + public List getExtensions() { + if (extensions == null) { + extensions = new ArrayList(); + } + return this.extensions; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "filters" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Filters { + + @XmlElement(name = "filter", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List filters; + + /** + * Gets the value of the filters property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the filters property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getFilters().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getFilters() { + if (filters == null) { + filters = new ArrayList(); + } + return this.filters; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "plugins" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Plugins { + + @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List plugins; + + /** + * Gets the value of the plugins property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the plugins property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getPlugins().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Plugin } + * + * + */ + public List getPlugins() { + if (plugins == null) { + plugins = new ArrayList(); + } + return this.plugins; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "resources" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Resources { + + @XmlElement(name = "resource", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List resources; + + /** + * Gets the value of the resources property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the resources property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getResources().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Resource } + * + * + */ + public List getResources() { + if (resources == null) { + resources = new ArrayList(); + } + return this.resources; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "testResources" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class TestResources { + + @XmlElement(name = "testResource", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List testResources; + + /** + * Gets the value of the testResources property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the testResources property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getTestResources().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Resource } + * + * + */ + public List getTestResources() { + if (testResources == null) { + testResources = new ArrayList(); + } + return this.testResources; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java new file mode 100644 index 0000000..585cdc2 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java @@ -0,0 +1,553 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Generic informations for a build. + * + * <p>Java class for BuildBase complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="BuildBase"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="defaultGoal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="resources" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="testResources" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="directory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="finalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="filters" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="pluginManagement" type="{http://maven.apache.org/POM/4.0.0}PluginManagement" minOccurs="0"/&gt; + * &lt;element name="plugins" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BuildBase", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Generic informations for a build.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class BuildBase { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The default goal (or phase in Maven 2) to execute when none is specified for\n the project. Note that in case of a multi-module build, only the default goal of the top-level\n project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3,\n multiple goals/phases can be separated by whitespace.") + protected String defaultGoal; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project. These resources are often included in the final\n package.\n The default value is src/main/resources.") + protected BuildBase.Resources resources; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project's unit tests.\n The default value is src/test/resources.") + protected BuildBase.TestResources testResources; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The directory where all files generated by the build are placed.\n The default value is target.") + protected String directory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The filename (excluding the extension, and with no path information) that\n the produced artifact will be called.\n The default value is ${artifactId}-${version}.") + protected String finalName; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The list of filter properties files that are used when filtering is enabled.") + protected BuildBase.Filters filters; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Default plugin information to be made available for reference by projects\n derived from this one. This plugin configuration will not be resolved or bound to the\n lifecycle unless referenced. Any local configuration for a given plugin will override\n the plugin's entire definition here.") + protected PluginManagement pluginManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The list of plugins to use.") + protected BuildBase.Plugins plugins; + + /** + * Gets the value of the defaultGoal property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDefaultGoal() { + return defaultGoal; + } + + /** + * Sets the value of the defaultGoal property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDefaultGoal(String value) { + this.defaultGoal = value; + } + + /** + * Gets the value of the resources property. + * + * @return + * possible object is + * {@link BuildBase.Resources } + * + */ + public BuildBase.Resources getResources() { + return resources; + } + + /** + * Sets the value of the resources property. + * + * @param value + * allowed object is + * {@link BuildBase.Resources } + * + */ + public void setResources(BuildBase.Resources value) { + this.resources = value; + } + + /** + * Gets the value of the testResources property. + * + * @return + * possible object is + * {@link BuildBase.TestResources } + * + */ + public BuildBase.TestResources getTestResources() { + return testResources; + } + + /** + * Sets the value of the testResources property. + * + * @param value + * allowed object is + * {@link BuildBase.TestResources } + * + */ + public void setTestResources(BuildBase.TestResources value) { + this.testResources = value; + } + + /** + * Gets the value of the directory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDirectory() { + return directory; + } + + /** + * Sets the value of the directory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDirectory(String value) { + this.directory = value; + } + + /** + * Gets the value of the finalName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFinalName() { + return finalName; + } + + /** + * Sets the value of the finalName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFinalName(String value) { + this.finalName = value; + } + + /** + * Gets the value of the filters property. + * + * @return + * possible object is + * {@link BuildBase.Filters } + * + */ + public BuildBase.Filters getFilters() { + return filters; + } + + /** + * Sets the value of the filters property. + * + * @param value + * allowed object is + * {@link BuildBase.Filters } + * + */ + public void setFilters(BuildBase.Filters value) { + this.filters = value; + } + + /** + * Gets the value of the pluginManagement property. + * + * @return + * possible object is + * {@link PluginManagement } + * + */ + public PluginManagement getPluginManagement() { + return pluginManagement; + } + + /** + * Sets the value of the pluginManagement property. + * + * @param value + * allowed object is + * {@link PluginManagement } + * + */ + public void setPluginManagement(PluginManagement value) { + this.pluginManagement = value; + } + + /** + * Gets the value of the plugins property. + * + * @return + * possible object is + * {@link BuildBase.Plugins } + * + */ + public BuildBase.Plugins getPlugins() { + return plugins; + } + + /** + * Sets the value of the plugins property. + * + * @param value + * allowed object is + * {@link BuildBase.Plugins } + * + */ + public void setPlugins(BuildBase.Plugins value) { + this.plugins = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "filters" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Filters { + + @XmlElement(name = "filter", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List filters; + + /** + * Gets the value of the filters property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the filters property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getFilters().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getFilters() { + if (filters == null) { + filters = new ArrayList(); + } + return this.filters; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "plugins" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Plugins { + + @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List plugins; + + /** + * Gets the value of the plugins property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the plugins property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getPlugins().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Plugin } + * + * + */ + public List getPlugins() { + if (plugins == null) { + plugins = new ArrayList(); + } + return this.plugins; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "resources" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Resources { + + @XmlElement(name = "resource", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List resources; + + /** + * Gets the value of the resources property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the resources property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getResources().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Resource } + * + * + */ + public List getResources() { + if (resources == null) { + resources = new ArrayList(); + } + return this.resources; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "testResources" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class TestResources { + + @XmlElement(name = "testResource", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List testResources; + + /** + * Gets the value of the testResources property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the testResources property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getTestResources().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Resource } + * + * + */ + public List getTestResources() { + if (testResources == null) { + testResources = new ArrayList(); + } + return this.testResources; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java new file mode 100644 index 0000000..5fdf0c7 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java @@ -0,0 +1,202 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * + * + * The <code>&lt;CiManagement&gt;</code> element contains informations required to the + * continuous integration system of the project. + * + * + * + * <p>Java class for CiManagement complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="CiManagement"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="system" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="notifiers" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="notifier" type="{http://maven.apache.org/POM/4.0.0}Notifier" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "CiManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <CiManagement> element contains informations required to the\n continuous integration system of the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class CiManagement { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the continuous integration system, e.g. continuum.") + protected String system; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "URL for the continuous integration system used by the project if it has a web\n interface.") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Configuration for notifying developers/users when a build is unsuccessful,\n including user information and notification mode.") + protected CiManagement.Notifiers notifiers; + + /** + * Gets the value of the system property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSystem() { + return system; + } + + /** + * Sets the value of the system property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSystem(String value) { + this.system = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the notifiers property. + * + * @return + * possible object is + * {@link CiManagement.Notifiers } + * + */ + public CiManagement.Notifiers getNotifiers() { + return notifiers; + } + + /** + * Sets the value of the notifiers property. + * + * @param value + * allowed object is + * {@link CiManagement.Notifiers } + * + */ + public void setNotifiers(CiManagement.Notifiers value) { + this.notifiers = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="notifier" type="{http://maven.apache.org/POM/4.0.0}Notifier" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "notifiers" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Notifiers { + + @XmlElement(name = "notifier", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List notifiers; + + /** + * Gets the value of the notifiers property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the notifiers property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getNotifiers().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Notifier } + * + * + */ + public List getNotifiers() { + if (notifiers == null) { + notifiers = new ArrayList(); + } + return this.notifiers; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java new file mode 100644 index 0000000..21e84f3 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java @@ -0,0 +1,412 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * Description of a person who has contributed to the project, but who does not have + * commit privileges. Usually, these contributions come in the form of patches submitted. + * + * <p>Java class for Contributor complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Contributor"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="organization" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="organizationUrl" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="roles" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="timezone" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="properties" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Contributor", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Description of a person who has contributed to the project, but who does not have\n commit privileges. Usually, these contributions come in the form of patches submitted.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Contributor { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The full name of the contributor.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The email address of the contributor.") + protected String email; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL for the homepage of the contributor.") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The organization to which the contributor belongs.") + protected String organization; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL of the organization.") + protected String organizationUrl; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The roles the contributor plays in the project. Each role is described by a\n role element, the body of which is a role name. This can also be used to\n describe the contribution.") + protected Contributor.Roles roles; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The timezone the contributor is in. Typically, this is a number in the range\n -12 to +14\n or a valid time zone id like \"America/Montreal\" (UTC-05:00) or \"Europe/Paris\" (UTC+01:00).") + protected String timezone; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Properties about the contributor, such as an instant messenger handle.") + protected Contributor.Properties properties; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the email property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEmail() { + return email; + } + + /** + * Sets the value of the email property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEmail(String value) { + this.email = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the organization property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOrganization() { + return organization; + } + + /** + * Sets the value of the organization property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOrganization(String value) { + this.organization = value; + } + + /** + * Gets the value of the organizationUrl property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOrganizationUrl() { + return organizationUrl; + } + + /** + * Sets the value of the organizationUrl property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOrganizationUrl(String value) { + this.organizationUrl = value; + } + + /** + * Gets the value of the roles property. + * + * @return + * possible object is + * {@link Contributor.Roles } + * + */ + public Contributor.Roles getRoles() { + return roles; + } + + /** + * Sets the value of the roles property. + * + * @param value + * allowed object is + * {@link Contributor.Roles } + * + */ + public void setRoles(Contributor.Roles value) { + this.roles = value; + } + + /** + * Gets the value of the timezone property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTimezone() { + return timezone; + } + + /** + * Sets the value of the timezone property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTimezone(String value) { + this.timezone = value; + } + + /** + * Gets the value of the properties property. + * + * @return + * possible object is + * {@link Contributor.Properties } + * + */ + public Contributor.Properties getProperties() { + return properties; + } + + /** + * Sets the value of the properties property. + * + * @param value + * allowed object is + * {@link Contributor.Properties } + * + */ + public void setProperties(Contributor.Properties value) { + this.properties = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Properties { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "roles" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Roles { + + @XmlElement(name = "role", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List roles; + + /** + * Gets the value of the roles property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the roles property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getRoles().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getRoles() { + if (roles == null) { + roles = new ArrayList(); + } + return this.roles; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java new file mode 100644 index 0000000..eb8f5dd --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java @@ -0,0 +1,99 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.math.BigInteger; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Пользователь + * + * <p>Java class for Customer complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Customer"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt; + * &lt;element name="age" type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Customer", propOrder = { + "name", + "age" +}) +@XsdInfo(name = "Пользователь", xsdElementPart = "\n \n \n \n \n \n \n \n \n") +public class Customer { + + @XmlElement(required = true) + @XsdInfo(name = "Фамилия и имя") + protected String name; + @XmlElement(required = true) + @XmlSchemaType(name = "positiveInteger") + @XsdInfo(name = "Возраст") + protected BigInteger age; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the age property. + * + * @return + * possible object is + * {@link BigInteger } + * + */ + public BigInteger getAge() { + return age; + } + + /** + * Sets the value of the age property. + * + * @param value + * allowed object is + * {@link BigInteger } + * + */ + public void setAge(BigInteger value) { + this.age = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java new file mode 100644 index 0000000..2c77fad --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java @@ -0,0 +1,370 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * + * + * The <code>&lt;dependency&gt;</code> element contains information about a dependency + * of the project. + * + * + * + * <p>Java class for Dependency complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Dependency"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="classifier" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="scope" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="systemPath" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="exclusions" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="exclusion" type="{http://maven.apache.org/POM/4.0.0}Exclusion" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="optional" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Dependency", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <dependency> element contains information about a dependency\n of the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Dependency { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The project group that produced the dependency, e.g.\n org.apache.maven.") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The unique id for an artifact produced by the project group, e.g.\n maven-artifact.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The version of the dependency, e.g. 3.2.1. In Maven 2, this can also be\n specified as a range of versions.") + protected String version; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "jar") + @XsdInfo(name = "The type of dependency. While it\n usually represents the extension on the filename of the dependency,\n that is not always the case. A type can be mapped to a different\n extension and a classifier.\n The type often corresponds to the packaging used, though this is also\n not always the case.\n Some examples are jar, war, ejb-client\n and test-jar: see default\n artifact handlers for a list.\n New types can be defined by plugins that set\n extensions to true, so this is not a complete list.") + protected String type; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The classifier of the dependency. It is appended to\n the filename after the version. This allows:\n
    \n
  • refering to attached artifact, for example sources and javadoc:\n see default artifact handlers for a list,
  • \n
  • distinguishing two artifacts\n that belong to the same POM but were built differently.\n For example, jdk14 and jdk15.
  • \n
") + protected String classifier; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The scope of the dependency - compile, runtime,\n test, system, and provided. Used to\n calculate the various classpaths used for compilation, testing, and so on.\n It also assists in determining which artifacts to include in a distribution of\n this project. For more information, see\n the\n dependency mechanism.") + protected String scope; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "FOR SYSTEM SCOPE ONLY. Note that use of this property is discouraged\n and may be replaced in later versions. This specifies the path on the filesystem\n for this dependency.\n Requires an absolute path for the value, not relative.\n Use a property that gives the machine specific absolute path,\n e.g. ${java.home}.") + protected String systemPath; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Lists a set of artifacts that should be excluded from this dependency's\n artifact list when it comes to calculating transitive dependencies.") + protected Dependency.Exclusions exclusions; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Indicates the dependency is optional for use of this library. While the\n version of the dependency will be taken into account for dependency calculation if the\n library is used elsewhere, it will not be passed on transitively. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") + protected String optional; + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * Gets the value of the classifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getClassifier() { + return classifier; + } + + /** + * Sets the value of the classifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setClassifier(String value) { + this.classifier = value; + } + + /** + * Gets the value of the scope property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getScope() { + return scope; + } + + /** + * Sets the value of the scope property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setScope(String value) { + this.scope = value; + } + + /** + * Gets the value of the systemPath property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSystemPath() { + return systemPath; + } + + /** + * Sets the value of the systemPath property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSystemPath(String value) { + this.systemPath = value; + } + + /** + * Gets the value of the exclusions property. + * + * @return + * possible object is + * {@link Dependency.Exclusions } + * + */ + public Dependency.Exclusions getExclusions() { + return exclusions; + } + + /** + * Sets the value of the exclusions property. + * + * @param value + * allowed object is + * {@link Dependency.Exclusions } + * + */ + public void setExclusions(Dependency.Exclusions value) { + this.exclusions = value; + } + + /** + * Gets the value of the optional property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOptional() { + return optional; + } + + /** + * Sets the value of the optional property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOptional(String value) { + this.optional = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="exclusion" type="{http://maven.apache.org/POM/4.0.0}Exclusion" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "exclusions" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Exclusions { + + @XmlElement(name = "exclusion", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List exclusions; + + /** + * Gets the value of the exclusions property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the exclusions property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getExclusions().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Exclusion } + * + * + */ + public List getExclusions() { + if (exclusions == null) { + exclusions = new ArrayList(); + } + return this.exclusions; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java new file mode 100644 index 0000000..a57898c --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java @@ -0,0 +1,142 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Section for management of default dependency information for use in a group of + * POMs. + * + * <p>Java class for DependencyManagement complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="DependencyManagement"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="dependencies" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "DependencyManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Section for management of default dependency information for use in a group of\n POMs.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class DependencyManagement { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The dependencies specified here are not used until they are referenced in a\n POM within the group. This allows the specification of a \"standard\" version for a\n particular dependency.") + protected DependencyManagement.Dependencies dependencies; + + /** + * Gets the value of the dependencies property. + * + * @return + * possible object is + * {@link DependencyManagement.Dependencies } + * + */ + public DependencyManagement.Dependencies getDependencies() { + return dependencies; + } + + /** + * Sets the value of the dependencies property. + * + * @param value + * allowed object is + * {@link DependencyManagement.Dependencies } + * + */ + public void setDependencies(DependencyManagement.Dependencies value) { + this.dependencies = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "dependencies" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Dependencies { + + @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List dependencies; + + /** + * Gets the value of the dependencies property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the dependencies property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getDependencies().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Dependency } + * + * + */ + public List getDependencies() { + if (dependencies == null) { + dependencies = new ArrayList(); + } + return this.dependencies; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java new file mode 100644 index 0000000..feddb86 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java @@ -0,0 +1,236 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Repository contains the information needed for deploying to the remote + * repository. + * + * <p>Java class for DeploymentRepository complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="DeploymentRepository"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="uniqueVersion" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; + * &lt;element name="releases" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; + * &lt;element name="snapshots" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="layout" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "DeploymentRepository", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Repository contains the information needed for deploying to the remote\n repository.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class DeploymentRepository { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") + @XsdInfo(name = "Whether to assign snapshots a unique version comprised of the timestamp and\n build number, or to use the same version each time") + protected Boolean uniqueVersion; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "How to handle downloading of releases from this repository.") + protected RepositoryPolicy releases; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "How to handle downloading of snapshots from this repository.") + protected RepositoryPolicy snapshots; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A unique identifier for a repository. This is used to match the repository\n to configuration in the settings.xml file, for example. Furthermore, the identifier is\n used during POM inheritance and profile injection to detect repositories that should be merged.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Human readable name of the repository.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The url of the repository, in the form protocol://hostname/path.") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") + @XsdInfo(name = "The type of layout this repository uses for locating and storing artifacts -\n can be legacy or default.") + protected String layout; + + /** + * Gets the value of the uniqueVersion property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isUniqueVersion() { + return uniqueVersion; + } + + /** + * Sets the value of the uniqueVersion property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setUniqueVersion(Boolean value) { + this.uniqueVersion = value; + } + + /** + * Gets the value of the releases property. + * + * @return + * possible object is + * {@link RepositoryPolicy } + * + */ + public RepositoryPolicy getReleases() { + return releases; + } + + /** + * Sets the value of the releases property. + * + * @param value + * allowed object is + * {@link RepositoryPolicy } + * + */ + public void setReleases(RepositoryPolicy value) { + this.releases = value; + } + + /** + * Gets the value of the snapshots property. + * + * @return + * possible object is + * {@link RepositoryPolicy } + * + */ + public RepositoryPolicy getSnapshots() { + return snapshots; + } + + /** + * Sets the value of the snapshots property. + * + * @param value + * allowed object is + * {@link RepositoryPolicy } + * + */ + public void setSnapshots(RepositoryPolicy value) { + this.snapshots = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the layout property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLayout() { + return layout; + } + + /** + * Sets the value of the layout property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLayout(String value) { + this.layout = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java new file mode 100644 index 0000000..96a28c0 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java @@ -0,0 +1,439 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * Information about one of the committers on this project. + * + * <p>Java class for Developer complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Developer"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="organization" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="organizationUrl" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="roles" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="timezone" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="properties" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Developer", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Information about one of the committers on this project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Developer { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The unique ID of the developer in the SCM.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The full name of the contributor.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The email address of the contributor.") + protected String email; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL for the homepage of the contributor.") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The organization to which the contributor belongs.") + protected String organization; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL of the organization.") + protected String organizationUrl; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The roles the contributor plays in the project. Each role is described by a\n role element, the body of which is a role name. This can also be used to\n describe the contribution.") + protected Developer.Roles roles; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The timezone the contributor is in. Typically, this is a number in the range\n -12 to +14\n or a valid time zone id like \"America/Montreal\" (UTC-05:00) or \"Europe/Paris\" (UTC+01:00).") + protected String timezone; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Properties about the contributor, such as an instant messenger handle.") + protected Developer.Properties properties; + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the email property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEmail() { + return email; + } + + /** + * Sets the value of the email property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEmail(String value) { + this.email = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the organization property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOrganization() { + return organization; + } + + /** + * Sets the value of the organization property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOrganization(String value) { + this.organization = value; + } + + /** + * Gets the value of the organizationUrl property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOrganizationUrl() { + return organizationUrl; + } + + /** + * Sets the value of the organizationUrl property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOrganizationUrl(String value) { + this.organizationUrl = value; + } + + /** + * Gets the value of the roles property. + * + * @return + * possible object is + * {@link Developer.Roles } + * + */ + public Developer.Roles getRoles() { + return roles; + } + + /** + * Sets the value of the roles property. + * + * @param value + * allowed object is + * {@link Developer.Roles } + * + */ + public void setRoles(Developer.Roles value) { + this.roles = value; + } + + /** + * Gets the value of the timezone property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTimezone() { + return timezone; + } + + /** + * Sets the value of the timezone property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTimezone(String value) { + this.timezone = value; + } + + /** + * Gets the value of the properties property. + * + * @return + * possible object is + * {@link Developer.Properties } + * + */ + public Developer.Properties getProperties() { + return properties; + } + + /** + * Sets the value of the properties property. + * + * @param value + * allowed object is + * {@link Developer.Properties } + * + */ + public void setProperties(Developer.Properties value) { + this.properties = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Properties { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "roles" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Roles { + + @XmlElement(name = "role", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List roles; + + /** + * Gets the value of the roles property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the roles property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getRoles().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getRoles() { + if (roles == null) { + roles = new ArrayList(); + } + return this.roles; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java new file mode 100644 index 0000000..5dcd765 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java @@ -0,0 +1,208 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * This elements describes all that pertains to distribution for a project. It is + * primarily used for deployment of artifacts and the site produced by the build. + * + * <p>Java class for DistributionManagement complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="DistributionManagement"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}DeploymentRepository" minOccurs="0"/&gt; + * &lt;element name="snapshotRepository" type="{http://maven.apache.org/POM/4.0.0}DeploymentRepository" minOccurs="0"/&gt; + * &lt;element name="site" type="{http://maven.apache.org/POM/4.0.0}Site" minOccurs="0"/&gt; + * &lt;element name="downloadUrl" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="relocation" type="{http://maven.apache.org/POM/4.0.0}Relocation" minOccurs="0"/&gt; + * &lt;element name="status" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "DistributionManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "This elements describes all that pertains to distribution for a project. It is\n primarily used for deployment of artifacts and the site produced by the build.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n") +public class DistributionManagement { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Information needed to deploy the artifacts generated by the project to a\n remote repository.") + protected DeploymentRepository repository; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Where to deploy snapshots of artifacts to. If not given, it defaults to the\n repository element.") + protected DeploymentRepository snapshotRepository; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Information needed for deploying the web site of the project.") + protected Site site; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL of the project's download page. If not given users will be\n referred to the homepage given by url.\n This is given to assist in locating artifacts that are not in the repository due to\n licensing restrictions.") + protected String downloadUrl; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Relocation information of the artifact if it has been moved to a new group ID\n and/or artifact ID.") + protected Relocation relocation; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Gives the status of this artifact in the remote repository.\n This must not be set in your local project, as it is updated by\n tools placing it in the reposiory. Valid values are: none (default),\n converted (repository manager converted this from an Maven 1 POM),\n partner\n (directly synced from a partner Maven 2 repository), deployed (was deployed from a Maven 2\n instance), verified (has been hand verified as correct and final).") + protected String status; + + /** + * Gets the value of the repository property. + * + * @return + * possible object is + * {@link DeploymentRepository } + * + */ + public DeploymentRepository getRepository() { + return repository; + } + + /** + * Sets the value of the repository property. + * + * @param value + * allowed object is + * {@link DeploymentRepository } + * + */ + public void setRepository(DeploymentRepository value) { + this.repository = value; + } + + /** + * Gets the value of the snapshotRepository property. + * + * @return + * possible object is + * {@link DeploymentRepository } + * + */ + public DeploymentRepository getSnapshotRepository() { + return snapshotRepository; + } + + /** + * Sets the value of the snapshotRepository property. + * + * @param value + * allowed object is + * {@link DeploymentRepository } + * + */ + public void setSnapshotRepository(DeploymentRepository value) { + this.snapshotRepository = value; + } + + /** + * Gets the value of the site property. + * + * @return + * possible object is + * {@link Site } + * + */ + public Site getSite() { + return site; + } + + /** + * Sets the value of the site property. + * + * @param value + * allowed object is + * {@link Site } + * + */ + public void setSite(Site value) { + this.site = value; + } + + /** + * Gets the value of the downloadUrl property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDownloadUrl() { + return downloadUrl; + } + + /** + * Sets the value of the downloadUrl property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDownloadUrl(String value) { + this.downloadUrl = value; + } + + /** + * Gets the value of the relocation property. + * + * @return + * possible object is + * {@link Relocation } + * + */ + public Relocation getRelocation() { + return relocation; + } + + /** + * Sets the value of the relocation property. + * + * @param value + * allowed object is + * {@link Relocation } + * + */ + public void setRelocation(Relocation value) { + this.relocation = value; + } + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStatus(String value) { + this.status = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java new file mode 100644 index 0000000..b243c75 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java @@ -0,0 +1,100 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * + * + * The <code>&lt;exclusion&gt;</code> element contains informations required to exclude + * an artifact to the project. + * + * + * + * <p>Java class for Exclusion complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Exclusion"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exclusion", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <exclusion> element contains informations required to exclude\n an artifact to the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") +public class Exclusion { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The artifact ID of the project to exclude.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The group ID of the project to exclude.") + protected String groupId; + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java new file mode 100644 index 0000000..457dfff --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java @@ -0,0 +1,123 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Describes a build extension to utilise. + * + * <p>Java class for Extension complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Extension"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Extension", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Describes a build extension to utilise.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n") +public class Extension { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The group ID of the extension's artifact.") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The artifact ID of the extension.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The version of the extension.") + protected String version; + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java new file mode 100644 index 0000000..194517c --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java @@ -0,0 +1,96 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Information about the issue tracking (or bug tracking) system used to manage this + * project. + * + * <p>Java class for IssueManagement complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="IssueManagement"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="system" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "IssueManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Information about the issue tracking (or bug tracking) system used to manage this\n project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") +public class IssueManagement { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the issue management system, e.g. Bugzilla") + protected String system; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "URL for the issue management system used by the project.") + protected String url; + + /** + * Gets the value of the system property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSystem() { + return system; + } + + /** + * Sets the value of the system property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSystem(String value) { + this.system = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java new file mode 100644 index 0000000..a3e0051 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java @@ -0,0 +1,154 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Describes the licenses for this project. This is used to generate the license + * page of the project's web site, as well as being taken into consideration in other reporting + * and validation. The licenses listed for the project are that of the project itself, and not + * of dependencies. + * + * <p>Java class for License complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="License"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="distribution" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="comments" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "License", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Describes the licenses for this project. This is used to generate the license\n page of the project's web site, as well as being taken into consideration in other reporting\n and validation. The licenses listed for the project are that of the project itself, and not\n of dependencies.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") +public class License { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The full legal name of the license.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The official url for the license text.") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The primary method by which this project may be distributed.\n
\n
repo
\n
may be downloaded from the Maven repository
\n
manual
\n
user must manually download and install the dependency.
\n
") + protected String distribution; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Addendum information pertaining to this license.") + protected String comments; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the distribution property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDistribution() { + return distribution; + } + + /** + * Sets the value of the distribution property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDistribution(String value) { + this.distribution = value; + } + + /** + * Gets the value of the comments property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getComments() { + return comments; + } + + /** + * Sets the value of the comments property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setComments(String value) { + this.comments = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java new file mode 100644 index 0000000..9a83247 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java @@ -0,0 +1,282 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * This element describes all of the mailing lists associated with a project. The + * auto-generated site references this information. + * + * <p>Java class for MailingList complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="MailingList"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="subscribe" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="unsubscribe" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="post" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="archive" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="otherArchives" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="otherArchive" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "MailingList", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "This element describes all of the mailing lists associated with a project. The\n auto-generated site references this information.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class MailingList { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The name of the mailing list.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The email address or link that can be used to subscribe to\n the mailing list. If this is an email address, a\n mailto: link will automatically be created\n when the documentation is created.") + protected String subscribe; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The email address or link that can be used to unsubscribe to\n the mailing list. If this is an email address, a\n mailto: link will automatically be created\n when the documentation is created.") + protected String unsubscribe; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The email address or link that can be used to post to\n the mailing list. If this is an email address, a\n mailto: link will automatically be created\n when the documentation is created.") + protected String post; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The link to a URL where you can browse the mailing list archive.") + protected String archive; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The link to alternate URLs where you can browse the list archive.") + protected MailingList.OtherArchives otherArchives; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the subscribe property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSubscribe() { + return subscribe; + } + + /** + * Sets the value of the subscribe property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSubscribe(String value) { + this.subscribe = value; + } + + /** + * Gets the value of the unsubscribe property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUnsubscribe() { + return unsubscribe; + } + + /** + * Sets the value of the unsubscribe property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUnsubscribe(String value) { + this.unsubscribe = value; + } + + /** + * Gets the value of the post property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPost() { + return post; + } + + /** + * Sets the value of the post property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPost(String value) { + this.post = value; + } + + /** + * Gets the value of the archive property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArchive() { + return archive; + } + + /** + * Sets the value of the archive property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArchive(String value) { + this.archive = value; + } + + /** + * Gets the value of the otherArchives property. + * + * @return + * possible object is + * {@link MailingList.OtherArchives } + * + */ + public MailingList.OtherArchives getOtherArchives() { + return otherArchives; + } + + /** + * Sets the value of the otherArchives property. + * + * @param value + * allowed object is + * {@link MailingList.OtherArchives } + * + */ + public void setOtherArchives(MailingList.OtherArchives value) { + this.otherArchives = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="otherArchive" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "otherArchives" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class OtherArchives { + + @XmlElement(name = "otherArchive", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List otherArchives; + + /** + * Gets the value of the otherArchives property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the otherArchives property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getOtherArchives().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getOtherArchives() { + if (otherArchives == null) { + otherArchives = new ArrayList(); + } + return this.otherArchives; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java new file mode 100644 index 0000000..285bcd3 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java @@ -0,0 +1,311 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * Configures one method for notifying users/developers when a build breaks. + * + * <p>Java class for Notifier complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Notifier"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="sendOnError" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; + * &lt;element name="sendOnFailure" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; + * &lt;element name="sendOnSuccess" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; + * &lt;element name="sendOnWarning" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; + * &lt;element name="address" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="configuration" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Notifier", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Configures one method for notifying users/developers when a build breaks.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Notifier { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "mail") + @XsdInfo(name = "The mechanism used to deliver notifications.") + protected String type; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") + @XsdInfo(name = "Whether to send notifications on error.") + protected Boolean sendOnError; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") + @XsdInfo(name = "Whether to send notifications on failure.") + protected Boolean sendOnFailure; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") + @XsdInfo(name = "Whether to send notifications on success.") + protected Boolean sendOnSuccess; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") + @XsdInfo(name = "Whether to send notifications on warning.") + protected Boolean sendOnWarning; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Deprecated. Where to send the notification to - eg email address.") + protected String address; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Extended configuration specific to this notifier goes here.") + protected Notifier.Configuration configuration; + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * Gets the value of the sendOnError property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isSendOnError() { + return sendOnError; + } + + /** + * Sets the value of the sendOnError property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSendOnError(Boolean value) { + this.sendOnError = value; + } + + /** + * Gets the value of the sendOnFailure property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isSendOnFailure() { + return sendOnFailure; + } + + /** + * Sets the value of the sendOnFailure property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSendOnFailure(Boolean value) { + this.sendOnFailure = value; + } + + /** + * Gets the value of the sendOnSuccess property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isSendOnSuccess() { + return sendOnSuccess; + } + + /** + * Sets the value of the sendOnSuccess property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSendOnSuccess(Boolean value) { + this.sendOnSuccess = value; + } + + /** + * Gets the value of the sendOnWarning property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isSendOnWarning() { + return sendOnWarning; + } + + /** + * Sets the value of the sendOnWarning property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSendOnWarning(Boolean value) { + this.sendOnWarning = value; + } + + /** + * Gets the value of the address property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAddress() { + return address; + } + + /** + * Sets the value of the address property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAddress(String value) { + this.address = value; + } + + /** + * Gets the value of the configuration property. + * + * @return + * possible object is + * {@link Notifier.Configuration } + * + */ + public Notifier.Configuration getConfiguration() { + return configuration; + } + + /** + * Sets the value of the configuration property. + * + * @param value + * allowed object is + * {@link Notifier.Configuration } + * + */ + public void setConfiguration(Notifier.Configuration value) { + this.configuration = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Configuration { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java new file mode 100644 index 0000000..59d7716 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java @@ -0,0 +1,720 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the info.hubbitus.xjc.plugin.example package. + * <p>An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: info.hubbitus.xjc.plugin.example + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Project } + * + */ + public Project createProject() { + return new Project(); + } + + /** + * Create an instance of {@link Developer } + * + */ + public Developer createDeveloper() { + return new Developer(); + } + + /** + * Create an instance of {@link MailingList } + * + */ + public MailingList createMailingList() { + return new MailingList(); + } + + /** + * Create an instance of {@link ReportSet } + * + */ + public ReportSet createReportSet() { + return new ReportSet(); + } + + /** + * Create an instance of {@link ReportPlugin } + * + */ + public ReportPlugin createReportPlugin() { + return new ReportPlugin(); + } + + /** + * Create an instance of {@link PluginManagement } + * + */ + public PluginManagement createPluginManagement() { + return new PluginManagement(); + } + + /** + * Create an instance of {@link Resource } + * + */ + public Resource createResource() { + return new Resource(); + } + + /** + * Create an instance of {@link PluginExecution } + * + */ + public PluginExecution createPluginExecution() { + return new PluginExecution(); + } + + /** + * Create an instance of {@link Dependency } + * + */ + public Dependency createDependency() { + return new Dependency(); + } + + /** + * Create an instance of {@link Plugin } + * + */ + public Plugin createPlugin() { + return new Plugin(); + } + + /** + * Create an instance of {@link BuildBase } + * + */ + public BuildBase createBuildBase() { + return new BuildBase(); + } + + /** + * Create an instance of {@link Profile } + * + */ + public Profile createProfile() { + return new Profile(); + } + + /** + * Create an instance of {@link Notifier } + * + */ + public Notifier createNotifier() { + return new Notifier(); + } + + /** + * Create an instance of {@link Contributor } + * + */ + public Contributor createContributor() { + return new Contributor(); + } + + /** + * Create an instance of {@link Reporting } + * + */ + public Reporting createReporting() { + return new Reporting(); + } + + /** + * Create an instance of {@link Build } + * + */ + public Build createBuild() { + return new Build(); + } + + /** + * Create an instance of {@link DependencyManagement } + * + */ + public DependencyManagement createDependencyManagement() { + return new DependencyManagement(); + } + + /** + * Create an instance of {@link CiManagement } + * + */ + public CiManagement createCiManagement() { + return new CiManagement(); + } + + /** + * Create an instance of {@link Parent } + * + */ + public Parent createParent() { + return new Parent(); + } + + /** + * Create an instance of {@link Organization } + * + */ + public Organization createOrganization() { + return new Organization(); + } + + /** + * Create an instance of {@link Project.Licenses } + * + */ + public Project.Licenses createProjectLicenses() { + return new Project.Licenses(); + } + + /** + * Create an instance of {@link Project.Developers } + * + */ + public Project.Developers createProjectDevelopers() { + return new Project.Developers(); + } + + /** + * Create an instance of {@link Project.Contributors } + * + */ + public Project.Contributors createProjectContributors() { + return new Project.Contributors(); + } + + /** + * Create an instance of {@link Project.MailingLists } + * + */ + public Project.MailingLists createProjectMailingLists() { + return new Project.MailingLists(); + } + + /** + * Create an instance of {@link Prerequisites } + * + */ + public Prerequisites createPrerequisites() { + return new Prerequisites(); + } + + /** + * Create an instance of {@link Project.Modules } + * + */ + public Project.Modules createProjectModules() { + return new Project.Modules(); + } + + /** + * Create an instance of {@link Scm } + * + */ + public Scm createScm() { + return new Scm(); + } + + /** + * Create an instance of {@link IssueManagement } + * + */ + public IssueManagement createIssueManagement() { + return new IssueManagement(); + } + + /** + * Create an instance of {@link DistributionManagement } + * + */ + public DistributionManagement createDistributionManagement() { + return new DistributionManagement(); + } + + /** + * Create an instance of {@link Project.Properties } + * + */ + public Project.Properties createProjectProperties() { + return new Project.Properties(); + } + + /** + * Create an instance of {@link Project.Dependencies } + * + */ + public Project.Dependencies createProjectDependencies() { + return new Project.Dependencies(); + } + + /** + * Create an instance of {@link Project.Repositories } + * + */ + public Project.Repositories createProjectRepositories() { + return new Project.Repositories(); + } + + /** + * Create an instance of {@link Project.PluginRepositories } + * + */ + public Project.PluginRepositories createProjectPluginRepositories() { + return new Project.PluginRepositories(); + } + + /** + * Create an instance of {@link Project.Reports } + * + */ + public Project.Reports createProjectReports() { + return new Project.Reports(); + } + + /** + * Create an instance of {@link Project.Profiles } + * + */ + public Project.Profiles createProjectProfiles() { + return new Project.Profiles(); + } + + /** + * Create an instance of {@link Relocation } + * + */ + public Relocation createRelocation() { + return new Relocation(); + } + + /** + * Create an instance of {@link Site } + * + */ + public Site createSite() { + return new Site(); + } + + /** + * Create an instance of {@link DeploymentRepository } + * + */ + public DeploymentRepository createDeploymentRepository() { + return new DeploymentRepository(); + } + + /** + * Create an instance of {@link RepositoryPolicy } + * + */ + public RepositoryPolicy createRepositoryPolicy() { + return new RepositoryPolicy(); + } + + /** + * Create an instance of {@link Repository } + * + */ + public Repository createRepository() { + return new Repository(); + } + + /** + * Create an instance of {@link Exclusion } + * + */ + public Exclusion createExclusion() { + return new Exclusion(); + } + + /** + * Create an instance of {@link Activation } + * + */ + public Activation createActivation() { + return new Activation(); + } + + /** + * Create an instance of {@link ActivationProperty } + * + */ + public ActivationProperty createActivationProperty() { + return new ActivationProperty(); + } + + /** + * Create an instance of {@link ActivationOS } + * + */ + public ActivationOS createActivationOS() { + return new ActivationOS(); + } + + /** + * Create an instance of {@link ActivationFile } + * + */ + public ActivationFile createActivationFile() { + return new ActivationFile(); + } + + /** + * Create an instance of {@link Extension } + * + */ + public Extension createExtension() { + return new Extension(); + } + + /** + * Create an instance of {@link License } + * + */ + public License createLicense() { + return new License(); + } + + /** + * Create an instance of {@link Customer } + * + */ + public Customer createCustomer() { + return new Customer(); + } + + /** + * Create an instance of {@link Developer.Roles } + * + */ + public Developer.Roles createDeveloperRoles() { + return new Developer.Roles(); + } + + /** + * Create an instance of {@link Developer.Properties } + * + */ + public Developer.Properties createDeveloperProperties() { + return new Developer.Properties(); + } + + /** + * Create an instance of {@link MailingList.OtherArchives } + * + */ + public MailingList.OtherArchives createMailingListOtherArchives() { + return new MailingList.OtherArchives(); + } + + /** + * Create an instance of {@link ReportSet.Reports } + * + */ + public ReportSet.Reports createReportSetReports() { + return new ReportSet.Reports(); + } + + /** + * Create an instance of {@link ReportSet.Configuration } + * + */ + public ReportSet.Configuration createReportSetConfiguration() { + return new ReportSet.Configuration(); + } + + /** + * Create an instance of {@link ReportPlugin.ReportSets } + * + */ + public ReportPlugin.ReportSets createReportPluginReportSets() { + return new ReportPlugin.ReportSets(); + } + + /** + * Create an instance of {@link ReportPlugin.Configuration } + * + */ + public ReportPlugin.Configuration createReportPluginConfiguration() { + return new ReportPlugin.Configuration(); + } + + /** + * Create an instance of {@link PluginManagement.Plugins } + * + */ + public PluginManagement.Plugins createPluginManagementPlugins() { + return new PluginManagement.Plugins(); + } + + /** + * Create an instance of {@link Resource.Includes } + * + */ + public Resource.Includes createResourceIncludes() { + return new Resource.Includes(); + } + + /** + * Create an instance of {@link Resource.Excludes } + * + */ + public Resource.Excludes createResourceExcludes() { + return new Resource.Excludes(); + } + + /** + * Create an instance of {@link PluginExecution.Goals } + * + */ + public PluginExecution.Goals createPluginExecutionGoals() { + return new PluginExecution.Goals(); + } + + /** + * Create an instance of {@link PluginExecution.Configuration } + * + */ + public PluginExecution.Configuration createPluginExecutionConfiguration() { + return new PluginExecution.Configuration(); + } + + /** + * Create an instance of {@link Dependency.Exclusions } + * + */ + public Dependency.Exclusions createDependencyExclusions() { + return new Dependency.Exclusions(); + } + + /** + * Create an instance of {@link Plugin.Executions } + * + */ + public Plugin.Executions createPluginExecutions() { + return new Plugin.Executions(); + } + + /** + * Create an instance of {@link Plugin.Dependencies } + * + */ + public Plugin.Dependencies createPluginDependencies() { + return new Plugin.Dependencies(); + } + + /** + * Create an instance of {@link Plugin.Goals } + * + */ + public Plugin.Goals createPluginGoals() { + return new Plugin.Goals(); + } + + /** + * Create an instance of {@link Plugin.Configuration } + * + */ + public Plugin.Configuration createPluginConfiguration() { + return new Plugin.Configuration(); + } + + /** + * Create an instance of {@link BuildBase.Resources } + * + */ + public BuildBase.Resources createBuildBaseResources() { + return new BuildBase.Resources(); + } + + /** + * Create an instance of {@link BuildBase.TestResources } + * + */ + public BuildBase.TestResources createBuildBaseTestResources() { + return new BuildBase.TestResources(); + } + + /** + * Create an instance of {@link BuildBase.Filters } + * + */ + public BuildBase.Filters createBuildBaseFilters() { + return new BuildBase.Filters(); + } + + /** + * Create an instance of {@link BuildBase.Plugins } + * + */ + public BuildBase.Plugins createBuildBasePlugins() { + return new BuildBase.Plugins(); + } + + /** + * Create an instance of {@link Profile.Modules } + * + */ + public Profile.Modules createProfileModules() { + return new Profile.Modules(); + } + + /** + * Create an instance of {@link Profile.Properties } + * + */ + public Profile.Properties createProfileProperties() { + return new Profile.Properties(); + } + + /** + * Create an instance of {@link Profile.Dependencies } + * + */ + public Profile.Dependencies createProfileDependencies() { + return new Profile.Dependencies(); + } + + /** + * Create an instance of {@link Profile.Repositories } + * + */ + public Profile.Repositories createProfileRepositories() { + return new Profile.Repositories(); + } + + /** + * Create an instance of {@link Profile.PluginRepositories } + * + */ + public Profile.PluginRepositories createProfilePluginRepositories() { + return new Profile.PluginRepositories(); + } + + /** + * Create an instance of {@link Profile.Reports } + * + */ + public Profile.Reports createProfileReports() { + return new Profile.Reports(); + } + + /** + * Create an instance of {@link Notifier.Configuration } + * + */ + public Notifier.Configuration createNotifierConfiguration() { + return new Notifier.Configuration(); + } + + /** + * Create an instance of {@link Contributor.Roles } + * + */ + public Contributor.Roles createContributorRoles() { + return new Contributor.Roles(); + } + + /** + * Create an instance of {@link Contributor.Properties } + * + */ + public Contributor.Properties createContributorProperties() { + return new Contributor.Properties(); + } + + /** + * Create an instance of {@link Reporting.Plugins } + * + */ + public Reporting.Plugins createReportingPlugins() { + return new Reporting.Plugins(); + } + + /** + * Create an instance of {@link Build.Extensions } + * + */ + public Build.Extensions createBuildExtensions() { + return new Build.Extensions(); + } + + /** + * Create an instance of {@link Build.Resources } + * + */ + public Build.Resources createBuildResources() { + return new Build.Resources(); + } + + /** + * Create an instance of {@link Build.TestResources } + * + */ + public Build.TestResources createBuildTestResources() { + return new Build.TestResources(); + } + + /** + * Create an instance of {@link Build.Filters } + * + */ + public Build.Filters createBuildFilters() { + return new Build.Filters(); + } + + /** + * Create an instance of {@link Build.Plugins } + * + */ + public Build.Plugins createBuildPlugins() { + return new Build.Plugins(); + } + + /** + * Create an instance of {@link DependencyManagement.Dependencies } + * + */ + public DependencyManagement.Dependencies createDependencyManagementDependencies() { + return new DependencyManagement.Dependencies(); + } + + /** + * Create an instance of {@link CiManagement.Notifiers } + * + */ + public CiManagement.Notifiers createCiManagementNotifiers() { + return new CiManagement.Notifiers(); + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java new file mode 100644 index 0000000..4f00020 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java @@ -0,0 +1,95 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Specifies the organization that produces this project. + * + * <p>Java class for Organization complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Organization"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Organization", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Specifies the organization that produces this project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") +public class Organization { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The full name of the organization.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL to the organization's home page.") + protected String url; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java new file mode 100644 index 0000000..7623920 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java @@ -0,0 +1,157 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * + * + * The <code>&lt;parent&gt;</code> element contains information required to locate the parent project from which + * this project will inherit from. + * <strong>Note:</strong> The children of this element are not interpolated and must be given as literal values. + * + * + * + * <p>Java class for Parent complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Parent"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="relativePath" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Parent", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <parent> element contains information required to locate the parent project from which\n this project will inherit from.\n Note: The children of this element are not interpolated and must be given as literal values.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") +public class Parent { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The group id of the parent project to inherit from.") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The artifact id of the parent project to inherit from.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The version of the parent project to inherit.") + protected String version; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "../pom.xml") + @XsdInfo(name = "The relative path of the parent pom.xml file within the check out.\n If not specified, it defaults to ../pom.xml.\n Maven looks for the parent POM first in this location on\n the filesystem, then the local repository, and lastly in the remote repo.\n relativePath allows you to select a different location,\n for example when your structure is flat, or deeper without an intermediate parent POM.\n However, the group ID, artifact ID and version are still required,\n and must match the file in the location given or it will revert to the repository for the POM.\n This feature is only for enhancing the development in a local checkout of that project.\n Set the value to an empty string in case you want to disable the feature and always resolve\n the parent POM from the repositories.") + protected String relativePath; + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * Gets the value of the relativePath property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRelativePath() { + return relativePath; + } + + /** + * Sets the value of the relativePath property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRelativePath(String value) { + this.relativePath = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java new file mode 100644 index 0000000..5d4ff74 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java @@ -0,0 +1,587 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * + * + * The <code>&lt;plugin&gt;</code> element contains informations required for a plugin. + * + * + * + * <p>Java class for Plugin complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Plugin"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="extensions" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="executions" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="execution" type="{http://maven.apache.org/POM/4.0.0}PluginExecution" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="dependencies" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="goals" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="configuration" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Plugin", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <plugin> element contains informations required for a plugin.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Plugin { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "org.apache.maven.plugins") + @XsdInfo(name = "The group ID of the plugin in the repository.") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The artifact ID of the plugin in the repository.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The version (or valid range of versions) of the plugin to be used.") + protected String version; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether to load Maven extensions (such as packaging and type handlers) from\n this plugin. For performance reasons, this should only be enabled when necessary. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") + protected String extensions; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Multiple specifications of a set of goals to execute during the build\n lifecycle, each having (possibly) a different configuration.") + protected Plugin.Executions executions; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Additional dependencies that this project needs to introduce to the plugin's\n classloader.") + protected Plugin.Dependencies dependencies; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Deprecated. Unused by Maven.") + protected Plugin.Goals goals; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") + protected String inherited; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") + protected Plugin.Configuration configuration; + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * Gets the value of the extensions property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getExtensions() { + return extensions; + } + + /** + * Sets the value of the extensions property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setExtensions(String value) { + this.extensions = value; + } + + /** + * Gets the value of the executions property. + * + * @return + * possible object is + * {@link Plugin.Executions } + * + */ + public Plugin.Executions getExecutions() { + return executions; + } + + /** + * Sets the value of the executions property. + * + * @param value + * allowed object is + * {@link Plugin.Executions } + * + */ + public void setExecutions(Plugin.Executions value) { + this.executions = value; + } + + /** + * Gets the value of the dependencies property. + * + * @return + * possible object is + * {@link Plugin.Dependencies } + * + */ + public Plugin.Dependencies getDependencies() { + return dependencies; + } + + /** + * Sets the value of the dependencies property. + * + * @param value + * allowed object is + * {@link Plugin.Dependencies } + * + */ + public void setDependencies(Plugin.Dependencies value) { + this.dependencies = value; + } + + /** + * Gets the value of the goals property. + * + * @return + * possible object is + * {@link Plugin.Goals } + * + */ + public Plugin.Goals getGoals() { + return goals; + } + + /** + * Sets the value of the goals property. + * + * @param value + * allowed object is + * {@link Plugin.Goals } + * + */ + public void setGoals(Plugin.Goals value) { + this.goals = value; + } + + /** + * Gets the value of the inherited property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInherited() { + return inherited; + } + + /** + * Sets the value of the inherited property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInherited(String value) { + this.inherited = value; + } + + /** + * Gets the value of the configuration property. + * + * @return + * possible object is + * {@link Plugin.Configuration } + * + */ + public Plugin.Configuration getConfiguration() { + return configuration; + } + + /** + * Sets the value of the configuration property. + * + * @param value + * allowed object is + * {@link Plugin.Configuration } + * + */ + public void setConfiguration(Plugin.Configuration value) { + this.configuration = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Configuration { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "dependencies" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Dependencies { + + @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List dependencies; + + /** + * Gets the value of the dependencies property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the dependencies property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getDependencies().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Dependency } + * + * + */ + public List getDependencies() { + if (dependencies == null) { + dependencies = new ArrayList(); + } + return this.dependencies; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="execution" type="{http://maven.apache.org/POM/4.0.0}PluginExecution" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "executions" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Executions { + + @XmlElement(name = "execution", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List executions; + + /** + * Gets the value of the executions property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the executions property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getExecutions().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link PluginExecution } + * + * + */ + public List getExecutions() { + if (executions == null) { + executions = new ArrayList(); + } + return this.executions; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Goals { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java new file mode 100644 index 0000000..34c4a50 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java @@ -0,0 +1,332 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * + * + * The <code>&lt;execution&gt;</code> element contains informations required for the + * execution of a plugin. + * + * + * + * <p>Java class for PluginExecution complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="PluginExecution"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="phase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="goals" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="goal" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="configuration" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "PluginExecution", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <execution> element contains informations required for the\n execution of a plugin.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class PluginExecution { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") + @XsdInfo(name = "The identifier of this execution for labelling the goals during the build,\n and for matching executions to merge during inheritance and profile injection.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The build lifecycle phase to bind the goals in this execution to. If omitted,\n the goals will be bound to the default phase specified by the plugin.") + protected String phase; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The goals to execute with the given configuration.") + protected PluginExecution.Goals goals; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") + protected String inherited; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") + protected PluginExecution.Configuration configuration; + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the phase property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPhase() { + return phase; + } + + /** + * Sets the value of the phase property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPhase(String value) { + this.phase = value; + } + + /** + * Gets the value of the goals property. + * + * @return + * possible object is + * {@link PluginExecution.Goals } + * + */ + public PluginExecution.Goals getGoals() { + return goals; + } + + /** + * Sets the value of the goals property. + * + * @param value + * allowed object is + * {@link PluginExecution.Goals } + * + */ + public void setGoals(PluginExecution.Goals value) { + this.goals = value; + } + + /** + * Gets the value of the inherited property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInherited() { + return inherited; + } + + /** + * Sets the value of the inherited property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInherited(String value) { + this.inherited = value; + } + + /** + * Gets the value of the configuration property. + * + * @return + * possible object is + * {@link PluginExecution.Configuration } + * + */ + public PluginExecution.Configuration getConfiguration() { + return configuration; + } + + /** + * Sets the value of the configuration property. + * + * @param value + * allowed object is + * {@link PluginExecution.Configuration } + * + */ + public void setConfiguration(PluginExecution.Configuration value) { + this.configuration = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Configuration { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="goal" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "goals" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Goals { + + @XmlElement(name = "goal", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List goals; + + /** + * Gets the value of the goals property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the goals property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getGoals().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getGoals() { + if (goals == null) { + goals = new ArrayList(); + } + return this.goals; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java new file mode 100644 index 0000000..ab3393c --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java @@ -0,0 +1,142 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Section for management of default plugin information for use in a group of POMs. + * + * + * <p>Java class for PluginManagement complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="PluginManagement"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="plugins" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "PluginManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Section for management of default plugin information for use in a group of POMs.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class PluginManagement { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The list of plugins to use.") + protected PluginManagement.Plugins plugins; + + /** + * Gets the value of the plugins property. + * + * @return + * possible object is + * {@link PluginManagement.Plugins } + * + */ + public PluginManagement.Plugins getPlugins() { + return plugins; + } + + /** + * Sets the value of the plugins property. + * + * @param value + * allowed object is + * {@link PluginManagement.Plugins } + * + */ + public void setPlugins(PluginManagement.Plugins value) { + this.plugins = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "plugins" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Plugins { + + @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List plugins; + + /** + * Gets the value of the plugins property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the plugins property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getPlugins().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Plugin } + * + * + */ + public List getPlugins() { + if (plugins == null) { + plugins = new ArrayList(); + } + return this.plugins; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java new file mode 100644 index 0000000..3b6cd7b --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java @@ -0,0 +1,67 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Describes the prerequisites a project can have. + * + * <p>Java class for Prerequisites complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Prerequisites"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="maven" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Prerequisites", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Describes the prerequisites a project can have.", xsdElementPart = "\n \n \n \n \n \n \n \n") +public class Prerequisites { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "2.0") + @XsdInfo(name = "For a plugin project, the minimum version of Maven required to use\n the resulting plugin.
\n For specifying the minimum version of Maven required to build a\n project, this element is deprecated. Use the Maven Enforcer\n Plugin's requireMavenVersion\n rule instead.") + protected String maven; + + /** + * Gets the value of the maven property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMaven() { + return maven; + } + + /** + * Sets the value of the maven property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMaven(String value) { + this.maven = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java new file mode 100644 index 0000000..3ee6b7a --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java @@ -0,0 +1,812 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * Modifications to the build process which is activated based on environmental + * parameters or command line arguments. + * + * <p>Java class for Profile complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Profile"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="activation" type="{http://maven.apache.org/POM/4.0.0}Activation" minOccurs="0"/&gt; + * &lt;element name="build" type="{http://maven.apache.org/POM/4.0.0}BuildBase" minOccurs="0"/&gt; + * &lt;element name="modules" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="distributionManagement" type="{http://maven.apache.org/POM/4.0.0}DistributionManagement" minOccurs="0"/&gt; + * &lt;element name="properties" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="dependencyManagement" type="{http://maven.apache.org/POM/4.0.0}DependencyManagement" minOccurs="0"/&gt; + * &lt;element name="dependencies" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="repositories" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="pluginRepositories" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="reports" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="reporting" type="{http://maven.apache.org/POM/4.0.0}Reporting" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Profile", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Modifications to the build process which is activated based on environmental\n parameters or command line arguments.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Profile { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") + @XsdInfo(name = "The identifier of this build profile. This is used for command line\n activation, and identifies profiles to be merged.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The conditional logic which will automatically trigger the inclusion of this\n profile.") + protected Activation activation; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Information required to build the project.") + protected BuildBase build; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The modules (sometimes called subprojects) to build as a part of this\n project. Each module listed is a relative path to the directory containing the module.\n To be consistent with the way default urls are calculated from parent, it is recommended\n to have module names match artifact ids.") + protected Profile.Modules modules; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Distribution information for a project that enables deployment of the site\n and artifacts to remote web servers and repositories respectively.") + protected DistributionManagement distributionManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Properties that can be used throughout the POM as a substitution, and\n are used as filters in resources if enabled.\n The format is <name>value</name>.") + protected Profile.Properties properties; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Default dependency information for projects that inherit from this one. The\n dependencies in this section are not immediately resolved. Instead, when a POM derived\n from this one declares a dependency described by a matching groupId and artifactId, the\n version and other values from this section are used for that dependency if they were not\n already specified.") + protected DependencyManagement dependencyManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the dependencies associated with a\n project.\n These dependencies are used to construct a classpath for your\n project during the build process. They are automatically downloaded from the\n repositories defined in this project.\n See the\n dependency mechanism for more information.") + protected Profile.Dependencies dependencies; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The lists of the remote repositories for discovering dependencies and\n extensions.") + protected Profile.Repositories repositories; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The lists of the remote repositories for discovering plugins for builds and\n reports.") + protected Profile.PluginRepositories pluginRepositories; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Deprecated. Now ignored by Maven.") + protected Profile.Reports reports; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element includes the specification of report plugins to use\n to generate the reports on the Maven-generated site.\n These reports will be run when a user executes mvn site.\n All of the reports will be included in the navigation bar for browsing.") + protected Reporting reporting; + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the activation property. + * + * @return + * possible object is + * {@link Activation } + * + */ + public Activation getActivation() { + return activation; + } + + /** + * Sets the value of the activation property. + * + * @param value + * allowed object is + * {@link Activation } + * + */ + public void setActivation(Activation value) { + this.activation = value; + } + + /** + * Gets the value of the build property. + * + * @return + * possible object is + * {@link BuildBase } + * + */ + public BuildBase getBuild() { + return build; + } + + /** + * Sets the value of the build property. + * + * @param value + * allowed object is + * {@link BuildBase } + * + */ + public void setBuild(BuildBase value) { + this.build = value; + } + + /** + * Gets the value of the modules property. + * + * @return + * possible object is + * {@link Profile.Modules } + * + */ + public Profile.Modules getModules() { + return modules; + } + + /** + * Sets the value of the modules property. + * + * @param value + * allowed object is + * {@link Profile.Modules } + * + */ + public void setModules(Profile.Modules value) { + this.modules = value; + } + + /** + * Gets the value of the distributionManagement property. + * + * @return + * possible object is + * {@link DistributionManagement } + * + */ + public DistributionManagement getDistributionManagement() { + return distributionManagement; + } + + /** + * Sets the value of the distributionManagement property. + * + * @param value + * allowed object is + * {@link DistributionManagement } + * + */ + public void setDistributionManagement(DistributionManagement value) { + this.distributionManagement = value; + } + + /** + * Gets the value of the properties property. + * + * @return + * possible object is + * {@link Profile.Properties } + * + */ + public Profile.Properties getProperties() { + return properties; + } + + /** + * Sets the value of the properties property. + * + * @param value + * allowed object is + * {@link Profile.Properties } + * + */ + public void setProperties(Profile.Properties value) { + this.properties = value; + } + + /** + * Gets the value of the dependencyManagement property. + * + * @return + * possible object is + * {@link DependencyManagement } + * + */ + public DependencyManagement getDependencyManagement() { + return dependencyManagement; + } + + /** + * Sets the value of the dependencyManagement property. + * + * @param value + * allowed object is + * {@link DependencyManagement } + * + */ + public void setDependencyManagement(DependencyManagement value) { + this.dependencyManagement = value; + } + + /** + * Gets the value of the dependencies property. + * + * @return + * possible object is + * {@link Profile.Dependencies } + * + */ + public Profile.Dependencies getDependencies() { + return dependencies; + } + + /** + * Sets the value of the dependencies property. + * + * @param value + * allowed object is + * {@link Profile.Dependencies } + * + */ + public void setDependencies(Profile.Dependencies value) { + this.dependencies = value; + } + + /** + * Gets the value of the repositories property. + * + * @return + * possible object is + * {@link Profile.Repositories } + * + */ + public Profile.Repositories getRepositories() { + return repositories; + } + + /** + * Sets the value of the repositories property. + * + * @param value + * allowed object is + * {@link Profile.Repositories } + * + */ + public void setRepositories(Profile.Repositories value) { + this.repositories = value; + } + + /** + * Gets the value of the pluginRepositories property. + * + * @return + * possible object is + * {@link Profile.PluginRepositories } + * + */ + public Profile.PluginRepositories getPluginRepositories() { + return pluginRepositories; + } + + /** + * Sets the value of the pluginRepositories property. + * + * @param value + * allowed object is + * {@link Profile.PluginRepositories } + * + */ + public void setPluginRepositories(Profile.PluginRepositories value) { + this.pluginRepositories = value; + } + + /** + * Gets the value of the reports property. + * + * @return + * possible object is + * {@link Profile.Reports } + * + */ + public Profile.Reports getReports() { + return reports; + } + + /** + * Sets the value of the reports property. + * + * @param value + * allowed object is + * {@link Profile.Reports } + * + */ + public void setReports(Profile.Reports value) { + this.reports = value; + } + + /** + * Gets the value of the reporting property. + * + * @return + * possible object is + * {@link Reporting } + * + */ + public Reporting getReporting() { + return reporting; + } + + /** + * Sets the value of the reporting property. + * + * @param value + * allowed object is + * {@link Reporting } + * + */ + public void setReporting(Reporting value) { + this.reporting = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "dependencies" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Dependencies { + + @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List dependencies; + + /** + * Gets the value of the dependencies property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the dependencies property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getDependencies().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Dependency } + * + * + */ + public List getDependencies() { + if (dependencies == null) { + dependencies = new ArrayList(); + } + return this.dependencies; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "modules" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Modules { + + @XmlElement(name = "module", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List modules; + + /** + * Gets the value of the modules property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the modules property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getModules().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getModules() { + if (modules == null) { + modules = new ArrayList(); + } + return this.modules; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "pluginRepositories" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class PluginRepositories { + + @XmlElement(name = "pluginRepository", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List pluginRepositories; + + /** + * Gets the value of the pluginRepositories property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the pluginRepositories property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getPluginRepositories().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Repository } + * + * + */ + public List getPluginRepositories() { + if (pluginRepositories == null) { + pluginRepositories = new ArrayList(); + } + return this.pluginRepositories; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Properties { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Reports { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "repositories" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Repositories { + + @XmlElement(name = "repository", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List repositories; + + /** + * Gets the value of the repositories property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the repositories property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getRepositories().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Repository } + * + * + */ + public List getRepositories() { + if (repositories == null) { + repositories = new ArrayList(); + } + return this.repositories; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java new file mode 100644 index 0000000..8c2dd82 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java @@ -0,0 +1,1682 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * + * + * The <code>&lt;project&gt;</code> element is the root of the descriptor. + * The following table lists all of the possible child elements. + * + * + * + * <p>Java class for Model complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Model"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="modelVersion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="parent" type="{http://maven.apache.org/POM/4.0.0}Parent" minOccurs="0"/&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="packaging" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="inceptionYear" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="organization" type="{http://maven.apache.org/POM/4.0.0}Organization" minOccurs="0"/&gt; + * &lt;element name="licenses" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="license" type="{http://maven.apache.org/POM/4.0.0}License" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="developers" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="developer" type="{http://maven.apache.org/POM/4.0.0}Developer" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="contributors" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="contributor" type="{http://maven.apache.org/POM/4.0.0}Contributor" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="mailingLists" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="mailingList" type="{http://maven.apache.org/POM/4.0.0}MailingList" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="prerequisites" type="{http://maven.apache.org/POM/4.0.0}Prerequisites" minOccurs="0"/&gt; + * &lt;element name="modules" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="scm" type="{http://maven.apache.org/POM/4.0.0}Scm" minOccurs="0"/&gt; + * &lt;element name="issueManagement" type="{http://maven.apache.org/POM/4.0.0}IssueManagement" minOccurs="0"/&gt; + * &lt;element name="ciManagement" type="{http://maven.apache.org/POM/4.0.0}CiManagement" minOccurs="0"/&gt; + * &lt;element name="distributionManagement" type="{http://maven.apache.org/POM/4.0.0}DistributionManagement" minOccurs="0"/&gt; + * &lt;element name="properties" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="dependencyManagement" type="{http://maven.apache.org/POM/4.0.0}DependencyManagement" minOccurs="0"/&gt; + * &lt;element name="dependencies" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="repositories" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="pluginRepositories" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="build" type="{http://maven.apache.org/POM/4.0.0}Build" minOccurs="0"/&gt; + * &lt;element name="reports" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="reporting" type="{http://maven.apache.org/POM/4.0.0}Reporting" minOccurs="0"/&gt; + * &lt;element name="profiles" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="profile" type="{http://maven.apache.org/POM/4.0.0}Profile" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Model", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XmlRootElement(name = "project", namespace = "http://maven.apache.org/POM/4.0.0") +@XsdInfo(name = "The <project> element is the root of the descriptor.\n The following table lists all of the possible child elements.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Project { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Declares to which version of project descriptor this POM conforms.") + protected String modelVersion; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The location of the parent project, if one exists. Values from the parent\n project will be the default for this project if they are left unspecified. The location\n is given as a group ID, artifact ID and version.") + protected Parent parent; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A universally unique identifier for a project. It is normal to\n use a fully-qualified package name to distinguish it from other\n projects with a similar name (eg. org.apache.maven).") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The identifier for this artifact that is unique within the group given by the\n group ID. An artifact is something that is either produced or used by a project.\n Examples of artifacts produced by Maven for a project include: JARs, source and binary\n distributions, and WARs.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The current version of the artifact produced by this project.") + protected String version; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "jar") + @XsdInfo(name = "The type of artifact this project produces, for example jar\n war\n ear\n pom.\n Plugins can create their own packaging, and\n therefore their own packaging types,\n so this list does not contain all possible types.") + protected String packaging; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The full name of the project.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A detailed description of the project, used by Maven whenever it needs to\n describe the project, such as on the web site. While this element can be specified as\n CDATA to enable the use of HTML tags within the description, it is discouraged to allow\n plain text representation. If you need to modify the index page of the generated web\n site, you are able to specify your own instead of adjusting this text.") + protected String description; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL to the project's homepage.\n
Default value is: parent value [+ path adjustment] + artifactId") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The year of the project's inception, specified with 4 digits. This value is\n used when generating copyright notices as well as being informational.") + protected String inceptionYear; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes various attributes of the organization to which the\n project belongs. These attributes are utilized when documentation is created (for\n copyright notices and links).") + protected Organization organization; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the licenses for this project.\n Each license is described by a license element, which\n is then described by additional elements.\n Projects should only list the license(s) that applies to the project\n and not the licenses that apply to dependencies.\n If multiple licenses are listed, it is assumed that the user can select\n any of them, not that they must accept all.") + protected Project.Licenses licenses; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Describes the committers of a project.") + protected Project.Developers developers; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Describes the contributors to a project that are not yet committers.") + protected Project.Contributors contributors; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Contains information about a project's mailing lists.") + protected Project.MailingLists mailingLists; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Describes the prerequisites in the build environment for this project.") + protected Prerequisites prerequisites; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The modules (sometimes called subprojects) to build as a part of this\n project. Each module listed is a relative path to the directory containing the module.\n To be consistent with the way default urls are calculated from parent, it is recommended\n to have module names match artifact ids.") + protected Project.Modules modules; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Specification for the SCM used by the project, such as CVS, Subversion, etc.") + protected Scm scm; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The project's issue management system information.") + protected IssueManagement issueManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The project's continuous integration information.") + protected CiManagement ciManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Distribution information for a project that enables deployment of the site\n and artifacts to remote web servers and repositories respectively.") + protected DistributionManagement distributionManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Properties that can be used throughout the POM as a substitution, and\n are used as filters in resources if enabled.\n The format is <name>value</name>.") + protected Project.Properties properties; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Default dependency information for projects that inherit from this one. The\n dependencies in this section are not immediately resolved. Instead, when a POM derived\n from this one declares a dependency described by a matching groupId and artifactId, the\n version and other values from this section are used for that dependency if they were not\n already specified.") + protected DependencyManagement dependencyManagement; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element describes all of the dependencies associated with a\n project.\n These dependencies are used to construct a classpath for your\n project during the build process. They are automatically downloaded from the\n repositories defined in this project.\n See the\n dependency mechanism for more information.") + protected Project.Dependencies dependencies; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The lists of the remote repositories for discovering dependencies and\n extensions.") + protected Project.Repositories repositories; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The lists of the remote repositories for discovering plugins for builds and\n reports.") + protected Project.PluginRepositories pluginRepositories; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Information required to build the project.") + protected Build build; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Deprecated. Now ignored by Maven.") + protected Project.Reports reports; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "This element includes the specification of report plugins to use\n to generate the reports on the Maven-generated site.\n These reports will be run when a user executes mvn site.\n All of the reports will be included in the navigation bar for browsing.") + protected Reporting reporting; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A listing of project-local build profiles which will modify the build process\n when activated.") + protected Project.Profiles profiles; + + /** + * Gets the value of the modelVersion property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getModelVersion() { + return modelVersion; + } + + /** + * Sets the value of the modelVersion property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setModelVersion(String value) { + this.modelVersion = value; + } + + /** + * Gets the value of the parent property. + * + * @return + * possible object is + * {@link Parent } + * + */ + public Parent getParent() { + return parent; + } + + /** + * Sets the value of the parent property. + * + * @param value + * allowed object is + * {@link Parent } + * + */ + public void setParent(Parent value) { + this.parent = value; + } + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * Gets the value of the packaging property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPackaging() { + return packaging; + } + + /** + * Sets the value of the packaging property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPackaging(String value) { + this.packaging = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the description property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescription() { + return description; + } + + /** + * Sets the value of the description property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescription(String value) { + this.description = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the inceptionYear property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInceptionYear() { + return inceptionYear; + } + + /** + * Sets the value of the inceptionYear property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInceptionYear(String value) { + this.inceptionYear = value; + } + + /** + * Gets the value of the organization property. + * + * @return + * possible object is + * {@link Organization } + * + */ + public Organization getOrganization() { + return organization; + } + + /** + * Sets the value of the organization property. + * + * @param value + * allowed object is + * {@link Organization } + * + */ + public void setOrganization(Organization value) { + this.organization = value; + } + + /** + * Gets the value of the licenses property. + * + * @return + * possible object is + * {@link Project.Licenses } + * + */ + public Project.Licenses getLicenses() { + return licenses; + } + + /** + * Sets the value of the licenses property. + * + * @param value + * allowed object is + * {@link Project.Licenses } + * + */ + public void setLicenses(Project.Licenses value) { + this.licenses = value; + } + + /** + * Gets the value of the developers property. + * + * @return + * possible object is + * {@link Project.Developers } + * + */ + public Project.Developers getDevelopers() { + return developers; + } + + /** + * Sets the value of the developers property. + * + * @param value + * allowed object is + * {@link Project.Developers } + * + */ + public void setDevelopers(Project.Developers value) { + this.developers = value; + } + + /** + * Gets the value of the contributors property. + * + * @return + * possible object is + * {@link Project.Contributors } + * + */ + public Project.Contributors getContributors() { + return contributors; + } + + /** + * Sets the value of the contributors property. + * + * @param value + * allowed object is + * {@link Project.Contributors } + * + */ + public void setContributors(Project.Contributors value) { + this.contributors = value; + } + + /** + * Gets the value of the mailingLists property. + * + * @return + * possible object is + * {@link Project.MailingLists } + * + */ + public Project.MailingLists getMailingLists() { + return mailingLists; + } + + /** + * Sets the value of the mailingLists property. + * + * @param value + * allowed object is + * {@link Project.MailingLists } + * + */ + public void setMailingLists(Project.MailingLists value) { + this.mailingLists = value; + } + + /** + * Gets the value of the prerequisites property. + * + * @return + * possible object is + * {@link Prerequisites } + * + */ + public Prerequisites getPrerequisites() { + return prerequisites; + } + + /** + * Sets the value of the prerequisites property. + * + * @param value + * allowed object is + * {@link Prerequisites } + * + */ + public void setPrerequisites(Prerequisites value) { + this.prerequisites = value; + } + + /** + * Gets the value of the modules property. + * + * @return + * possible object is + * {@link Project.Modules } + * + */ + public Project.Modules getModules() { + return modules; + } + + /** + * Sets the value of the modules property. + * + * @param value + * allowed object is + * {@link Project.Modules } + * + */ + public void setModules(Project.Modules value) { + this.modules = value; + } + + /** + * Gets the value of the scm property. + * + * @return + * possible object is + * {@link Scm } + * + */ + public Scm getScm() { + return scm; + } + + /** + * Sets the value of the scm property. + * + * @param value + * allowed object is + * {@link Scm } + * + */ + public void setScm(Scm value) { + this.scm = value; + } + + /** + * Gets the value of the issueManagement property. + * + * @return + * possible object is + * {@link IssueManagement } + * + */ + public IssueManagement getIssueManagement() { + return issueManagement; + } + + /** + * Sets the value of the issueManagement property. + * + * @param value + * allowed object is + * {@link IssueManagement } + * + */ + public void setIssueManagement(IssueManagement value) { + this.issueManagement = value; + } + + /** + * Gets the value of the ciManagement property. + * + * @return + * possible object is + * {@link CiManagement } + * + */ + public CiManagement getCiManagement() { + return ciManagement; + } + + /** + * Sets the value of the ciManagement property. + * + * @param value + * allowed object is + * {@link CiManagement } + * + */ + public void setCiManagement(CiManagement value) { + this.ciManagement = value; + } + + /** + * Gets the value of the distributionManagement property. + * + * @return + * possible object is + * {@link DistributionManagement } + * + */ + public DistributionManagement getDistributionManagement() { + return distributionManagement; + } + + /** + * Sets the value of the distributionManagement property. + * + * @param value + * allowed object is + * {@link DistributionManagement } + * + */ + public void setDistributionManagement(DistributionManagement value) { + this.distributionManagement = value; + } + + /** + * Gets the value of the properties property. + * + * @return + * possible object is + * {@link Project.Properties } + * + */ + public Project.Properties getProperties() { + return properties; + } + + /** + * Sets the value of the properties property. + * + * @param value + * allowed object is + * {@link Project.Properties } + * + */ + public void setProperties(Project.Properties value) { + this.properties = value; + } + + /** + * Gets the value of the dependencyManagement property. + * + * @return + * possible object is + * {@link DependencyManagement } + * + */ + public DependencyManagement getDependencyManagement() { + return dependencyManagement; + } + + /** + * Sets the value of the dependencyManagement property. + * + * @param value + * allowed object is + * {@link DependencyManagement } + * + */ + public void setDependencyManagement(DependencyManagement value) { + this.dependencyManagement = value; + } + + /** + * Gets the value of the dependencies property. + * + * @return + * possible object is + * {@link Project.Dependencies } + * + */ + public Project.Dependencies getDependencies() { + return dependencies; + } + + /** + * Sets the value of the dependencies property. + * + * @param value + * allowed object is + * {@link Project.Dependencies } + * + */ + public void setDependencies(Project.Dependencies value) { + this.dependencies = value; + } + + /** + * Gets the value of the repositories property. + * + * @return + * possible object is + * {@link Project.Repositories } + * + */ + public Project.Repositories getRepositories() { + return repositories; + } + + /** + * Sets the value of the repositories property. + * + * @param value + * allowed object is + * {@link Project.Repositories } + * + */ + public void setRepositories(Project.Repositories value) { + this.repositories = value; + } + + /** + * Gets the value of the pluginRepositories property. + * + * @return + * possible object is + * {@link Project.PluginRepositories } + * + */ + public Project.PluginRepositories getPluginRepositories() { + return pluginRepositories; + } + + /** + * Sets the value of the pluginRepositories property. + * + * @param value + * allowed object is + * {@link Project.PluginRepositories } + * + */ + public void setPluginRepositories(Project.PluginRepositories value) { + this.pluginRepositories = value; + } + + /** + * Gets the value of the build property. + * + * @return + * possible object is + * {@link Build } + * + */ + public Build getBuild() { + return build; + } + + /** + * Sets the value of the build property. + * + * @param value + * allowed object is + * {@link Build } + * + */ + public void setBuild(Build value) { + this.build = value; + } + + /** + * Gets the value of the reports property. + * + * @return + * possible object is + * {@link Project.Reports } + * + */ + public Project.Reports getReports() { + return reports; + } + + /** + * Sets the value of the reports property. + * + * @param value + * allowed object is + * {@link Project.Reports } + * + */ + public void setReports(Project.Reports value) { + this.reports = value; + } + + /** + * Gets the value of the reporting property. + * + * @return + * possible object is + * {@link Reporting } + * + */ + public Reporting getReporting() { + return reporting; + } + + /** + * Sets the value of the reporting property. + * + * @param value + * allowed object is + * {@link Reporting } + * + */ + public void setReporting(Reporting value) { + this.reporting = value; + } + + /** + * Gets the value of the profiles property. + * + * @return + * possible object is + * {@link Project.Profiles } + * + */ + public Project.Profiles getProfiles() { + return profiles; + } + + /** + * Sets the value of the profiles property. + * + * @param value + * allowed object is + * {@link Project.Profiles } + * + */ + public void setProfiles(Project.Profiles value) { + this.profiles = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="contributor" type="{http://maven.apache.org/POM/4.0.0}Contributor" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "contributors" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Contributors { + + @XmlElement(name = "contributor", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List contributors; + + /** + * Gets the value of the contributors property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the contributors property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getContributors().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Contributor } + * + * + */ + public List getContributors() { + if (contributors == null) { + contributors = new ArrayList(); + } + return this.contributors; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "dependencies" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Dependencies { + + @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List dependencies; + + /** + * Gets the value of the dependencies property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the dependencies property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getDependencies().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Dependency } + * + * + */ + public List getDependencies() { + if (dependencies == null) { + dependencies = new ArrayList(); + } + return this.dependencies; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="developer" type="{http://maven.apache.org/POM/4.0.0}Developer" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "developers" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Developers { + + @XmlElement(name = "developer", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List developers; + + /** + * Gets the value of the developers property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the developers property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getDevelopers().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Developer } + * + * + */ + public List getDevelopers() { + if (developers == null) { + developers = new ArrayList(); + } + return this.developers; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="license" type="{http://maven.apache.org/POM/4.0.0}License" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "licenses" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Licenses { + + @XmlElement(name = "license", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List licenses; + + /** + * Gets the value of the licenses property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the licenses property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getLicenses().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link License } + * + * + */ + public List getLicenses() { + if (licenses == null) { + licenses = new ArrayList(); + } + return this.licenses; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="mailingList" type="{http://maven.apache.org/POM/4.0.0}MailingList" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "mailingLists" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class MailingLists { + + @XmlElement(name = "mailingList", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List mailingLists; + + /** + * Gets the value of the mailingLists property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the mailingLists property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getMailingLists().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link MailingList } + * + * + */ + public List getMailingLists() { + if (mailingLists == null) { + mailingLists = new ArrayList(); + } + return this.mailingLists; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "modules" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Modules { + + @XmlElement(name = "module", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List modules; + + /** + * Gets the value of the modules property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the modules property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getModules().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getModules() { + if (modules == null) { + modules = new ArrayList(); + } + return this.modules; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "pluginRepositories" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class PluginRepositories { + + @XmlElement(name = "pluginRepository", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List pluginRepositories; + + /** + * Gets the value of the pluginRepositories property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the pluginRepositories property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getPluginRepositories().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Repository } + * + * + */ + public List getPluginRepositories() { + if (pluginRepositories == null) { + pluginRepositories = new ArrayList(); + } + return this.pluginRepositories; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="profile" type="{http://maven.apache.org/POM/4.0.0}Profile" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "profiles" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Profiles { + + @XmlElement(name = "profile", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List profiles; + + /** + * Gets the value of the profiles property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the profiles property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getProfiles().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Profile } + * + * + */ + public List getProfiles() { + if (profiles == null) { + profiles = new ArrayList(); + } + return this.profiles; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Properties { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Reports { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "repositories" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Repositories { + + @XmlElement(name = "repository", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List repositories; + + /** + * Gets the value of the repositories property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the repositories property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getRepositories().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Repository } + * + * + */ + public List getRepositories() { + if (repositories == null) { + repositories = new ArrayList(); + } + return this.repositories; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java new file mode 100644 index 0000000..a813add --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java @@ -0,0 +1,152 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Describes where an artifact has moved to. If any of the values are omitted, it is + * assumed to be the same as it was before. + * + * <p>Java class for Relocation complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Relocation"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Relocation", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Describes where an artifact has moved to. If any of the values are omitted, it is\n assumed to be the same as it was before.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") +public class Relocation { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The group ID the artifact has moved to.") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The new artifact ID of the artifact.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The new version of the artifact.") + protected String version; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "An additional message to show the user about the move, such as the reason.") + protected String message; + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java new file mode 100644 index 0000000..1f1fcd1 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java @@ -0,0 +1,359 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * + * + * The <code>&lt;plugin&gt;</code> element contains informations required for a report plugin. + * + * + * + * <p>Java class for ReportPlugin complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="ReportPlugin"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="reportSets" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="reportSet" type="{http://maven.apache.org/POM/4.0.0}ReportSet" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="configuration" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ReportPlugin", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <plugin> element contains informations required for a report plugin.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class ReportPlugin { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "org.apache.maven.plugins") + @XsdInfo(name = "The group ID of the reporting plugin in the repository.") + protected String groupId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The artifact ID of the reporting plugin in the repository.") + protected String artifactId; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The version of the reporting plugin to be used.") + protected String version; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Multiple specifications of a set of reports, each having (possibly) different\n configuration. This is the reporting parallel to an execution in the build.") + protected ReportPlugin.ReportSets reportSets; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") + protected String inherited; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") + protected ReportPlugin.Configuration configuration; + + /** + * Gets the value of the groupId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroupId() { + return groupId; + } + + /** + * Sets the value of the groupId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroupId(String value) { + this.groupId = value; + } + + /** + * Gets the value of the artifactId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifactId() { + return artifactId; + } + + /** + * Sets the value of the artifactId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifactId(String value) { + this.artifactId = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * Gets the value of the reportSets property. + * + * @return + * possible object is + * {@link ReportPlugin.ReportSets } + * + */ + public ReportPlugin.ReportSets getReportSets() { + return reportSets; + } + + /** + * Sets the value of the reportSets property. + * + * @param value + * allowed object is + * {@link ReportPlugin.ReportSets } + * + */ + public void setReportSets(ReportPlugin.ReportSets value) { + this.reportSets = value; + } + + /** + * Gets the value of the inherited property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInherited() { + return inherited; + } + + /** + * Sets the value of the inherited property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInherited(String value) { + this.inherited = value; + } + + /** + * Gets the value of the configuration property. + * + * @return + * possible object is + * {@link ReportPlugin.Configuration } + * + */ + public ReportPlugin.Configuration getConfiguration() { + return configuration; + } + + /** + * Sets the value of the configuration property. + * + * @param value + * allowed object is + * {@link ReportPlugin.Configuration } + * + */ + public void setConfiguration(ReportPlugin.Configuration value) { + this.configuration = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Configuration { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="reportSet" type="{http://maven.apache.org/POM/4.0.0}ReportSet" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "reportSets" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class ReportSets { + + @XmlElement(name = "reportSet", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List reportSets; + + /** + * Gets the value of the reportSets property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the reportSets property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getReportSets().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link ReportSet } + * + * + */ + public List getReportSets() { + if (reportSets == null) { + reportSets = new ArrayList(); + } + return this.reportSets; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java new file mode 100644 index 0000000..58536f1 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java @@ -0,0 +1,299 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; +import org.w3c.dom.Element; + + +/** + * Represents a set of reports and configuration to be used to generate them. + * + * <p>Java class for ReportSet complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="ReportSet"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="reports" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="report" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="configuration" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ReportSet", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Represents a set of reports and configuration to be used to generate them.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class ReportSet { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") + @XsdInfo(name = "The unique id for this report set, to be used during POM inheritance and profile injection\n for merging of report sets.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The list of reports from this plugin which should be generated from this set.") + protected ReportSet.Reports reports; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") + protected String inherited; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") + protected ReportSet.Configuration configuration; + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the reports property. + * + * @return + * possible object is + * {@link ReportSet.Reports } + * + */ + public ReportSet.Reports getReports() { + return reports; + } + + /** + * Sets the value of the reports property. + * + * @param value + * allowed object is + * {@link ReportSet.Reports } + * + */ + public void setReports(ReportSet.Reports value) { + this.reports = value; + } + + /** + * Gets the value of the inherited property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInherited() { + return inherited; + } + + /** + * Sets the value of the inherited property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInherited(String value) { + this.inherited = value; + } + + /** + * Gets the value of the configuration property. + * + * @return + * possible object is + * {@link ReportSet.Configuration } + * + */ + public ReportSet.Configuration getConfiguration() { + return configuration; + } + + /** + * Sets the value of the configuration property. + * + * @param value + * allowed object is + * {@link ReportSet.Configuration } + * + */ + public void setConfiguration(ReportSet.Configuration value) { + this.configuration = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "elements" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Configuration { + + @XmlAnyElement + @XsdInfo(name = "") + protected List elements; + + /** + * Gets the value of the elements property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the elements property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getElements().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getElements() { + if (elements == null) { + elements = new ArrayList(); + } + return this.elements; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="report" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "reports" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Reports { + + @XmlElement(name = "report", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List reports; + + /** + * Gets the value of the reports property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the reports property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getReports().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getReports() { + if (reports == null) { + reports = new ArrayList(); + } + return this.reports; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java new file mode 100644 index 0000000..75d9644 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java @@ -0,0 +1,197 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Section for management of reports and their configuration. + * + * <p>Java class for Reporting complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Reporting"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="excludeDefaults" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="outputDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="plugins" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}ReportPlugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Reporting", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Section for management of reports and their configuration.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Reporting { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "If true, then the default reports are not included in the site generation.\n This includes the reports in the \"Project Info\" menu. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") + protected String excludeDefaults; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Where to store all of the generated reports. The default is\n ${project.build.directory}/site.") + protected String outputDirectory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The reporting plugins to use and their configuration.") + protected Reporting.Plugins plugins; + + /** + * Gets the value of the excludeDefaults property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getExcludeDefaults() { + return excludeDefaults; + } + + /** + * Sets the value of the excludeDefaults property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setExcludeDefaults(String value) { + this.excludeDefaults = value; + } + + /** + * Gets the value of the outputDirectory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOutputDirectory() { + return outputDirectory; + } + + /** + * Sets the value of the outputDirectory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOutputDirectory(String value) { + this.outputDirectory = value; + } + + /** + * Gets the value of the plugins property. + * + * @return + * possible object is + * {@link Reporting.Plugins } + * + */ + public Reporting.Plugins getPlugins() { + return plugins; + } + + /** + * Sets the value of the plugins property. + * + * @param value + * allowed object is + * {@link Reporting.Plugins } + * + */ + public void setPlugins(Reporting.Plugins value) { + this.plugins = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}ReportPlugin" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "plugins" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Plugins { + + @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List plugins; + + /** + * Gets the value of the plugins property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the plugins property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getPlugins().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link ReportPlugin } + * + * + */ + public List getPlugins() { + if (plugins == null) { + plugins = new ArrayList(); + } + return this.plugins; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java new file mode 100644 index 0000000..a08f214 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java @@ -0,0 +1,208 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * A repository contains the information needed for establishing connections with + * remote repository. + * + * <p>Java class for Repository complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Repository"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="releases" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; + * &lt;element name="snapshots" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="layout" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Repository", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "A repository contains the information needed for establishing connections with\n remote repository.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Repository { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "How to handle downloading of releases from this repository.") + protected RepositoryPolicy releases; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "How to handle downloading of snapshots from this repository.") + protected RepositoryPolicy snapshots; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A unique identifier for a repository. This is used to match the repository\n to configuration in the settings.xml file, for example. Furthermore, the identifier is\n used during POM inheritance and profile injection to detect repositories that should be merged.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Human readable name of the repository.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The url of the repository, in the form protocol://hostname/path.") + protected String url; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") + @XsdInfo(name = "The type of layout this repository uses for locating and storing artifacts -\n can be legacy or default.") + protected String layout; + + /** + * Gets the value of the releases property. + * + * @return + * possible object is + * {@link RepositoryPolicy } + * + */ + public RepositoryPolicy getReleases() { + return releases; + } + + /** + * Sets the value of the releases property. + * + * @param value + * allowed object is + * {@link RepositoryPolicy } + * + */ + public void setReleases(RepositoryPolicy value) { + this.releases = value; + } + + /** + * Gets the value of the snapshots property. + * + * @return + * possible object is + * {@link RepositoryPolicy } + * + */ + public RepositoryPolicy getSnapshots() { + return snapshots; + } + + /** + * Sets the value of the snapshots property. + * + * @param value + * allowed object is + * {@link RepositoryPolicy } + * + */ + public void setSnapshots(RepositoryPolicy value) { + this.snapshots = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + + /** + * Gets the value of the layout property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLayout() { + return layout; + } + + /** + * Sets the value of the layout property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLayout(String value) { + this.layout = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java new file mode 100644 index 0000000..662d69e --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java @@ -0,0 +1,123 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Download policy. + * + * <p>Java class for RepositoryPolicy complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="RepositoryPolicy"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="enabled" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="updatePolicy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="checksumPolicy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "RepositoryPolicy", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Download policy.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n") +public class RepositoryPolicy { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether to use this repository for downloading this type of artifact. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") + protected String enabled; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The frequency for downloading updates - can be\n always,\n daily\n (default),\n interval:XXX\n (in minutes) or\n never\n (only if it doesn't exist locally).") + protected String updatePolicy; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "What to do when verification of an artifact checksum fails. Valid values are\n ignore\n ,\n fail\n or\n warn\n (the default).") + protected String checksumPolicy; + + /** + * Gets the value of the enabled property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEnabled() { + return enabled; + } + + /** + * Sets the value of the enabled property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEnabled(String value) { + this.enabled = value; + } + + /** + * Gets the value of the updatePolicy property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUpdatePolicy() { + return updatePolicy; + } + + /** + * Sets the value of the updatePolicy property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUpdatePolicy(String value) { + this.updatePolicy = value; + } + + /** + * Gets the value of the checksumPolicy property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getChecksumPolicy() { + return checksumPolicy; + } + + /** + * Sets the value of the checksumPolicy property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setChecksumPolicy(String value) { + this.checksumPolicy = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java new file mode 100644 index 0000000..9f6d697 --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java @@ -0,0 +1,326 @@ + +package info.hubbitus.xjc.plugin.example; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * This element describes all of the classpath resources associated with a project + * or unit tests. + * + * <p>Java class for Resource complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Resource"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="targetPath" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="filtering" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="directory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="includes" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="include" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;element name="excludes" minOccurs="0"&gt; + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="exclude" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * &lt;/element&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Resource", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "This element describes all of the classpath resources associated with a project\n or unit tests.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") +public class Resource { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Describe the resource target path. The path is relative to the target/classes\n directory (i.e. ${project.build.outputDirectory}).\n For example, if you want that resource to appear in a specific package\n (org.apache.maven.messages), you must specify this\n element with this value: org/apache/maven/messages.\n This is not required if you simply put the resources in that directory\n structure at the source, however.") + protected String targetPath; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Whether resources are filtered to replace tokens with parameterised values or not.\n The values are taken from the properties element and from the\n properties in the files listed in the filters element. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") + protected String filtering; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Describe the directory where the resources are stored. The path is relative\n to the POM.") + protected String directory; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A list of patterns to include, e.g. **/*.xml.") + protected Resource.Includes includes; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A list of patterns to exclude, e.g. **/*.xml") + protected Resource.Excludes excludes; + + /** + * Gets the value of the targetPath property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTargetPath() { + return targetPath; + } + + /** + * Sets the value of the targetPath property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTargetPath(String value) { + this.targetPath = value; + } + + /** + * Gets the value of the filtering property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFiltering() { + return filtering; + } + + /** + * Sets the value of the filtering property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFiltering(String value) { + this.filtering = value; + } + + /** + * Gets the value of the directory property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDirectory() { + return directory; + } + + /** + * Sets the value of the directory property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDirectory(String value) { + this.directory = value; + } + + /** + * Gets the value of the includes property. + * + * @return + * possible object is + * {@link Resource.Includes } + * + */ + public Resource.Includes getIncludes() { + return includes; + } + + /** + * Sets the value of the includes property. + * + * @param value + * allowed object is + * {@link Resource.Includes } + * + */ + public void setIncludes(Resource.Includes value) { + this.includes = value; + } + + /** + * Gets the value of the excludes property. + * + * @return + * possible object is + * {@link Resource.Excludes } + * + */ + public Resource.Excludes getExcludes() { + return excludes; + } + + /** + * Sets the value of the excludes property. + * + * @param value + * allowed object is + * {@link Resource.Excludes } + * + */ + public void setExcludes(Resource.Excludes value) { + this.excludes = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="exclude" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "excludes" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Excludes { + + @XmlElement(name = "exclude", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List excludes; + + /** + * Gets the value of the excludes property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the excludes property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getExcludes().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getExcludes() { + if (excludes == null) { + excludes = new ArrayList(); + } + return this.excludes; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;sequence&gt; + * &lt;element name="include" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; + * &lt;/sequence&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "includes" + }) + @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") + public static class Includes { + + @XmlElement(name = "include", namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "") + protected List includes; + + /** + * Gets the value of the includes property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the includes property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getIncludes().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getIncludes() { + if (includes == null) { + includes = new ArrayList(); + } + return this.includes; + } + + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java new file mode 100644 index 0000000..f887d9d --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java @@ -0,0 +1,156 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * + * + * The <code>&lt;scm&gt;</code> element contains informations required to the SCM + * (Source Control Management) of the project. + * + * + * + * <p>Java class for Scm complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Scm"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="connection" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="developerConnection" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="tag" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Scm", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "The <scm> element contains informations required to the SCM\n (Source Control Management) of the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") +public class Scm { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The source control management system URL\n that describes the repository and how to connect to the\n repository. For more information, see the\n URL format\n and list of supported SCMs.\n This connection is read-only.\n
Default value is: parent value [+ path adjustment] + artifactId") + protected String connection; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Just like connection, but for developers, i.e. this scm connection\n will not be read only.\n
Default value is: parent value [+ path adjustment] + artifactId") + protected String developerConnection; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "HEAD") + @XsdInfo(name = "The tag of current code. By default, it's set to HEAD during development.") + protected String tag; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.\n
Default value is: parent value [+ path adjustment] + artifactId") + protected String url; + + /** + * Gets the value of the connection property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getConnection() { + return connection; + } + + /** + * Sets the value of the connection property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setConnection(String value) { + this.connection = value; + } + + /** + * Gets the value of the developerConnection property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDeveloperConnection() { + return developerConnection; + } + + /** + * Sets the value of the developerConnection property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDeveloperConnection(String value) { + this.developerConnection = value; + } + + /** + * Gets the value of the tag property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTag() { + return tag; + } + + /** + * Sets the value of the tag property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTag(String value) { + this.tag = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + +} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java new file mode 100644 index 0000000..82d977b --- /dev/null +++ b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java @@ -0,0 +1,123 @@ + +package info.hubbitus.xjc.plugin.example; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import info.hubbitus.annotation.XsdInfo; + + +/** + * Contains the information needed for deploying websites. + * + * <p>Java class for Site complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * &lt;complexType name="Site"&gt; + * &lt;complexContent&gt; + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; + * &lt;all&gt; + * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; + * &lt;/all&gt; + * &lt;/restriction&gt; + * &lt;/complexContent&gt; + * &lt;/complexType&gt; + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Site", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { + +}) +@XsdInfo(name = "Contains the information needed for deploying websites.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n") +public class Site { + + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "A unique identifier for a deployment location. This is used to match the\n site to configuration in the settings.xml file, for example.") + protected String id; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "Human readable name of the deployment location.") + protected String name; + @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") + @XsdInfo(name = "The url of the location where website is deployed, in the form protocol://hostname/path.\n
Default value is: parent value [+ path adjustment] + artifactId") + protected String url; + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the url property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUrl() { + return url; + } + + /** + * Sets the value of the url property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUrl(String value) { + this.url = value; + } + +} From 02676083c991af0faa721985c494499c5daf713c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:42:39 +0000 Subject: [PATCH 05/12] example-project-gradle: update wrapper to 8.14.3, do not track generated sources Removes accidentally committed src/main/generated-java and ignores it. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- example-project-gradle/.gitignore | 3 + .../gradle/wrapper/gradle-wrapper.jar | Bin 56172 -> 43764 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 +- example-project-gradle/gradlew | 305 +-- example-project-gradle/gradlew.bat | 178 +- .../xjc/plugin/example/Activation.java | 182 -- .../xjc/plugin/example/ActivationFile.java | 100 - .../xjc/plugin/example/ActivationOS.java | 152 -- .../plugin/example/ActivationProperty.java | 97 - .../hubbitus/xjc/plugin/example/Build.java | 798 -------- .../xjc/plugin/example/BuildBase.java | 553 ------ .../xjc/plugin/example/CiManagement.java | 202 -- .../xjc/plugin/example/Contributor.java | 412 ---- .../hubbitus/xjc/plugin/example/Customer.java | 99 - .../xjc/plugin/example/Dependency.java | 370 ---- .../plugin/example/DependencyManagement.java | 142 -- .../plugin/example/DeploymentRepository.java | 236 --- .../xjc/plugin/example/Developer.java | 439 ----- .../example/DistributionManagement.java | 208 -- .../xjc/plugin/example/Exclusion.java | 100 - .../xjc/plugin/example/Extension.java | 123 -- .../xjc/plugin/example/IssueManagement.java | 96 - .../hubbitus/xjc/plugin/example/License.java | 154 -- .../xjc/plugin/example/MailingList.java | 282 --- .../hubbitus/xjc/plugin/example/Notifier.java | 311 --- .../xjc/plugin/example/ObjectFactory.java | 720 ------- .../xjc/plugin/example/Organization.java | 95 - .../hubbitus/xjc/plugin/example/Parent.java | 157 -- .../hubbitus/xjc/plugin/example/Plugin.java | 587 ------ .../xjc/plugin/example/PluginExecution.java | 332 ---- .../xjc/plugin/example/PluginManagement.java | 142 -- .../xjc/plugin/example/Prerequisites.java | 67 - .../hubbitus/xjc/plugin/example/Profile.java | 812 -------- .../hubbitus/xjc/plugin/example/Project.java | 1682 ----------------- .../xjc/plugin/example/Relocation.java | 152 -- .../xjc/plugin/example/ReportPlugin.java | 359 ---- .../xjc/plugin/example/ReportSet.java | 299 --- .../xjc/plugin/example/Reporting.java | 197 -- .../xjc/plugin/example/Repository.java | 208 -- .../xjc/plugin/example/RepositoryPolicy.java | 123 -- .../hubbitus/xjc/plugin/example/Resource.java | 326 ---- .../info/hubbitus/xjc/plugin/example/Scm.java | 156 -- .../hubbitus/xjc/plugin/example/Site.java | 123 -- 43 files changed, 292 insertions(+), 11792 deletions(-) create mode 100644 example-project-gradle/.gitignore delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java delete mode 100644 example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java diff --git a/example-project-gradle/.gitignore b/example-project-gradle/.gitignore new file mode 100644 index 0000000..b85bfdf --- /dev/null +++ b/example-project-gradle/.gitignore @@ -0,0 +1,3 @@ + +# Generated by xjcGenerate +src/main/generated-java/ diff --git a/example-project-gradle/gradle/wrapper/gradle-wrapper.jar b/example-project-gradle/gradle/wrapper/gradle-wrapper.jar index 28861d273a5d270fd8f65dd74570c17c9c507736..1b33c55baabb587c669f562ae36f953de2481846 100644 GIT binary patch literal 43764 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

ZM+x{iQDVZRnLYbdXrQjU&=u%hsN4|smH&B~F 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 b+=;!jU|P+J`>$CfFsoU|bwOU-ceCsYH7qU$ diff --git a/example-project-gradle/gradle/wrapper/gradle-wrapper.properties b/example-project-gradle/gradle/wrapper/gradle-wrapper.properties index 6ac6476..d4081da 100644 --- a/example-project-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/example-project-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ -#Mon Jan 28 02:58:37 MSK 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip diff --git a/example-project-gradle/gradlew b/example-project-gradle/gradlew index cccdd3d..23d15a9 100755 --- a/example-project-gradle/gradlew +++ b/example-project-gradle/gradlew @@ -1,78 +1,129 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +132,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/example-project-gradle/gradlew.bat b/example-project-gradle/gradlew.bat index f955316..5eed7ee 100644 --- a/example-project-gradle/gradlew.bat +++ b/example-project-gradle/gradlew.bat @@ -1,84 +1,94 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java deleted file mode 100644 index bdc2111..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Activation.java +++ /dev/null @@ -1,182 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * The conditions within the build runtime environment which will trigger the - * automatic inclusion of the build profile. Multiple conditions can be defined, which must - * be all satisfied to activate the profile. - * - * - * <p>Java class for Activation complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Activation"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="activeByDefault" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; - * &lt;element name="jdk" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="os" type="{http://maven.apache.org/POM/4.0.0}ActivationOS" minOccurs="0"/&gt; - * &lt;element name="property" type="{http://maven.apache.org/POM/4.0.0}ActivationProperty" minOccurs="0"/&gt; - * &lt;element name="file" type="{http://maven.apache.org/POM/4.0.0}ActivationFile" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Activation", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The conditions within the build runtime environment which will trigger the\n automatic inclusion of the build profile. Multiple conditions can be defined, which must\n be all satisfied to activate the profile.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n") -public class Activation { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "false") - @XsdInfo(name = "If set to true, this profile will be active unless another profile in this\n pom is activated using the command line -P option or by one of that profile's\n activators.") - protected Boolean activeByDefault; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Specifies that this profile will be activated when a matching JDK is detected.\n For example, 1.4 only activates on JDKs versioned 1.4,\n while !1.4 matches any JDK that is not version 1.4. Ranges are supported too:\n [1.5,) activates when the JDK is 1.5 minimum.") - protected String jdk; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Specifies that this profile will be activated when matching operating system\n attributes are detected.") - protected ActivationOS os; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Specifies that this profile will be activated when this system property is\n specified.") - protected ActivationProperty property; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Specifies that this profile will be activated based on existence of a file.") - protected ActivationFile file; - - /** - * Gets the value of the activeByDefault property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isActiveByDefault() { - return activeByDefault; - } - - /** - * Sets the value of the activeByDefault property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setActiveByDefault(Boolean value) { - this.activeByDefault = value; - } - - /** - * Gets the value of the jdk property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getJdk() { - return jdk; - } - - /** - * Sets the value of the jdk property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setJdk(String value) { - this.jdk = value; - } - - /** - * Gets the value of the os property. - * - * @return - * possible object is - * {@link ActivationOS } - * - */ - public ActivationOS getOs() { - return os; - } - - /** - * Sets the value of the os property. - * - * @param value - * allowed object is - * {@link ActivationOS } - * - */ - public void setOs(ActivationOS value) { - this.os = value; - } - - /** - * Gets the value of the property property. - * - * @return - * possible object is - * {@link ActivationProperty } - * - */ - public ActivationProperty getProperty() { - return property; - } - - /** - * Sets the value of the property property. - * - * @param value - * allowed object is - * {@link ActivationProperty } - * - */ - public void setProperty(ActivationProperty value) { - this.property = value; - } - - /** - * Gets the value of the file property. - * - * @return - * possible object is - * {@link ActivationFile } - * - */ - public ActivationFile getFile() { - return file; - } - - /** - * Sets the value of the file property. - * - * @param value - * allowed object is - * {@link ActivationFile } - * - */ - public void setFile(ActivationFile value) { - this.file = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java deleted file mode 100644 index 29ddd28..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationFile.java +++ /dev/null @@ -1,100 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * This is the file specification used to activate the profile. The <code>missing</code> value - * is the location of a file that needs to exist, and if it doesn't, the profile will be - * activated. On the other hand, <code>exists</code> will test for the existence of the file and if it is - * there, the profile will be activated.<br/> - * Variable interpolation for these file specifications is limited to <code>${basedir}</code>, - * System properties and request properties. - * - * <p>Java class for ActivationFile complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="ActivationFile"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="missing" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="exists" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ActivationFile", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "This is the file specification used to activate the profile. The missing value\n is the location of a file that needs to exist, and if it doesn't, the profile will be\n activated. On the other hand, exists will test for the existence of the file and if it is\n there, the profile will be activated.
\n Variable interpolation for these file specifications is limited to ${basedir},\n System properties and request properties.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") -public class ActivationFile { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the file that must be missing to activate the\n profile.") - protected String missing; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the file that must exist to activate the profile.") - protected String exists; - - /** - * Gets the value of the missing property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMissing() { - return missing; - } - - /** - * Sets the value of the missing property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMissing(String value) { - this.missing = value; - } - - /** - * Gets the value of the exists property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getExists() { - return exists; - } - - /** - * Sets the value of the exists property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setExists(String value) { - this.exists = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java deleted file mode 100644 index 5418ce8..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationOS.java +++ /dev/null @@ -1,152 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * This is an activator which will detect an operating system's attributes in order - * to activate its profile. - * - * <p>Java class for ActivationOS complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="ActivationOS"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="family" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="arch" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ActivationOS", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "This is an activator which will detect an operating system's attributes in order\n to activate its profile.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") -public class ActivationOS { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the operating system to be used to activate the profile. This must be an exact match\n of the ${os.name} Java property, such as Windows XP.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The general family of the OS to be used to activate the profile, such as\n windows or unix.") - protected String family; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The architecture of the operating system to be used to activate the\n profile.") - protected String arch; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The version of the operating system to be used to activate the\n profile.") - protected String version; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the family property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFamily() { - return family; - } - - /** - * Sets the value of the family property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFamily(String value) { - this.family = value; - } - - /** - * Gets the value of the arch property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArch() { - return arch; - } - - /** - * Sets the value of the arch property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArch(String value) { - this.arch = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java deleted file mode 100644 index c4f8d34..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ActivationProperty.java +++ /dev/null @@ -1,97 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * This is the property specification used to activate a profile. If the value field - * is empty, then the existence of the named property will activate the profile, otherwise it - * does a case-sensitive match against the property value as well. - * - * <p>Java class for ActivationProperty complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="ActivationProperty"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ActivationProperty", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "This is the property specification used to activate a profile. If the value field\n is empty, then the existence of the named property will activate the profile, otherwise it\n does a case-sensitive match against the property value as well.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") -public class ActivationProperty { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the property to be used to activate a profile.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The value of the property required to activate a profile.") - protected String value; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the value property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getValue() { - return value; - } - - /** - * Sets the value of the value property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setValue(String value) { - this.value = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java deleted file mode 100644 index 5dcb11e..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Build.java +++ /dev/null @@ -1,798 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * - * - * The <code>&lt;build&gt;</code> element contains informations required to build the project. - * Default values are defined in Super POM. - * - * - * - * <p>Java class for Build complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Build"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="sourceDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="scriptSourceDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="testSourceDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="outputDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="testOutputDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="extensions" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="extension" type="{http://maven.apache.org/POM/4.0.0}Extension" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="defaultGoal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="resources" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="testResources" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="directory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="finalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="filters" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="pluginManagement" type="{http://maven.apache.org/POM/4.0.0}PluginManagement" minOccurs="0"/&gt; - * &lt;element name="plugins" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Build", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <build> element contains informations required to build the project.\n Default values are defined in Super POM.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Build { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element specifies a directory containing the source of the project. The\n generated build system will compile the sources from this directory when the project is\n built. The path given is relative to the project descriptor.\n The default value is src/main/java.") - protected String sourceDirectory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element specifies a directory containing the script sources of the\n project. This directory is meant to be different from the sourceDirectory, in that its\n contents will be copied to the output directory in most cases (since scripts are\n interpreted rather than compiled).\n The default value is src/main/scripts.") - protected String scriptSourceDirectory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element specifies a directory containing the unit test source of the\n project. The generated build system will compile these directories when the project is\n being tested. The path given is relative to the project descriptor.\n The default value is src/test/java.") - protected String testSourceDirectory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The directory where compiled application classes are placed.\n The default value is target/classes.") - protected String outputDirectory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The directory where compiled test classes are placed.\n The default value is target/test-classes.") - protected String testOutputDirectory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A set of build extensions to use from this project.") - protected Build.Extensions extensions; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The default goal (or phase in Maven 2) to execute when none is specified for\n the project. Note that in case of a multi-module build, only the default goal of the top-level\n project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3,\n multiple goals/phases can be separated by whitespace.") - protected String defaultGoal; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project. These resources are often included in the final\n package.\n The default value is src/main/resources.") - protected Build.Resources resources; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project's unit tests.\n The default value is src/test/resources.") - protected Build.TestResources testResources; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The directory where all files generated by the build are placed.\n The default value is target.") - protected String directory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The filename (excluding the extension, and with no path information) that\n the produced artifact will be called.\n The default value is ${artifactId}-${version}.") - protected String finalName; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The list of filter properties files that are used when filtering is enabled.") - protected Build.Filters filters; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Default plugin information to be made available for reference by projects\n derived from this one. This plugin configuration will not be resolved or bound to the\n lifecycle unless referenced. Any local configuration for a given plugin will override\n the plugin's entire definition here.") - protected PluginManagement pluginManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The list of plugins to use.") - protected Build.Plugins plugins; - - /** - * Gets the value of the sourceDirectory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSourceDirectory() { - return sourceDirectory; - } - - /** - * Sets the value of the sourceDirectory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSourceDirectory(String value) { - this.sourceDirectory = value; - } - - /** - * Gets the value of the scriptSourceDirectory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getScriptSourceDirectory() { - return scriptSourceDirectory; - } - - /** - * Sets the value of the scriptSourceDirectory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setScriptSourceDirectory(String value) { - this.scriptSourceDirectory = value; - } - - /** - * Gets the value of the testSourceDirectory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTestSourceDirectory() { - return testSourceDirectory; - } - - /** - * Sets the value of the testSourceDirectory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTestSourceDirectory(String value) { - this.testSourceDirectory = value; - } - - /** - * Gets the value of the outputDirectory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOutputDirectory() { - return outputDirectory; - } - - /** - * Sets the value of the outputDirectory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOutputDirectory(String value) { - this.outputDirectory = value; - } - - /** - * Gets the value of the testOutputDirectory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTestOutputDirectory() { - return testOutputDirectory; - } - - /** - * Sets the value of the testOutputDirectory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTestOutputDirectory(String value) { - this.testOutputDirectory = value; - } - - /** - * Gets the value of the extensions property. - * - * @return - * possible object is - * {@link Build.Extensions } - * - */ - public Build.Extensions getExtensions() { - return extensions; - } - - /** - * Sets the value of the extensions property. - * - * @param value - * allowed object is - * {@link Build.Extensions } - * - */ - public void setExtensions(Build.Extensions value) { - this.extensions = value; - } - - /** - * Gets the value of the defaultGoal property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDefaultGoal() { - return defaultGoal; - } - - /** - * Sets the value of the defaultGoal property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDefaultGoal(String value) { - this.defaultGoal = value; - } - - /** - * Gets the value of the resources property. - * - * @return - * possible object is - * {@link Build.Resources } - * - */ - public Build.Resources getResources() { - return resources; - } - - /** - * Sets the value of the resources property. - * - * @param value - * allowed object is - * {@link Build.Resources } - * - */ - public void setResources(Build.Resources value) { - this.resources = value; - } - - /** - * Gets the value of the testResources property. - * - * @return - * possible object is - * {@link Build.TestResources } - * - */ - public Build.TestResources getTestResources() { - return testResources; - } - - /** - * Sets the value of the testResources property. - * - * @param value - * allowed object is - * {@link Build.TestResources } - * - */ - public void setTestResources(Build.TestResources value) { - this.testResources = value; - } - - /** - * Gets the value of the directory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDirectory() { - return directory; - } - - /** - * Sets the value of the directory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDirectory(String value) { - this.directory = value; - } - - /** - * Gets the value of the finalName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFinalName() { - return finalName; - } - - /** - * Sets the value of the finalName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFinalName(String value) { - this.finalName = value; - } - - /** - * Gets the value of the filters property. - * - * @return - * possible object is - * {@link Build.Filters } - * - */ - public Build.Filters getFilters() { - return filters; - } - - /** - * Sets the value of the filters property. - * - * @param value - * allowed object is - * {@link Build.Filters } - * - */ - public void setFilters(Build.Filters value) { - this.filters = value; - } - - /** - * Gets the value of the pluginManagement property. - * - * @return - * possible object is - * {@link PluginManagement } - * - */ - public PluginManagement getPluginManagement() { - return pluginManagement; - } - - /** - * Sets the value of the pluginManagement property. - * - * @param value - * allowed object is - * {@link PluginManagement } - * - */ - public void setPluginManagement(PluginManagement value) { - this.pluginManagement = value; - } - - /** - * Gets the value of the plugins property. - * - * @return - * possible object is - * {@link Build.Plugins } - * - */ - public Build.Plugins getPlugins() { - return plugins; - } - - /** - * Sets the value of the plugins property. - * - * @param value - * allowed object is - * {@link Build.Plugins } - * - */ - public void setPlugins(Build.Plugins value) { - this.plugins = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="extension" type="{http://maven.apache.org/POM/4.0.0}Extension" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "extensions" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Extensions { - - @XmlElement(name = "extension", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List extensions; - - /** - * Gets the value of the extensions property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the extensions property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getExtensions().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Extension } - * - * - */ - public List getExtensions() { - if (extensions == null) { - extensions = new ArrayList(); - } - return this.extensions; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "filters" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Filters { - - @XmlElement(name = "filter", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List filters; - - /** - * Gets the value of the filters property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the filters property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getFilters().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getFilters() { - if (filters == null) { - filters = new ArrayList(); - } - return this.filters; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "plugins" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Plugins { - - @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List plugins; - - /** - * Gets the value of the plugins property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the plugins property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getPlugins().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Plugin } - * - * - */ - public List getPlugins() { - if (plugins == null) { - plugins = new ArrayList(); - } - return this.plugins; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "resources" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Resources { - - @XmlElement(name = "resource", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List resources; - - /** - * Gets the value of the resources property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the resources property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getResources().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Resource } - * - * - */ - public List getResources() { - if (resources == null) { - resources = new ArrayList(); - } - return this.resources; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "testResources" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class TestResources { - - @XmlElement(name = "testResource", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List testResources; - - /** - * Gets the value of the testResources property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the testResources property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getTestResources().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Resource } - * - * - */ - public List getTestResources() { - if (testResources == null) { - testResources = new ArrayList(); - } - return this.testResources; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java deleted file mode 100644 index 585cdc2..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/BuildBase.java +++ /dev/null @@ -1,553 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Generic informations for a build. - * - * <p>Java class for BuildBase complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="BuildBase"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="defaultGoal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="resources" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="testResources" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="directory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="finalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="filters" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="pluginManagement" type="{http://maven.apache.org/POM/4.0.0}PluginManagement" minOccurs="0"/&gt; - * &lt;element name="plugins" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "BuildBase", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Generic informations for a build.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class BuildBase { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The default goal (or phase in Maven 2) to execute when none is specified for\n the project. Note that in case of a multi-module build, only the default goal of the top-level\n project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3,\n multiple goals/phases can be separated by whitespace.") - protected String defaultGoal; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project. These resources are often included in the final\n package.\n The default value is src/main/resources.") - protected BuildBase.Resources resources; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the classpath resources such as properties\n files associated with a project's unit tests.\n The default value is src/test/resources.") - protected BuildBase.TestResources testResources; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The directory where all files generated by the build are placed.\n The default value is target.") - protected String directory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The filename (excluding the extension, and with no path information) that\n the produced artifact will be called.\n The default value is ${artifactId}-${version}.") - protected String finalName; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The list of filter properties files that are used when filtering is enabled.") - protected BuildBase.Filters filters; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Default plugin information to be made available for reference by projects\n derived from this one. This plugin configuration will not be resolved or bound to the\n lifecycle unless referenced. Any local configuration for a given plugin will override\n the plugin's entire definition here.") - protected PluginManagement pluginManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The list of plugins to use.") - protected BuildBase.Plugins plugins; - - /** - * Gets the value of the defaultGoal property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDefaultGoal() { - return defaultGoal; - } - - /** - * Sets the value of the defaultGoal property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDefaultGoal(String value) { - this.defaultGoal = value; - } - - /** - * Gets the value of the resources property. - * - * @return - * possible object is - * {@link BuildBase.Resources } - * - */ - public BuildBase.Resources getResources() { - return resources; - } - - /** - * Sets the value of the resources property. - * - * @param value - * allowed object is - * {@link BuildBase.Resources } - * - */ - public void setResources(BuildBase.Resources value) { - this.resources = value; - } - - /** - * Gets the value of the testResources property. - * - * @return - * possible object is - * {@link BuildBase.TestResources } - * - */ - public BuildBase.TestResources getTestResources() { - return testResources; - } - - /** - * Sets the value of the testResources property. - * - * @param value - * allowed object is - * {@link BuildBase.TestResources } - * - */ - public void setTestResources(BuildBase.TestResources value) { - this.testResources = value; - } - - /** - * Gets the value of the directory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDirectory() { - return directory; - } - - /** - * Sets the value of the directory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDirectory(String value) { - this.directory = value; - } - - /** - * Gets the value of the finalName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFinalName() { - return finalName; - } - - /** - * Sets the value of the finalName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFinalName(String value) { - this.finalName = value; - } - - /** - * Gets the value of the filters property. - * - * @return - * possible object is - * {@link BuildBase.Filters } - * - */ - public BuildBase.Filters getFilters() { - return filters; - } - - /** - * Sets the value of the filters property. - * - * @param value - * allowed object is - * {@link BuildBase.Filters } - * - */ - public void setFilters(BuildBase.Filters value) { - this.filters = value; - } - - /** - * Gets the value of the pluginManagement property. - * - * @return - * possible object is - * {@link PluginManagement } - * - */ - public PluginManagement getPluginManagement() { - return pluginManagement; - } - - /** - * Sets the value of the pluginManagement property. - * - * @param value - * allowed object is - * {@link PluginManagement } - * - */ - public void setPluginManagement(PluginManagement value) { - this.pluginManagement = value; - } - - /** - * Gets the value of the plugins property. - * - * @return - * possible object is - * {@link BuildBase.Plugins } - * - */ - public BuildBase.Plugins getPlugins() { - return plugins; - } - - /** - * Sets the value of the plugins property. - * - * @param value - * allowed object is - * {@link BuildBase.Plugins } - * - */ - public void setPlugins(BuildBase.Plugins value) { - this.plugins = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="filter" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "filters" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Filters { - - @XmlElement(name = "filter", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List filters; - - /** - * Gets the value of the filters property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the filters property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getFilters().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getFilters() { - if (filters == null) { - filters = new ArrayList(); - } - return this.filters; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "plugins" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Plugins { - - @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List plugins; - - /** - * Gets the value of the plugins property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the plugins property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getPlugins().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Plugin } - * - * - */ - public List getPlugins() { - if (plugins == null) { - plugins = new ArrayList(); - } - return this.plugins; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="resource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "resources" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Resources { - - @XmlElement(name = "resource", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List resources; - - /** - * Gets the value of the resources property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the resources property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getResources().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Resource } - * - * - */ - public List getResources() { - if (resources == null) { - resources = new ArrayList(); - } - return this.resources; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="testResource" type="{http://maven.apache.org/POM/4.0.0}Resource" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "testResources" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class TestResources { - - @XmlElement(name = "testResource", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List testResources; - - /** - * Gets the value of the testResources property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the testResources property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getTestResources().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Resource } - * - * - */ - public List getTestResources() { - if (testResources == null) { - testResources = new ArrayList(); - } - return this.testResources; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java deleted file mode 100644 index 5fdf0c7..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/CiManagement.java +++ /dev/null @@ -1,202 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * - * - * The <code>&lt;CiManagement&gt;</code> element contains informations required to the - * continuous integration system of the project. - * - * - * - * <p>Java class for CiManagement complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="CiManagement"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="system" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="notifiers" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="notifier" type="{http://maven.apache.org/POM/4.0.0}Notifier" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "CiManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <CiManagement> element contains informations required to the\n continuous integration system of the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class CiManagement { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the continuous integration system, e.g. continuum.") - protected String system; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "URL for the continuous integration system used by the project if it has a web\n interface.") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Configuration for notifying developers/users when a build is unsuccessful,\n including user information and notification mode.") - protected CiManagement.Notifiers notifiers; - - /** - * Gets the value of the system property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSystem() { - return system; - } - - /** - * Sets the value of the system property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSystem(String value) { - this.system = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the notifiers property. - * - * @return - * possible object is - * {@link CiManagement.Notifiers } - * - */ - public CiManagement.Notifiers getNotifiers() { - return notifiers; - } - - /** - * Sets the value of the notifiers property. - * - * @param value - * allowed object is - * {@link CiManagement.Notifiers } - * - */ - public void setNotifiers(CiManagement.Notifiers value) { - this.notifiers = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="notifier" type="{http://maven.apache.org/POM/4.0.0}Notifier" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "notifiers" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Notifiers { - - @XmlElement(name = "notifier", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List notifiers; - - /** - * Gets the value of the notifiers property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the notifiers property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getNotifiers().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Notifier } - * - * - */ - public List getNotifiers() { - if (notifiers == null) { - notifiers = new ArrayList(); - } - return this.notifiers; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java deleted file mode 100644 index 21e84f3..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Contributor.java +++ /dev/null @@ -1,412 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * Description of a person who has contributed to the project, but who does not have - * commit privileges. Usually, these contributions come in the form of patches submitted. - * - * <p>Java class for Contributor complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Contributor"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="organization" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="organizationUrl" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="roles" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="timezone" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="properties" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Contributor", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Description of a person who has contributed to the project, but who does not have\n commit privileges. Usually, these contributions come in the form of patches submitted.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Contributor { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The full name of the contributor.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The email address of the contributor.") - protected String email; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL for the homepage of the contributor.") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The organization to which the contributor belongs.") - protected String organization; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL of the organization.") - protected String organizationUrl; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The roles the contributor plays in the project. Each role is described by a\n role element, the body of which is a role name. This can also be used to\n describe the contribution.") - protected Contributor.Roles roles; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The timezone the contributor is in. Typically, this is a number in the range\n
-12 to +14\n or a valid time zone id like \"America/Montreal\" (UTC-05:00) or \"Europe/Paris\" (UTC+01:00).") - protected String timezone; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Properties about the contributor, such as an instant messenger handle.") - protected Contributor.Properties properties; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the email property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getEmail() { - return email; - } - - /** - * Sets the value of the email property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setEmail(String value) { - this.email = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the organization property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOrganization() { - return organization; - } - - /** - * Sets the value of the organization property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOrganization(String value) { - this.organization = value; - } - - /** - * Gets the value of the organizationUrl property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOrganizationUrl() { - return organizationUrl; - } - - /** - * Sets the value of the organizationUrl property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOrganizationUrl(String value) { - this.organizationUrl = value; - } - - /** - * Gets the value of the roles property. - * - * @return - * possible object is - * {@link Contributor.Roles } - * - */ - public Contributor.Roles getRoles() { - return roles; - } - - /** - * Sets the value of the roles property. - * - * @param value - * allowed object is - * {@link Contributor.Roles } - * - */ - public void setRoles(Contributor.Roles value) { - this.roles = value; - } - - /** - * Gets the value of the timezone property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTimezone() { - return timezone; - } - - /** - * Sets the value of the timezone property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTimezone(String value) { - this.timezone = value; - } - - /** - * Gets the value of the properties property. - * - * @return - * possible object is - * {@link Contributor.Properties } - * - */ - public Contributor.Properties getProperties() { - return properties; - } - - /** - * Sets the value of the properties property. - * - * @param value - * allowed object is - * {@link Contributor.Properties } - * - */ - public void setProperties(Contributor.Properties value) { - this.properties = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Properties { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "roles" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Roles { - - @XmlElement(name = "role", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List roles; - - /** - * Gets the value of the roles property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the roles property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getRoles().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getRoles() { - if (roles == null) { - roles = new ArrayList(); - } - return this.roles; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java deleted file mode 100644 index eb8f5dd..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Customer.java +++ /dev/null @@ -1,99 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Пользователь - * - * <p>Java class for Customer complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Customer"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt; - * &lt;element name="age" type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Customer", propOrder = { - "name", - "age" -}) -@XsdInfo(name = "Пользователь", xsdElementPart = "\n \n \n \n \n \n \n \n \n") -public class Customer { - - @XmlElement(required = true) - @XsdInfo(name = "Фамилия и имя") - protected String name; - @XmlElement(required = true) - @XmlSchemaType(name = "positiveInteger") - @XsdInfo(name = "Возраст") - protected BigInteger age; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the age property. - * - * @return - * possible object is - * {@link BigInteger } - * - */ - public BigInteger getAge() { - return age; - } - - /** - * Sets the value of the age property. - * - * @param value - * allowed object is - * {@link BigInteger } - * - */ - public void setAge(BigInteger value) { - this.age = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java deleted file mode 100644 index 2c77fad..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Dependency.java +++ /dev/null @@ -1,370 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * - * - * The <code>&lt;dependency&gt;</code> element contains information about a dependency - * of the project. - * - * - * - * <p>Java class for Dependency complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Dependency"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="classifier" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="scope" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="systemPath" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="exclusions" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="exclusion" type="{http://maven.apache.org/POM/4.0.0}Exclusion" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="optional" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Dependency", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <dependency> element contains information about a dependency\n of the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Dependency { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The project group that produced the dependency, e.g.\n org.apache.maven.") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The unique id for an artifact produced by the project group, e.g.\n maven-artifact.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The version of the dependency, e.g. 3.2.1. In Maven 2, this can also be\n specified as a range of versions.") - protected String version; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "jar") - @XsdInfo(name = "The type of dependency. While it\n usually represents the extension on the filename of the dependency,\n that is not always the case. A type can be mapped to a different\n extension and a classifier.\n The type often corresponds to the packaging used, though this is also\n not always the case.\n Some examples are jar, war, ejb-client\n and test-jar: see default\n artifact handlers for a list.\n New types can be defined by plugins that set\n extensions to true, so this is not a complete list.") - protected String type; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The classifier of the dependency. It is appended to\n the filename after the version. This allows:\n

    \n
  • refering to attached artifact, for example sources and javadoc:\n see default artifact handlers for a list,
  • \n
  • distinguishing two artifacts\n that belong to the same POM but were built differently.\n For example, jdk14 and jdk15.
  • \n
") - protected String classifier; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The scope of the dependency - compile, runtime,\n test, system, and provided. Used to\n calculate the various classpaths used for compilation, testing, and so on.\n It also assists in determining which artifacts to include in a distribution of\n this project. For more information, see\n the\n dependency mechanism.") - protected String scope; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "FOR SYSTEM SCOPE ONLY. Note that use of this property is discouraged\n and may be replaced in later versions. This specifies the path on the filesystem\n for this dependency.\n Requires an absolute path for the value, not relative.\n Use a property that gives the machine specific absolute path,\n e.g. ${java.home}.") - protected String systemPath; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Lists a set of artifacts that should be excluded from this dependency's\n artifact list when it comes to calculating transitive dependencies.") - protected Dependency.Exclusions exclusions; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Indicates the dependency is optional for use of this library. While the\n version of the dependency will be taken into account for dependency calculation if the\n library is used elsewhere, it will not be passed on transitively. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") - protected String optional; - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - - /** - * Gets the value of the type property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getType() { - return type; - } - - /** - * Sets the value of the type property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setType(String value) { - this.type = value; - } - - /** - * Gets the value of the classifier property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getClassifier() { - return classifier; - } - - /** - * Sets the value of the classifier property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setClassifier(String value) { - this.classifier = value; - } - - /** - * Gets the value of the scope property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getScope() { - return scope; - } - - /** - * Sets the value of the scope property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setScope(String value) { - this.scope = value; - } - - /** - * Gets the value of the systemPath property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSystemPath() { - return systemPath; - } - - /** - * Sets the value of the systemPath property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSystemPath(String value) { - this.systemPath = value; - } - - /** - * Gets the value of the exclusions property. - * - * @return - * possible object is - * {@link Dependency.Exclusions } - * - */ - public Dependency.Exclusions getExclusions() { - return exclusions; - } - - /** - * Sets the value of the exclusions property. - * - * @param value - * allowed object is - * {@link Dependency.Exclusions } - * - */ - public void setExclusions(Dependency.Exclusions value) { - this.exclusions = value; - } - - /** - * Gets the value of the optional property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOptional() { - return optional; - } - - /** - * Sets the value of the optional property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOptional(String value) { - this.optional = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="exclusion" type="{http://maven.apache.org/POM/4.0.0}Exclusion" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "exclusions" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Exclusions { - - @XmlElement(name = "exclusion", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List exclusions; - - /** - * Gets the value of the exclusions property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the exclusions property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getExclusions().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Exclusion } - * - * - */ - public List getExclusions() { - if (exclusions == null) { - exclusions = new ArrayList(); - } - return this.exclusions; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java deleted file mode 100644 index a57898c..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DependencyManagement.java +++ /dev/null @@ -1,142 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Section for management of default dependency information for use in a group of - * POMs. - * - * <p>Java class for DependencyManagement complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="DependencyManagement"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="dependencies" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DependencyManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Section for management of default dependency information for use in a group of\n POMs.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class DependencyManagement { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The dependencies specified here are not used until they are referenced in a\n POM within the group. This allows the specification of a \"standard\" version for a\n particular dependency.") - protected DependencyManagement.Dependencies dependencies; - - /** - * Gets the value of the dependencies property. - * - * @return - * possible object is - * {@link DependencyManagement.Dependencies } - * - */ - public DependencyManagement.Dependencies getDependencies() { - return dependencies; - } - - /** - * Sets the value of the dependencies property. - * - * @param value - * allowed object is - * {@link DependencyManagement.Dependencies } - * - */ - public void setDependencies(DependencyManagement.Dependencies value) { - this.dependencies = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "dependencies" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Dependencies { - - @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List dependencies; - - /** - * Gets the value of the dependencies property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the dependencies property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getDependencies().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Dependency } - * - * - */ - public List getDependencies() { - if (dependencies == null) { - dependencies = new ArrayList(); - } - return this.dependencies; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java deleted file mode 100644 index feddb86..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DeploymentRepository.java +++ /dev/null @@ -1,236 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Repository contains the information needed for deploying to the remote - * repository. - * - * <p>Java class for DeploymentRepository complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="DeploymentRepository"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="uniqueVersion" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; - * &lt;element name="releases" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; - * &lt;element name="snapshots" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="layout" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DeploymentRepository", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Repository contains the information needed for deploying to the remote\n repository.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class DeploymentRepository { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") - @XsdInfo(name = "Whether to assign snapshots a unique version comprised of the timestamp and\n build number, or to use the same version each time") - protected Boolean uniqueVersion; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "How to handle downloading of releases from this repository.") - protected RepositoryPolicy releases; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "How to handle downloading of snapshots from this repository.") - protected RepositoryPolicy snapshots; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A unique identifier for a repository. This is used to match the repository\n to configuration in the settings.xml file, for example. Furthermore, the identifier is\n used during POM inheritance and profile injection to detect repositories that should be merged.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Human readable name of the repository.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The url of the repository, in the form protocol://hostname/path.") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") - @XsdInfo(name = "The type of layout this repository uses for locating and storing artifacts -\n can be legacy or default.") - protected String layout; - - /** - * Gets the value of the uniqueVersion property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isUniqueVersion() { - return uniqueVersion; - } - - /** - * Sets the value of the uniqueVersion property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setUniqueVersion(Boolean value) { - this.uniqueVersion = value; - } - - /** - * Gets the value of the releases property. - * - * @return - * possible object is - * {@link RepositoryPolicy } - * - */ - public RepositoryPolicy getReleases() { - return releases; - } - - /** - * Sets the value of the releases property. - * - * @param value - * allowed object is - * {@link RepositoryPolicy } - * - */ - public void setReleases(RepositoryPolicy value) { - this.releases = value; - } - - /** - * Gets the value of the snapshots property. - * - * @return - * possible object is - * {@link RepositoryPolicy } - * - */ - public RepositoryPolicy getSnapshots() { - return snapshots; - } - - /** - * Sets the value of the snapshots property. - * - * @param value - * allowed object is - * {@link RepositoryPolicy } - * - */ - public void setSnapshots(RepositoryPolicy value) { - this.snapshots = value; - } - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the layout property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLayout() { - return layout; - } - - /** - * Sets the value of the layout property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLayout(String value) { - this.layout = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java deleted file mode 100644 index 96a28c0..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Developer.java +++ /dev/null @@ -1,439 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * Information about one of the committers on this project. - * - * <p>Java class for Developer complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Developer"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="organization" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="organizationUrl" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="roles" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="timezone" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="properties" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Developer", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Information about one of the committers on this project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Developer { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The unique ID of the developer in the SCM.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The full name of the contributor.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The email address of the contributor.") - protected String email; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL for the homepage of the contributor.") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The organization to which the contributor belongs.") - protected String organization; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL of the organization.") - protected String organizationUrl; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The roles the contributor plays in the project. Each role is described by a\n role element, the body of which is a role name. This can also be used to\n describe the contribution.") - protected Developer.Roles roles; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The timezone the contributor is in. Typically, this is a number in the range\n -12 to +14\n or a valid time zone id like \"America/Montreal\" (UTC-05:00) or \"Europe/Paris\" (UTC+01:00).") - protected String timezone; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Properties about the contributor, such as an instant messenger handle.") - protected Developer.Properties properties; - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the email property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getEmail() { - return email; - } - - /** - * Sets the value of the email property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setEmail(String value) { - this.email = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the organization property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOrganization() { - return organization; - } - - /** - * Sets the value of the organization property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOrganization(String value) { - this.organization = value; - } - - /** - * Gets the value of the organizationUrl property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOrganizationUrl() { - return organizationUrl; - } - - /** - * Sets the value of the organizationUrl property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOrganizationUrl(String value) { - this.organizationUrl = value; - } - - /** - * Gets the value of the roles property. - * - * @return - * possible object is - * {@link Developer.Roles } - * - */ - public Developer.Roles getRoles() { - return roles; - } - - /** - * Sets the value of the roles property. - * - * @param value - * allowed object is - * {@link Developer.Roles } - * - */ - public void setRoles(Developer.Roles value) { - this.roles = value; - } - - /** - * Gets the value of the timezone property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTimezone() { - return timezone; - } - - /** - * Sets the value of the timezone property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTimezone(String value) { - this.timezone = value; - } - - /** - * Gets the value of the properties property. - * - * @return - * possible object is - * {@link Developer.Properties } - * - */ - public Developer.Properties getProperties() { - return properties; - } - - /** - * Sets the value of the properties property. - * - * @param value - * allowed object is - * {@link Developer.Properties } - * - */ - public void setProperties(Developer.Properties value) { - this.properties = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Properties { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "roles" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Roles { - - @XmlElement(name = "role", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List roles; - - /** - * Gets the value of the roles property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the roles property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getRoles().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getRoles() { - if (roles == null) { - roles = new ArrayList(); - } - return this.roles; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java deleted file mode 100644 index 5dcd765..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/DistributionManagement.java +++ /dev/null @@ -1,208 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * This elements describes all that pertains to distribution for a project. It is - * primarily used for deployment of artifacts and the site produced by the build. - * - * <p>Java class for DistributionManagement complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="DistributionManagement"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}DeploymentRepository" minOccurs="0"/&gt; - * &lt;element name="snapshotRepository" type="{http://maven.apache.org/POM/4.0.0}DeploymentRepository" minOccurs="0"/&gt; - * &lt;element name="site" type="{http://maven.apache.org/POM/4.0.0}Site" minOccurs="0"/&gt; - * &lt;element name="downloadUrl" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="relocation" type="{http://maven.apache.org/POM/4.0.0}Relocation" minOccurs="0"/&gt; - * &lt;element name="status" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DistributionManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "This elements describes all that pertains to distribution for a project. It is\n primarily used for deployment of artifacts and the site produced by the build.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n") -public class DistributionManagement { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Information needed to deploy the artifacts generated by the project to a\n remote repository.") - protected DeploymentRepository repository; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Where to deploy snapshots of artifacts to. If not given, it defaults to the\n repository element.") - protected DeploymentRepository snapshotRepository; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Information needed for deploying the web site of the project.") - protected Site site; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL of the project's download page. If not given users will be\n referred to the homepage given by url.\n This is given to assist in locating artifacts that are not in the repository due to\n licensing restrictions.") - protected String downloadUrl; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Relocation information of the artifact if it has been moved to a new group ID\n and/or artifact ID.") - protected Relocation relocation; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Gives the status of this artifact in the remote repository.\n This must not be set in your local project, as it is updated by\n tools placing it in the reposiory. Valid values are: none (default),\n converted (repository manager converted this from an Maven 1 POM),\n partner\n (directly synced from a partner Maven 2 repository), deployed (was deployed from a Maven 2\n instance), verified (has been hand verified as correct and final).") - protected String status; - - /** - * Gets the value of the repository property. - * - * @return - * possible object is - * {@link DeploymentRepository } - * - */ - public DeploymentRepository getRepository() { - return repository; - } - - /** - * Sets the value of the repository property. - * - * @param value - * allowed object is - * {@link DeploymentRepository } - * - */ - public void setRepository(DeploymentRepository value) { - this.repository = value; - } - - /** - * Gets the value of the snapshotRepository property. - * - * @return - * possible object is - * {@link DeploymentRepository } - * - */ - public DeploymentRepository getSnapshotRepository() { - return snapshotRepository; - } - - /** - * Sets the value of the snapshotRepository property. - * - * @param value - * allowed object is - * {@link DeploymentRepository } - * - */ - public void setSnapshotRepository(DeploymentRepository value) { - this.snapshotRepository = value; - } - - /** - * Gets the value of the site property. - * - * @return - * possible object is - * {@link Site } - * - */ - public Site getSite() { - return site; - } - - /** - * Sets the value of the site property. - * - * @param value - * allowed object is - * {@link Site } - * - */ - public void setSite(Site value) { - this.site = value; - } - - /** - * Gets the value of the downloadUrl property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDownloadUrl() { - return downloadUrl; - } - - /** - * Sets the value of the downloadUrl property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDownloadUrl(String value) { - this.downloadUrl = value; - } - - /** - * Gets the value of the relocation property. - * - * @return - * possible object is - * {@link Relocation } - * - */ - public Relocation getRelocation() { - return relocation; - } - - /** - * Sets the value of the relocation property. - * - * @param value - * allowed object is - * {@link Relocation } - * - */ - public void setRelocation(Relocation value) { - this.relocation = value; - } - - /** - * Gets the value of the status property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getStatus() { - return status; - } - - /** - * Sets the value of the status property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setStatus(String value) { - this.status = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java deleted file mode 100644 index b243c75..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Exclusion.java +++ /dev/null @@ -1,100 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * - * - * The <code>&lt;exclusion&gt;</code> element contains informations required to exclude - * an artifact to the project. - * - * - * - * <p>Java class for Exclusion complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Exclusion"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Exclusion", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <exclusion> element contains informations required to exclude\n an artifact to the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") -public class Exclusion { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The artifact ID of the project to exclude.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The group ID of the project to exclude.") - protected String groupId; - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java deleted file mode 100644 index 457dfff..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Extension.java +++ /dev/null @@ -1,123 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Describes a build extension to utilise. - * - * <p>Java class for Extension complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Extension"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Extension", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Describes a build extension to utilise.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n") -public class Extension { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The group ID of the extension's artifact.") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The artifact ID of the extension.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The version of the extension.") - protected String version; - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java deleted file mode 100644 index 194517c..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/IssueManagement.java +++ /dev/null @@ -1,96 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Information about the issue tracking (or bug tracking) system used to manage this - * project. - * - * <p>Java class for IssueManagement complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="IssueManagement"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="system" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "IssueManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Information about the issue tracking (or bug tracking) system used to manage this\n project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") -public class IssueManagement { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the issue management system, e.g. Bugzilla") - protected String system; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "URL for the issue management system used by the project.") - protected String url; - - /** - * Gets the value of the system property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSystem() { - return system; - } - - /** - * Sets the value of the system property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSystem(String value) { - this.system = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java deleted file mode 100644 index a3e0051..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/License.java +++ /dev/null @@ -1,154 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Describes the licenses for this project. This is used to generate the license - * page of the project's web site, as well as being taken into consideration in other reporting - * and validation. The licenses listed for the project are that of the project itself, and not - * of dependencies. - * - * <p>Java class for License complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="License"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="distribution" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="comments" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "License", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Describes the licenses for this project. This is used to generate the license\n page of the project's web site, as well as being taken into consideration in other reporting\n and validation. The licenses listed for the project are that of the project itself, and not\n of dependencies.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") -public class License { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The full legal name of the license.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The official url for the license text.") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The primary method by which this project may be distributed.\n
\n
repo
\n
may be downloaded from the Maven repository
\n
manual
\n
user must manually download and install the dependency.
\n
") - protected String distribution; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Addendum information pertaining to this license.") - protected String comments; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the distribution property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDistribution() { - return distribution; - } - - /** - * Sets the value of the distribution property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDistribution(String value) { - this.distribution = value; - } - - /** - * Gets the value of the comments property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComments() { - return comments; - } - - /** - * Sets the value of the comments property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComments(String value) { - this.comments = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java deleted file mode 100644 index 9a83247..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/MailingList.java +++ /dev/null @@ -1,282 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * This element describes all of the mailing lists associated with a project. The - * auto-generated site references this information. - * - * <p>Java class for MailingList complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="MailingList"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="subscribe" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="unsubscribe" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="post" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="archive" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="otherArchives" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="otherArchive" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MailingList", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "This element describes all of the mailing lists associated with a project. The\n auto-generated site references this information.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class MailingList { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The name of the mailing list.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The email address or link that can be used to subscribe to\n the mailing list. If this is an email address, a\n mailto: link will automatically be created\n when the documentation is created.") - protected String subscribe; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The email address or link that can be used to unsubscribe to\n the mailing list. If this is an email address, a\n mailto: link will automatically be created\n when the documentation is created.") - protected String unsubscribe; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The email address or link that can be used to post to\n the mailing list. If this is an email address, a\n mailto: link will automatically be created\n when the documentation is created.") - protected String post; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The link to a URL where you can browse the mailing list archive.") - protected String archive; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The link to alternate URLs where you can browse the list archive.") - protected MailingList.OtherArchives otherArchives; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the subscribe property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSubscribe() { - return subscribe; - } - - /** - * Sets the value of the subscribe property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSubscribe(String value) { - this.subscribe = value; - } - - /** - * Gets the value of the unsubscribe property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUnsubscribe() { - return unsubscribe; - } - - /** - * Sets the value of the unsubscribe property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUnsubscribe(String value) { - this.unsubscribe = value; - } - - /** - * Gets the value of the post property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPost() { - return post; - } - - /** - * Sets the value of the post property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPost(String value) { - this.post = value; - } - - /** - * Gets the value of the archive property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArchive() { - return archive; - } - - /** - * Sets the value of the archive property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArchive(String value) { - this.archive = value; - } - - /** - * Gets the value of the otherArchives property. - * - * @return - * possible object is - * {@link MailingList.OtherArchives } - * - */ - public MailingList.OtherArchives getOtherArchives() { - return otherArchives; - } - - /** - * Sets the value of the otherArchives property. - * - * @param value - * allowed object is - * {@link MailingList.OtherArchives } - * - */ - public void setOtherArchives(MailingList.OtherArchives value) { - this.otherArchives = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="otherArchive" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "otherArchives" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class OtherArchives { - - @XmlElement(name = "otherArchive", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List otherArchives; - - /** - * Gets the value of the otherArchives property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the otherArchives property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getOtherArchives().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getOtherArchives() { - if (otherArchives == null) { - otherArchives = new ArrayList(); - } - return this.otherArchives; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java deleted file mode 100644 index 285bcd3..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Notifier.java +++ /dev/null @@ -1,311 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * Configures one method for notifying users/developers when a build breaks. - * - * <p>Java class for Notifier complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Notifier"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="sendOnError" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; - * &lt;element name="sendOnFailure" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; - * &lt;element name="sendOnSuccess" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; - * &lt;element name="sendOnWarning" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt; - * &lt;element name="address" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="configuration" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Notifier", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Configures one method for notifying users/developers when a build breaks.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Notifier { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "mail") - @XsdInfo(name = "The mechanism used to deliver notifications.") - protected String type; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") - @XsdInfo(name = "Whether to send notifications on error.") - protected Boolean sendOnError; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") - @XsdInfo(name = "Whether to send notifications on failure.") - protected Boolean sendOnFailure; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") - @XsdInfo(name = "Whether to send notifications on success.") - protected Boolean sendOnSuccess; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "true") - @XsdInfo(name = "Whether to send notifications on warning.") - protected Boolean sendOnWarning; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Deprecated. Where to send the notification to - eg email address.") - protected String address; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Extended configuration specific to this notifier goes here.") - protected Notifier.Configuration configuration; - - /** - * Gets the value of the type property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getType() { - return type; - } - - /** - * Sets the value of the type property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setType(String value) { - this.type = value; - } - - /** - * Gets the value of the sendOnError property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isSendOnError() { - return sendOnError; - } - - /** - * Sets the value of the sendOnError property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setSendOnError(Boolean value) { - this.sendOnError = value; - } - - /** - * Gets the value of the sendOnFailure property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isSendOnFailure() { - return sendOnFailure; - } - - /** - * Sets the value of the sendOnFailure property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setSendOnFailure(Boolean value) { - this.sendOnFailure = value; - } - - /** - * Gets the value of the sendOnSuccess property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isSendOnSuccess() { - return sendOnSuccess; - } - - /** - * Sets the value of the sendOnSuccess property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setSendOnSuccess(Boolean value) { - this.sendOnSuccess = value; - } - - /** - * Gets the value of the sendOnWarning property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isSendOnWarning() { - return sendOnWarning; - } - - /** - * Sets the value of the sendOnWarning property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setSendOnWarning(Boolean value) { - this.sendOnWarning = value; - } - - /** - * Gets the value of the address property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getAddress() { - return address; - } - - /** - * Sets the value of the address property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setAddress(String value) { - this.address = value; - } - - /** - * Gets the value of the configuration property. - * - * @return - * possible object is - * {@link Notifier.Configuration } - * - */ - public Notifier.Configuration getConfiguration() { - return configuration; - } - - /** - * Sets the value of the configuration property. - * - * @param value - * allowed object is - * {@link Notifier.Configuration } - * - */ - public void setConfiguration(Notifier.Configuration value) { - this.configuration = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Configuration { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java deleted file mode 100644 index 59d7716..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ObjectFactory.java +++ /dev/null @@ -1,720 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlRegistry; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the info.hubbitus.xjc.plugin.example package. - * <p>An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: info.hubbitus.xjc.plugin.example - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Project } - * - */ - public Project createProject() { - return new Project(); - } - - /** - * Create an instance of {@link Developer } - * - */ - public Developer createDeveloper() { - return new Developer(); - } - - /** - * Create an instance of {@link MailingList } - * - */ - public MailingList createMailingList() { - return new MailingList(); - } - - /** - * Create an instance of {@link ReportSet } - * - */ - public ReportSet createReportSet() { - return new ReportSet(); - } - - /** - * Create an instance of {@link ReportPlugin } - * - */ - public ReportPlugin createReportPlugin() { - return new ReportPlugin(); - } - - /** - * Create an instance of {@link PluginManagement } - * - */ - public PluginManagement createPluginManagement() { - return new PluginManagement(); - } - - /** - * Create an instance of {@link Resource } - * - */ - public Resource createResource() { - return new Resource(); - } - - /** - * Create an instance of {@link PluginExecution } - * - */ - public PluginExecution createPluginExecution() { - return new PluginExecution(); - } - - /** - * Create an instance of {@link Dependency } - * - */ - public Dependency createDependency() { - return new Dependency(); - } - - /** - * Create an instance of {@link Plugin } - * - */ - public Plugin createPlugin() { - return new Plugin(); - } - - /** - * Create an instance of {@link BuildBase } - * - */ - public BuildBase createBuildBase() { - return new BuildBase(); - } - - /** - * Create an instance of {@link Profile } - * - */ - public Profile createProfile() { - return new Profile(); - } - - /** - * Create an instance of {@link Notifier } - * - */ - public Notifier createNotifier() { - return new Notifier(); - } - - /** - * Create an instance of {@link Contributor } - * - */ - public Contributor createContributor() { - return new Contributor(); - } - - /** - * Create an instance of {@link Reporting } - * - */ - public Reporting createReporting() { - return new Reporting(); - } - - /** - * Create an instance of {@link Build } - * - */ - public Build createBuild() { - return new Build(); - } - - /** - * Create an instance of {@link DependencyManagement } - * - */ - public DependencyManagement createDependencyManagement() { - return new DependencyManagement(); - } - - /** - * Create an instance of {@link CiManagement } - * - */ - public CiManagement createCiManagement() { - return new CiManagement(); - } - - /** - * Create an instance of {@link Parent } - * - */ - public Parent createParent() { - return new Parent(); - } - - /** - * Create an instance of {@link Organization } - * - */ - public Organization createOrganization() { - return new Organization(); - } - - /** - * Create an instance of {@link Project.Licenses } - * - */ - public Project.Licenses createProjectLicenses() { - return new Project.Licenses(); - } - - /** - * Create an instance of {@link Project.Developers } - * - */ - public Project.Developers createProjectDevelopers() { - return new Project.Developers(); - } - - /** - * Create an instance of {@link Project.Contributors } - * - */ - public Project.Contributors createProjectContributors() { - return new Project.Contributors(); - } - - /** - * Create an instance of {@link Project.MailingLists } - * - */ - public Project.MailingLists createProjectMailingLists() { - return new Project.MailingLists(); - } - - /** - * Create an instance of {@link Prerequisites } - * - */ - public Prerequisites createPrerequisites() { - return new Prerequisites(); - } - - /** - * Create an instance of {@link Project.Modules } - * - */ - public Project.Modules createProjectModules() { - return new Project.Modules(); - } - - /** - * Create an instance of {@link Scm } - * - */ - public Scm createScm() { - return new Scm(); - } - - /** - * Create an instance of {@link IssueManagement } - * - */ - public IssueManagement createIssueManagement() { - return new IssueManagement(); - } - - /** - * Create an instance of {@link DistributionManagement } - * - */ - public DistributionManagement createDistributionManagement() { - return new DistributionManagement(); - } - - /** - * Create an instance of {@link Project.Properties } - * - */ - public Project.Properties createProjectProperties() { - return new Project.Properties(); - } - - /** - * Create an instance of {@link Project.Dependencies } - * - */ - public Project.Dependencies createProjectDependencies() { - return new Project.Dependencies(); - } - - /** - * Create an instance of {@link Project.Repositories } - * - */ - public Project.Repositories createProjectRepositories() { - return new Project.Repositories(); - } - - /** - * Create an instance of {@link Project.PluginRepositories } - * - */ - public Project.PluginRepositories createProjectPluginRepositories() { - return new Project.PluginRepositories(); - } - - /** - * Create an instance of {@link Project.Reports } - * - */ - public Project.Reports createProjectReports() { - return new Project.Reports(); - } - - /** - * Create an instance of {@link Project.Profiles } - * - */ - public Project.Profiles createProjectProfiles() { - return new Project.Profiles(); - } - - /** - * Create an instance of {@link Relocation } - * - */ - public Relocation createRelocation() { - return new Relocation(); - } - - /** - * Create an instance of {@link Site } - * - */ - public Site createSite() { - return new Site(); - } - - /** - * Create an instance of {@link DeploymentRepository } - * - */ - public DeploymentRepository createDeploymentRepository() { - return new DeploymentRepository(); - } - - /** - * Create an instance of {@link RepositoryPolicy } - * - */ - public RepositoryPolicy createRepositoryPolicy() { - return new RepositoryPolicy(); - } - - /** - * Create an instance of {@link Repository } - * - */ - public Repository createRepository() { - return new Repository(); - } - - /** - * Create an instance of {@link Exclusion } - * - */ - public Exclusion createExclusion() { - return new Exclusion(); - } - - /** - * Create an instance of {@link Activation } - * - */ - public Activation createActivation() { - return new Activation(); - } - - /** - * Create an instance of {@link ActivationProperty } - * - */ - public ActivationProperty createActivationProperty() { - return new ActivationProperty(); - } - - /** - * Create an instance of {@link ActivationOS } - * - */ - public ActivationOS createActivationOS() { - return new ActivationOS(); - } - - /** - * Create an instance of {@link ActivationFile } - * - */ - public ActivationFile createActivationFile() { - return new ActivationFile(); - } - - /** - * Create an instance of {@link Extension } - * - */ - public Extension createExtension() { - return new Extension(); - } - - /** - * Create an instance of {@link License } - * - */ - public License createLicense() { - return new License(); - } - - /** - * Create an instance of {@link Customer } - * - */ - public Customer createCustomer() { - return new Customer(); - } - - /** - * Create an instance of {@link Developer.Roles } - * - */ - public Developer.Roles createDeveloperRoles() { - return new Developer.Roles(); - } - - /** - * Create an instance of {@link Developer.Properties } - * - */ - public Developer.Properties createDeveloperProperties() { - return new Developer.Properties(); - } - - /** - * Create an instance of {@link MailingList.OtherArchives } - * - */ - public MailingList.OtherArchives createMailingListOtherArchives() { - return new MailingList.OtherArchives(); - } - - /** - * Create an instance of {@link ReportSet.Reports } - * - */ - public ReportSet.Reports createReportSetReports() { - return new ReportSet.Reports(); - } - - /** - * Create an instance of {@link ReportSet.Configuration } - * - */ - public ReportSet.Configuration createReportSetConfiguration() { - return new ReportSet.Configuration(); - } - - /** - * Create an instance of {@link ReportPlugin.ReportSets } - * - */ - public ReportPlugin.ReportSets createReportPluginReportSets() { - return new ReportPlugin.ReportSets(); - } - - /** - * Create an instance of {@link ReportPlugin.Configuration } - * - */ - public ReportPlugin.Configuration createReportPluginConfiguration() { - return new ReportPlugin.Configuration(); - } - - /** - * Create an instance of {@link PluginManagement.Plugins } - * - */ - public PluginManagement.Plugins createPluginManagementPlugins() { - return new PluginManagement.Plugins(); - } - - /** - * Create an instance of {@link Resource.Includes } - * - */ - public Resource.Includes createResourceIncludes() { - return new Resource.Includes(); - } - - /** - * Create an instance of {@link Resource.Excludes } - * - */ - public Resource.Excludes createResourceExcludes() { - return new Resource.Excludes(); - } - - /** - * Create an instance of {@link PluginExecution.Goals } - * - */ - public PluginExecution.Goals createPluginExecutionGoals() { - return new PluginExecution.Goals(); - } - - /** - * Create an instance of {@link PluginExecution.Configuration } - * - */ - public PluginExecution.Configuration createPluginExecutionConfiguration() { - return new PluginExecution.Configuration(); - } - - /** - * Create an instance of {@link Dependency.Exclusions } - * - */ - public Dependency.Exclusions createDependencyExclusions() { - return new Dependency.Exclusions(); - } - - /** - * Create an instance of {@link Plugin.Executions } - * - */ - public Plugin.Executions createPluginExecutions() { - return new Plugin.Executions(); - } - - /** - * Create an instance of {@link Plugin.Dependencies } - * - */ - public Plugin.Dependencies createPluginDependencies() { - return new Plugin.Dependencies(); - } - - /** - * Create an instance of {@link Plugin.Goals } - * - */ - public Plugin.Goals createPluginGoals() { - return new Plugin.Goals(); - } - - /** - * Create an instance of {@link Plugin.Configuration } - * - */ - public Plugin.Configuration createPluginConfiguration() { - return new Plugin.Configuration(); - } - - /** - * Create an instance of {@link BuildBase.Resources } - * - */ - public BuildBase.Resources createBuildBaseResources() { - return new BuildBase.Resources(); - } - - /** - * Create an instance of {@link BuildBase.TestResources } - * - */ - public BuildBase.TestResources createBuildBaseTestResources() { - return new BuildBase.TestResources(); - } - - /** - * Create an instance of {@link BuildBase.Filters } - * - */ - public BuildBase.Filters createBuildBaseFilters() { - return new BuildBase.Filters(); - } - - /** - * Create an instance of {@link BuildBase.Plugins } - * - */ - public BuildBase.Plugins createBuildBasePlugins() { - return new BuildBase.Plugins(); - } - - /** - * Create an instance of {@link Profile.Modules } - * - */ - public Profile.Modules createProfileModules() { - return new Profile.Modules(); - } - - /** - * Create an instance of {@link Profile.Properties } - * - */ - public Profile.Properties createProfileProperties() { - return new Profile.Properties(); - } - - /** - * Create an instance of {@link Profile.Dependencies } - * - */ - public Profile.Dependencies createProfileDependencies() { - return new Profile.Dependencies(); - } - - /** - * Create an instance of {@link Profile.Repositories } - * - */ - public Profile.Repositories createProfileRepositories() { - return new Profile.Repositories(); - } - - /** - * Create an instance of {@link Profile.PluginRepositories } - * - */ - public Profile.PluginRepositories createProfilePluginRepositories() { - return new Profile.PluginRepositories(); - } - - /** - * Create an instance of {@link Profile.Reports } - * - */ - public Profile.Reports createProfileReports() { - return new Profile.Reports(); - } - - /** - * Create an instance of {@link Notifier.Configuration } - * - */ - public Notifier.Configuration createNotifierConfiguration() { - return new Notifier.Configuration(); - } - - /** - * Create an instance of {@link Contributor.Roles } - * - */ - public Contributor.Roles createContributorRoles() { - return new Contributor.Roles(); - } - - /** - * Create an instance of {@link Contributor.Properties } - * - */ - public Contributor.Properties createContributorProperties() { - return new Contributor.Properties(); - } - - /** - * Create an instance of {@link Reporting.Plugins } - * - */ - public Reporting.Plugins createReportingPlugins() { - return new Reporting.Plugins(); - } - - /** - * Create an instance of {@link Build.Extensions } - * - */ - public Build.Extensions createBuildExtensions() { - return new Build.Extensions(); - } - - /** - * Create an instance of {@link Build.Resources } - * - */ - public Build.Resources createBuildResources() { - return new Build.Resources(); - } - - /** - * Create an instance of {@link Build.TestResources } - * - */ - public Build.TestResources createBuildTestResources() { - return new Build.TestResources(); - } - - /** - * Create an instance of {@link Build.Filters } - * - */ - public Build.Filters createBuildFilters() { - return new Build.Filters(); - } - - /** - * Create an instance of {@link Build.Plugins } - * - */ - public Build.Plugins createBuildPlugins() { - return new Build.Plugins(); - } - - /** - * Create an instance of {@link DependencyManagement.Dependencies } - * - */ - public DependencyManagement.Dependencies createDependencyManagementDependencies() { - return new DependencyManagement.Dependencies(); - } - - /** - * Create an instance of {@link CiManagement.Notifiers } - * - */ - public CiManagement.Notifiers createCiManagementNotifiers() { - return new CiManagement.Notifiers(); - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java deleted file mode 100644 index 4f00020..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Organization.java +++ /dev/null @@ -1,95 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Specifies the organization that produces this project. - * - * <p>Java class for Organization complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Organization"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Organization", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Specifies the organization that produces this project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n") -public class Organization { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The full name of the organization.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL to the organization's home page.") - protected String url; - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java deleted file mode 100644 index 7623920..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Parent.java +++ /dev/null @@ -1,157 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * - * - * The <code>&lt;parent&gt;</code> element contains information required to locate the parent project from which - * this project will inherit from. - * <strong>Note:</strong> The children of this element are not interpolated and must be given as literal values. - * - * - * - * <p>Java class for Parent complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Parent"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="relativePath" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Parent", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <parent> element contains information required to locate the parent project from which\n this project will inherit from.\n Note: The children of this element are not interpolated and must be given as literal values.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") -public class Parent { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The group id of the parent project to inherit from.") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The artifact id of the parent project to inherit from.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The version of the parent project to inherit.") - protected String version; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "../pom.xml") - @XsdInfo(name = "The relative path of the parent pom.xml file within the check out.\n If not specified, it defaults to ../pom.xml.\n Maven looks for the parent POM first in this location on\n the filesystem, then the local repository, and lastly in the remote repo.\n relativePath allows you to select a different location,\n for example when your structure is flat, or deeper without an intermediate parent POM.\n However, the group ID, artifact ID and version are still required,\n and must match the file in the location given or it will revert to the repository for the POM.\n This feature is only for enhancing the development in a local checkout of that project.\n Set the value to an empty string in case you want to disable the feature and always resolve\n the parent POM from the repositories.") - protected String relativePath; - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - - /** - * Gets the value of the relativePath property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRelativePath() { - return relativePath; - } - - /** - * Sets the value of the relativePath property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRelativePath(String value) { - this.relativePath = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java deleted file mode 100644 index 5d4ff74..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Plugin.java +++ /dev/null @@ -1,587 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * - * - * The <code>&lt;plugin&gt;</code> element contains informations required for a plugin. - * - * - * - * <p>Java class for Plugin complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Plugin"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="extensions" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="executions" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="execution" type="{http://maven.apache.org/POM/4.0.0}PluginExecution" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="dependencies" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="goals" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="configuration" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Plugin", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <plugin> element contains informations required for a plugin.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Plugin { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "org.apache.maven.plugins") - @XsdInfo(name = "The group ID of the plugin in the repository.") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The artifact ID of the plugin in the repository.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The version (or valid range of versions) of the plugin to be used.") - protected String version; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether to load Maven extensions (such as packaging and type handlers) from\n this plugin. For performance reasons, this should only be enabled when necessary. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") - protected String extensions; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Multiple specifications of a set of goals to execute during the build\n lifecycle, each having (possibly) a different configuration.") - protected Plugin.Executions executions; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Additional dependencies that this project needs to introduce to the plugin's\n classloader.") - protected Plugin.Dependencies dependencies; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Deprecated. Unused by Maven.") - protected Plugin.Goals goals; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") - protected String inherited; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") - protected Plugin.Configuration configuration; - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - - /** - * Gets the value of the extensions property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getExtensions() { - return extensions; - } - - /** - * Sets the value of the extensions property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setExtensions(String value) { - this.extensions = value; - } - - /** - * Gets the value of the executions property. - * - * @return - * possible object is - * {@link Plugin.Executions } - * - */ - public Plugin.Executions getExecutions() { - return executions; - } - - /** - * Sets the value of the executions property. - * - * @param value - * allowed object is - * {@link Plugin.Executions } - * - */ - public void setExecutions(Plugin.Executions value) { - this.executions = value; - } - - /** - * Gets the value of the dependencies property. - * - * @return - * possible object is - * {@link Plugin.Dependencies } - * - */ - public Plugin.Dependencies getDependencies() { - return dependencies; - } - - /** - * Sets the value of the dependencies property. - * - * @param value - * allowed object is - * {@link Plugin.Dependencies } - * - */ - public void setDependencies(Plugin.Dependencies value) { - this.dependencies = value; - } - - /** - * Gets the value of the goals property. - * - * @return - * possible object is - * {@link Plugin.Goals } - * - */ - public Plugin.Goals getGoals() { - return goals; - } - - /** - * Sets the value of the goals property. - * - * @param value - * allowed object is - * {@link Plugin.Goals } - * - */ - public void setGoals(Plugin.Goals value) { - this.goals = value; - } - - /** - * Gets the value of the inherited property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getInherited() { - return inherited; - } - - /** - * Sets the value of the inherited property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setInherited(String value) { - this.inherited = value; - } - - /** - * Gets the value of the configuration property. - * - * @return - * possible object is - * {@link Plugin.Configuration } - * - */ - public Plugin.Configuration getConfiguration() { - return configuration; - } - - /** - * Sets the value of the configuration property. - * - * @param value - * allowed object is - * {@link Plugin.Configuration } - * - */ - public void setConfiguration(Plugin.Configuration value) { - this.configuration = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Configuration { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "dependencies" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Dependencies { - - @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List dependencies; - - /** - * Gets the value of the dependencies property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the dependencies property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getDependencies().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Dependency } - * - * - */ - public List getDependencies() { - if (dependencies == null) { - dependencies = new ArrayList(); - } - return this.dependencies; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="execution" type="{http://maven.apache.org/POM/4.0.0}PluginExecution" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "executions" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Executions { - - @XmlElement(name = "execution", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List executions; - - /** - * Gets the value of the executions property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the executions property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getExecutions().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link PluginExecution } - * - * - */ - public List getExecutions() { - if (executions == null) { - executions = new ArrayList(); - } - return this.executions; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Goals { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java deleted file mode 100644 index 34c4a50..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginExecution.java +++ /dev/null @@ -1,332 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * - * - * The <code>&lt;execution&gt;</code> element contains informations required for the - * execution of a plugin. - * - * - * - * <p>Java class for PluginExecution complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="PluginExecution"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="phase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="goals" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="goal" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="configuration" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "PluginExecution", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <execution> element contains informations required for the\n execution of a plugin.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class PluginExecution { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") - @XsdInfo(name = "The identifier of this execution for labelling the goals during the build,\n and for matching executions to merge during inheritance and profile injection.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The build lifecycle phase to bind the goals in this execution to. If omitted,\n the goals will be bound to the default phase specified by the plugin.") - protected String phase; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The goals to execute with the given configuration.") - protected PluginExecution.Goals goals; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") - protected String inherited; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") - protected PluginExecution.Configuration configuration; - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the phase property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPhase() { - return phase; - } - - /** - * Sets the value of the phase property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPhase(String value) { - this.phase = value; - } - - /** - * Gets the value of the goals property. - * - * @return - * possible object is - * {@link PluginExecution.Goals } - * - */ - public PluginExecution.Goals getGoals() { - return goals; - } - - /** - * Sets the value of the goals property. - * - * @param value - * allowed object is - * {@link PluginExecution.Goals } - * - */ - public void setGoals(PluginExecution.Goals value) { - this.goals = value; - } - - /** - * Gets the value of the inherited property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getInherited() { - return inherited; - } - - /** - * Sets the value of the inherited property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setInherited(String value) { - this.inherited = value; - } - - /** - * Gets the value of the configuration property. - * - * @return - * possible object is - * {@link PluginExecution.Configuration } - * - */ - public PluginExecution.Configuration getConfiguration() { - return configuration; - } - - /** - * Sets the value of the configuration property. - * - * @param value - * allowed object is - * {@link PluginExecution.Configuration } - * - */ - public void setConfiguration(PluginExecution.Configuration value) { - this.configuration = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Configuration { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="goal" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "goals" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Goals { - - @XmlElement(name = "goal", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List goals; - - /** - * Gets the value of the goals property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the goals property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getGoals().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getGoals() { - if (goals == null) { - goals = new ArrayList(); - } - return this.goals; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java deleted file mode 100644 index ab3393c..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/PluginManagement.java +++ /dev/null @@ -1,142 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Section for management of default plugin information for use in a group of POMs. - * - * - * <p>Java class for PluginManagement complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="PluginManagement"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="plugins" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "PluginManagement", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Section for management of default plugin information for use in a group of POMs.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class PluginManagement { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The list of plugins to use.") - protected PluginManagement.Plugins plugins; - - /** - * Gets the value of the plugins property. - * - * @return - * possible object is - * {@link PluginManagement.Plugins } - * - */ - public PluginManagement.Plugins getPlugins() { - return plugins; - } - - /** - * Sets the value of the plugins property. - * - * @param value - * allowed object is - * {@link PluginManagement.Plugins } - * - */ - public void setPlugins(PluginManagement.Plugins value) { - this.plugins = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}Plugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "plugins" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Plugins { - - @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List plugins; - - /** - * Gets the value of the plugins property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the plugins property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getPlugins().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Plugin } - * - * - */ - public List getPlugins() { - if (plugins == null) { - plugins = new ArrayList(); - } - return this.plugins; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java deleted file mode 100644 index 3b6cd7b..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Prerequisites.java +++ /dev/null @@ -1,67 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Describes the prerequisites a project can have. - * - * <p>Java class for Prerequisites complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Prerequisites"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="maven" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Prerequisites", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Describes the prerequisites a project can have.", xsdElementPart = "\n \n \n \n \n \n \n \n") -public class Prerequisites { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "2.0") - @XsdInfo(name = "For a plugin project, the minimum version of Maven required to use\n the resulting plugin.
\n For specifying the minimum version of Maven required to build a\n project, this element is deprecated. Use the Maven Enforcer\n Plugin's requireMavenVersion\n rule instead.") - protected String maven; - - /** - * Gets the value of the maven property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMaven() { - return maven; - } - - /** - * Sets the value of the maven property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMaven(String value) { - this.maven = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java deleted file mode 100644 index 3ee6b7a..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Profile.java +++ /dev/null @@ -1,812 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * Modifications to the build process which is activated based on environmental - * parameters or command line arguments. - * - * <p>Java class for Profile complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Profile"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="activation" type="{http://maven.apache.org/POM/4.0.0}Activation" minOccurs="0"/&gt; - * &lt;element name="build" type="{http://maven.apache.org/POM/4.0.0}BuildBase" minOccurs="0"/&gt; - * &lt;element name="modules" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="distributionManagement" type="{http://maven.apache.org/POM/4.0.0}DistributionManagement" minOccurs="0"/&gt; - * &lt;element name="properties" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="dependencyManagement" type="{http://maven.apache.org/POM/4.0.0}DependencyManagement" minOccurs="0"/&gt; - * &lt;element name="dependencies" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="repositories" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="pluginRepositories" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="reports" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="reporting" type="{http://maven.apache.org/POM/4.0.0}Reporting" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Profile", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Modifications to the build process which is activated based on environmental\n parameters or command line arguments.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Profile { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") - @XsdInfo(name = "The identifier of this build profile. This is used for command line\n activation, and identifies profiles to be merged.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The conditional logic which will automatically trigger the inclusion of this\n profile.") - protected Activation activation; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Information required to build the project.") - protected BuildBase build; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The modules (sometimes called subprojects) to build as a part of this\n project. Each module listed is a relative path to the directory containing the module.\n To be consistent with the way default urls are calculated from parent, it is recommended\n to have module names match artifact ids.") - protected Profile.Modules modules; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Distribution information for a project that enables deployment of the site\n and artifacts to remote web servers and repositories respectively.") - protected DistributionManagement distributionManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Properties that can be used throughout the POM as a substitution, and\n are used as filters in resources if enabled.\n The format is <name>value</name>.") - protected Profile.Properties properties; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Default dependency information for projects that inherit from this one. The\n dependencies in this section are not immediately resolved. Instead, when a POM derived\n from this one declares a dependency described by a matching groupId and artifactId, the\n version and other values from this section are used for that dependency if they were not\n already specified.") - protected DependencyManagement dependencyManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the dependencies associated with a\n project.\n These dependencies are used to construct a classpath for your\n project during the build process. They are automatically downloaded from the\n repositories defined in this project.\n See the\n dependency mechanism for more information.") - protected Profile.Dependencies dependencies; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The lists of the remote repositories for discovering dependencies and\n extensions.") - protected Profile.Repositories repositories; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The lists of the remote repositories for discovering plugins for builds and\n reports.") - protected Profile.PluginRepositories pluginRepositories; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Deprecated. Now ignored by Maven.") - protected Profile.Reports reports; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element includes the specification of report plugins to use\n to generate the reports on the Maven-generated site.\n These reports will be run when a user executes mvn site.\n All of the reports will be included in the navigation bar for browsing.") - protected Reporting reporting; - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the activation property. - * - * @return - * possible object is - * {@link Activation } - * - */ - public Activation getActivation() { - return activation; - } - - /** - * Sets the value of the activation property. - * - * @param value - * allowed object is - * {@link Activation } - * - */ - public void setActivation(Activation value) { - this.activation = value; - } - - /** - * Gets the value of the build property. - * - * @return - * possible object is - * {@link BuildBase } - * - */ - public BuildBase getBuild() { - return build; - } - - /** - * Sets the value of the build property. - * - * @param value - * allowed object is - * {@link BuildBase } - * - */ - public void setBuild(BuildBase value) { - this.build = value; - } - - /** - * Gets the value of the modules property. - * - * @return - * possible object is - * {@link Profile.Modules } - * - */ - public Profile.Modules getModules() { - return modules; - } - - /** - * Sets the value of the modules property. - * - * @param value - * allowed object is - * {@link Profile.Modules } - * - */ - public void setModules(Profile.Modules value) { - this.modules = value; - } - - /** - * Gets the value of the distributionManagement property. - * - * @return - * possible object is - * {@link DistributionManagement } - * - */ - public DistributionManagement getDistributionManagement() { - return distributionManagement; - } - - /** - * Sets the value of the distributionManagement property. - * - * @param value - * allowed object is - * {@link DistributionManagement } - * - */ - public void setDistributionManagement(DistributionManagement value) { - this.distributionManagement = value; - } - - /** - * Gets the value of the properties property. - * - * @return - * possible object is - * {@link Profile.Properties } - * - */ - public Profile.Properties getProperties() { - return properties; - } - - /** - * Sets the value of the properties property. - * - * @param value - * allowed object is - * {@link Profile.Properties } - * - */ - public void setProperties(Profile.Properties value) { - this.properties = value; - } - - /** - * Gets the value of the dependencyManagement property. - * - * @return - * possible object is - * {@link DependencyManagement } - * - */ - public DependencyManagement getDependencyManagement() { - return dependencyManagement; - } - - /** - * Sets the value of the dependencyManagement property. - * - * @param value - * allowed object is - * {@link DependencyManagement } - * - */ - public void setDependencyManagement(DependencyManagement value) { - this.dependencyManagement = value; - } - - /** - * Gets the value of the dependencies property. - * - * @return - * possible object is - * {@link Profile.Dependencies } - * - */ - public Profile.Dependencies getDependencies() { - return dependencies; - } - - /** - * Sets the value of the dependencies property. - * - * @param value - * allowed object is - * {@link Profile.Dependencies } - * - */ - public void setDependencies(Profile.Dependencies value) { - this.dependencies = value; - } - - /** - * Gets the value of the repositories property. - * - * @return - * possible object is - * {@link Profile.Repositories } - * - */ - public Profile.Repositories getRepositories() { - return repositories; - } - - /** - * Sets the value of the repositories property. - * - * @param value - * allowed object is - * {@link Profile.Repositories } - * - */ - public void setRepositories(Profile.Repositories value) { - this.repositories = value; - } - - /** - * Gets the value of the pluginRepositories property. - * - * @return - * possible object is - * {@link Profile.PluginRepositories } - * - */ - public Profile.PluginRepositories getPluginRepositories() { - return pluginRepositories; - } - - /** - * Sets the value of the pluginRepositories property. - * - * @param value - * allowed object is - * {@link Profile.PluginRepositories } - * - */ - public void setPluginRepositories(Profile.PluginRepositories value) { - this.pluginRepositories = value; - } - - /** - * Gets the value of the reports property. - * - * @return - * possible object is - * {@link Profile.Reports } - * - */ - public Profile.Reports getReports() { - return reports; - } - - /** - * Sets the value of the reports property. - * - * @param value - * allowed object is - * {@link Profile.Reports } - * - */ - public void setReports(Profile.Reports value) { - this.reports = value; - } - - /** - * Gets the value of the reporting property. - * - * @return - * possible object is - * {@link Reporting } - * - */ - public Reporting getReporting() { - return reporting; - } - - /** - * Sets the value of the reporting property. - * - * @param value - * allowed object is - * {@link Reporting } - * - */ - public void setReporting(Reporting value) { - this.reporting = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "dependencies" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Dependencies { - - @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List dependencies; - - /** - * Gets the value of the dependencies property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the dependencies property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getDependencies().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Dependency } - * - * - */ - public List getDependencies() { - if (dependencies == null) { - dependencies = new ArrayList(); - } - return this.dependencies; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "modules" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Modules { - - @XmlElement(name = "module", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List modules; - - /** - * Gets the value of the modules property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the modules property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getModules().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getModules() { - if (modules == null) { - modules = new ArrayList(); - } - return this.modules; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "pluginRepositories" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class PluginRepositories { - - @XmlElement(name = "pluginRepository", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List pluginRepositories; - - /** - * Gets the value of the pluginRepositories property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the pluginRepositories property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getPluginRepositories().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Repository } - * - * - */ - public List getPluginRepositories() { - if (pluginRepositories == null) { - pluginRepositories = new ArrayList(); - } - return this.pluginRepositories; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Properties { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Reports { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "repositories" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Repositories { - - @XmlElement(name = "repository", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List repositories; - - /** - * Gets the value of the repositories property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the repositories property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getRepositories().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Repository } - * - * - */ - public List getRepositories() { - if (repositories == null) { - repositories = new ArrayList(); - } - return this.repositories; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java deleted file mode 100644 index 8c2dd82..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Project.java +++ /dev/null @@ -1,1682 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * - * - * The <code>&lt;project&gt;</code> element is the root of the descriptor. - * The following table lists all of the possible child elements. - * - * - * - * <p>Java class for Model complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Model"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="modelVersion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="parent" type="{http://maven.apache.org/POM/4.0.0}Parent" minOccurs="0"/&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="packaging" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="inceptionYear" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="organization" type="{http://maven.apache.org/POM/4.0.0}Organization" minOccurs="0"/&gt; - * &lt;element name="licenses" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="license" type="{http://maven.apache.org/POM/4.0.0}License" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="developers" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="developer" type="{http://maven.apache.org/POM/4.0.0}Developer" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="contributors" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="contributor" type="{http://maven.apache.org/POM/4.0.0}Contributor" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="mailingLists" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="mailingList" type="{http://maven.apache.org/POM/4.0.0}MailingList" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="prerequisites" type="{http://maven.apache.org/POM/4.0.0}Prerequisites" minOccurs="0"/&gt; - * &lt;element name="modules" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="scm" type="{http://maven.apache.org/POM/4.0.0}Scm" minOccurs="0"/&gt; - * &lt;element name="issueManagement" type="{http://maven.apache.org/POM/4.0.0}IssueManagement" minOccurs="0"/&gt; - * &lt;element name="ciManagement" type="{http://maven.apache.org/POM/4.0.0}CiManagement" minOccurs="0"/&gt; - * &lt;element name="distributionManagement" type="{http://maven.apache.org/POM/4.0.0}DistributionManagement" minOccurs="0"/&gt; - * &lt;element name="properties" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="dependencyManagement" type="{http://maven.apache.org/POM/4.0.0}DependencyManagement" minOccurs="0"/&gt; - * &lt;element name="dependencies" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="repositories" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="pluginRepositories" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="build" type="{http://maven.apache.org/POM/4.0.0}Build" minOccurs="0"/&gt; - * &lt;element name="reports" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="reporting" type="{http://maven.apache.org/POM/4.0.0}Reporting" minOccurs="0"/&gt; - * &lt;element name="profiles" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="profile" type="{http://maven.apache.org/POM/4.0.0}Profile" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Model", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XmlRootElement(name = "project", namespace = "http://maven.apache.org/POM/4.0.0") -@XsdInfo(name = "The <project> element is the root of the descriptor.\n The following table lists all of the possible child elements.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Project { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Declares to which version of project descriptor this POM conforms.") - protected String modelVersion; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The location of the parent project, if one exists. Values from the parent\n project will be the default for this project if they are left unspecified. The location\n is given as a group ID, artifact ID and version.") - protected Parent parent; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A universally unique identifier for a project. It is normal to\n use a fully-qualified package name to distinguish it from other\n projects with a similar name (eg. org.apache.maven).") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The identifier for this artifact that is unique within the group given by the\n group ID. An artifact is something that is either produced or used by a project.\n Examples of artifacts produced by Maven for a project include: JARs, source and binary\n distributions, and WARs.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The current version of the artifact produced by this project.") - protected String version; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "jar") - @XsdInfo(name = "The type of artifact this project produces, for example jar\n war\n ear\n pom.\n Plugins can create their own packaging, and\n therefore their own packaging types,\n so this list does not contain all possible types.") - protected String packaging; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The full name of the project.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A detailed description of the project, used by Maven whenever it needs to\n describe the project, such as on the web site. While this element can be specified as\n CDATA to enable the use of HTML tags within the description, it is discouraged to allow\n plain text representation. If you need to modify the index page of the generated web\n site, you are able to specify your own instead of adjusting this text.") - protected String description; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL to the project's homepage.\n
Default value is: parent value [+ path adjustment] + artifactId") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The year of the project's inception, specified with 4 digits. This value is\n used when generating copyright notices as well as being informational.") - protected String inceptionYear; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes various attributes of the organization to which the\n project belongs. These attributes are utilized when documentation is created (for\n copyright notices and links).") - protected Organization organization; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the licenses for this project.\n Each license is described by a license element, which\n is then described by additional elements.\n Projects should only list the license(s) that applies to the project\n and not the licenses that apply to dependencies.\n If multiple licenses are listed, it is assumed that the user can select\n any of them, not that they must accept all.") - protected Project.Licenses licenses; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Describes the committers of a project.") - protected Project.Developers developers; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Describes the contributors to a project that are not yet committers.") - protected Project.Contributors contributors; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Contains information about a project's mailing lists.") - protected Project.MailingLists mailingLists; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Describes the prerequisites in the build environment for this project.") - protected Prerequisites prerequisites; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The modules (sometimes called subprojects) to build as a part of this\n project. Each module listed is a relative path to the directory containing the module.\n To be consistent with the way default urls are calculated from parent, it is recommended\n to have module names match artifact ids.") - protected Project.Modules modules; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Specification for the SCM used by the project, such as CVS, Subversion, etc.") - protected Scm scm; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The project's issue management system information.") - protected IssueManagement issueManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The project's continuous integration information.") - protected CiManagement ciManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Distribution information for a project that enables deployment of the site\n and artifacts to remote web servers and repositories respectively.") - protected DistributionManagement distributionManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Properties that can be used throughout the POM as a substitution, and\n are used as filters in resources if enabled.\n The format is <name>value</name>.") - protected Project.Properties properties; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Default dependency information for projects that inherit from this one. The\n dependencies in this section are not immediately resolved. Instead, when a POM derived\n from this one declares a dependency described by a matching groupId and artifactId, the\n version and other values from this section are used for that dependency if they were not\n already specified.") - protected DependencyManagement dependencyManagement; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element describes all of the dependencies associated with a\n project.\n These dependencies are used to construct a classpath for your\n project during the build process. They are automatically downloaded from the\n repositories defined in this project.\n See the\n dependency mechanism for more information.") - protected Project.Dependencies dependencies; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The lists of the remote repositories for discovering dependencies and\n extensions.") - protected Project.Repositories repositories; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The lists of the remote repositories for discovering plugins for builds and\n reports.") - protected Project.PluginRepositories pluginRepositories; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Information required to build the project.") - protected Build build; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Deprecated. Now ignored by Maven.") - protected Project.Reports reports; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "This element includes the specification of report plugins to use\n to generate the reports on the Maven-generated site.\n These reports will be run when a user executes mvn site.\n All of the reports will be included in the navigation bar for browsing.") - protected Reporting reporting; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A listing of project-local build profiles which will modify the build process\n when activated.") - protected Project.Profiles profiles; - - /** - * Gets the value of the modelVersion property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getModelVersion() { - return modelVersion; - } - - /** - * Sets the value of the modelVersion property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setModelVersion(String value) { - this.modelVersion = value; - } - - /** - * Gets the value of the parent property. - * - * @return - * possible object is - * {@link Parent } - * - */ - public Parent getParent() { - return parent; - } - - /** - * Sets the value of the parent property. - * - * @param value - * allowed object is - * {@link Parent } - * - */ - public void setParent(Parent value) { - this.parent = value; - } - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - - /** - * Gets the value of the packaging property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPackaging() { - return packaging; - } - - /** - * Sets the value of the packaging property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPackaging(String value) { - this.packaging = value; - } - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the description property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDescription() { - return description; - } - - /** - * Sets the value of the description property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDescription(String value) { - this.description = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the inceptionYear property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getInceptionYear() { - return inceptionYear; - } - - /** - * Sets the value of the inceptionYear property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setInceptionYear(String value) { - this.inceptionYear = value; - } - - /** - * Gets the value of the organization property. - * - * @return - * possible object is - * {@link Organization } - * - */ - public Organization getOrganization() { - return organization; - } - - /** - * Sets the value of the organization property. - * - * @param value - * allowed object is - * {@link Organization } - * - */ - public void setOrganization(Organization value) { - this.organization = value; - } - - /** - * Gets the value of the licenses property. - * - * @return - * possible object is - * {@link Project.Licenses } - * - */ - public Project.Licenses getLicenses() { - return licenses; - } - - /** - * Sets the value of the licenses property. - * - * @param value - * allowed object is - * {@link Project.Licenses } - * - */ - public void setLicenses(Project.Licenses value) { - this.licenses = value; - } - - /** - * Gets the value of the developers property. - * - * @return - * possible object is - * {@link Project.Developers } - * - */ - public Project.Developers getDevelopers() { - return developers; - } - - /** - * Sets the value of the developers property. - * - * @param value - * allowed object is - * {@link Project.Developers } - * - */ - public void setDevelopers(Project.Developers value) { - this.developers = value; - } - - /** - * Gets the value of the contributors property. - * - * @return - * possible object is - * {@link Project.Contributors } - * - */ - public Project.Contributors getContributors() { - return contributors; - } - - /** - * Sets the value of the contributors property. - * - * @param value - * allowed object is - * {@link Project.Contributors } - * - */ - public void setContributors(Project.Contributors value) { - this.contributors = value; - } - - /** - * Gets the value of the mailingLists property. - * - * @return - * possible object is - * {@link Project.MailingLists } - * - */ - public Project.MailingLists getMailingLists() { - return mailingLists; - } - - /** - * Sets the value of the mailingLists property. - * - * @param value - * allowed object is - * {@link Project.MailingLists } - * - */ - public void setMailingLists(Project.MailingLists value) { - this.mailingLists = value; - } - - /** - * Gets the value of the prerequisites property. - * - * @return - * possible object is - * {@link Prerequisites } - * - */ - public Prerequisites getPrerequisites() { - return prerequisites; - } - - /** - * Sets the value of the prerequisites property. - * - * @param value - * allowed object is - * {@link Prerequisites } - * - */ - public void setPrerequisites(Prerequisites value) { - this.prerequisites = value; - } - - /** - * Gets the value of the modules property. - * - * @return - * possible object is - * {@link Project.Modules } - * - */ - public Project.Modules getModules() { - return modules; - } - - /** - * Sets the value of the modules property. - * - * @param value - * allowed object is - * {@link Project.Modules } - * - */ - public void setModules(Project.Modules value) { - this.modules = value; - } - - /** - * Gets the value of the scm property. - * - * @return - * possible object is - * {@link Scm } - * - */ - public Scm getScm() { - return scm; - } - - /** - * Sets the value of the scm property. - * - * @param value - * allowed object is - * {@link Scm } - * - */ - public void setScm(Scm value) { - this.scm = value; - } - - /** - * Gets the value of the issueManagement property. - * - * @return - * possible object is - * {@link IssueManagement } - * - */ - public IssueManagement getIssueManagement() { - return issueManagement; - } - - /** - * Sets the value of the issueManagement property. - * - * @param value - * allowed object is - * {@link IssueManagement } - * - */ - public void setIssueManagement(IssueManagement value) { - this.issueManagement = value; - } - - /** - * Gets the value of the ciManagement property. - * - * @return - * possible object is - * {@link CiManagement } - * - */ - public CiManagement getCiManagement() { - return ciManagement; - } - - /** - * Sets the value of the ciManagement property. - * - * @param value - * allowed object is - * {@link CiManagement } - * - */ - public void setCiManagement(CiManagement value) { - this.ciManagement = value; - } - - /** - * Gets the value of the distributionManagement property. - * - * @return - * possible object is - * {@link DistributionManagement } - * - */ - public DistributionManagement getDistributionManagement() { - return distributionManagement; - } - - /** - * Sets the value of the distributionManagement property. - * - * @param value - * allowed object is - * {@link DistributionManagement } - * - */ - public void setDistributionManagement(DistributionManagement value) { - this.distributionManagement = value; - } - - /** - * Gets the value of the properties property. - * - * @return - * possible object is - * {@link Project.Properties } - * - */ - public Project.Properties getProperties() { - return properties; - } - - /** - * Sets the value of the properties property. - * - * @param value - * allowed object is - * {@link Project.Properties } - * - */ - public void setProperties(Project.Properties value) { - this.properties = value; - } - - /** - * Gets the value of the dependencyManagement property. - * - * @return - * possible object is - * {@link DependencyManagement } - * - */ - public DependencyManagement getDependencyManagement() { - return dependencyManagement; - } - - /** - * Sets the value of the dependencyManagement property. - * - * @param value - * allowed object is - * {@link DependencyManagement } - * - */ - public void setDependencyManagement(DependencyManagement value) { - this.dependencyManagement = value; - } - - /** - * Gets the value of the dependencies property. - * - * @return - * possible object is - * {@link Project.Dependencies } - * - */ - public Project.Dependencies getDependencies() { - return dependencies; - } - - /** - * Sets the value of the dependencies property. - * - * @param value - * allowed object is - * {@link Project.Dependencies } - * - */ - public void setDependencies(Project.Dependencies value) { - this.dependencies = value; - } - - /** - * Gets the value of the repositories property. - * - * @return - * possible object is - * {@link Project.Repositories } - * - */ - public Project.Repositories getRepositories() { - return repositories; - } - - /** - * Sets the value of the repositories property. - * - * @param value - * allowed object is - * {@link Project.Repositories } - * - */ - public void setRepositories(Project.Repositories value) { - this.repositories = value; - } - - /** - * Gets the value of the pluginRepositories property. - * - * @return - * possible object is - * {@link Project.PluginRepositories } - * - */ - public Project.PluginRepositories getPluginRepositories() { - return pluginRepositories; - } - - /** - * Sets the value of the pluginRepositories property. - * - * @param value - * allowed object is - * {@link Project.PluginRepositories } - * - */ - public void setPluginRepositories(Project.PluginRepositories value) { - this.pluginRepositories = value; - } - - /** - * Gets the value of the build property. - * - * @return - * possible object is - * {@link Build } - * - */ - public Build getBuild() { - return build; - } - - /** - * Sets the value of the build property. - * - * @param value - * allowed object is - * {@link Build } - * - */ - public void setBuild(Build value) { - this.build = value; - } - - /** - * Gets the value of the reports property. - * - * @return - * possible object is - * {@link Project.Reports } - * - */ - public Project.Reports getReports() { - return reports; - } - - /** - * Sets the value of the reports property. - * - * @param value - * allowed object is - * {@link Project.Reports } - * - */ - public void setReports(Project.Reports value) { - this.reports = value; - } - - /** - * Gets the value of the reporting property. - * - * @return - * possible object is - * {@link Reporting } - * - */ - public Reporting getReporting() { - return reporting; - } - - /** - * Sets the value of the reporting property. - * - * @param value - * allowed object is - * {@link Reporting } - * - */ - public void setReporting(Reporting value) { - this.reporting = value; - } - - /** - * Gets the value of the profiles property. - * - * @return - * possible object is - * {@link Project.Profiles } - * - */ - public Project.Profiles getProfiles() { - return profiles; - } - - /** - * Sets the value of the profiles property. - * - * @param value - * allowed object is - * {@link Project.Profiles } - * - */ - public void setProfiles(Project.Profiles value) { - this.profiles = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="contributor" type="{http://maven.apache.org/POM/4.0.0}Contributor" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "contributors" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Contributors { - - @XmlElement(name = "contributor", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List contributors; - - /** - * Gets the value of the contributors property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the contributors property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getContributors().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Contributor } - * - * - */ - public List getContributors() { - if (contributors == null) { - contributors = new ArrayList(); - } - return this.contributors; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="dependency" type="{http://maven.apache.org/POM/4.0.0}Dependency" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "dependencies" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Dependencies { - - @XmlElement(name = "dependency", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List dependencies; - - /** - * Gets the value of the dependencies property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the dependencies property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getDependencies().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Dependency } - * - * - */ - public List getDependencies() { - if (dependencies == null) { - dependencies = new ArrayList(); - } - return this.dependencies; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="developer" type="{http://maven.apache.org/POM/4.0.0}Developer" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "developers" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Developers { - - @XmlElement(name = "developer", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List developers; - - /** - * Gets the value of the developers property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the developers property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getDevelopers().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Developer } - * - * - */ - public List getDevelopers() { - if (developers == null) { - developers = new ArrayList(); - } - return this.developers; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="license" type="{http://maven.apache.org/POM/4.0.0}License" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "licenses" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Licenses { - - @XmlElement(name = "license", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List licenses; - - /** - * Gets the value of the licenses property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the licenses property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getLicenses().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link License } - * - * - */ - public List getLicenses() { - if (licenses == null) { - licenses = new ArrayList(); - } - return this.licenses; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="mailingList" type="{http://maven.apache.org/POM/4.0.0}MailingList" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "mailingLists" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class MailingLists { - - @XmlElement(name = "mailingList", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List mailingLists; - - /** - * Gets the value of the mailingLists property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the mailingLists property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getMailingLists().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link MailingList } - * - * - */ - public List getMailingLists() { - if (mailingLists == null) { - mailingLists = new ArrayList(); - } - return this.mailingLists; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="module" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "modules" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Modules { - - @XmlElement(name = "module", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List modules; - - /** - * Gets the value of the modules property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the modules property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getModules().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getModules() { - if (modules == null) { - modules = new ArrayList(); - } - return this.modules; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="pluginRepository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "pluginRepositories" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class PluginRepositories { - - @XmlElement(name = "pluginRepository", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List pluginRepositories; - - /** - * Gets the value of the pluginRepositories property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the pluginRepositories property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getPluginRepositories().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Repository } - * - * - */ - public List getPluginRepositories() { - if (pluginRepositories == null) { - pluginRepositories = new ArrayList(); - } - return this.pluginRepositories; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="profile" type="{http://maven.apache.org/POM/4.0.0}Profile" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "profiles" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Profiles { - - @XmlElement(name = "profile", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List profiles; - - /** - * Gets the value of the profiles property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the profiles property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getProfiles().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Profile } - * - * - */ - public List getProfiles() { - if (profiles == null) { - profiles = new ArrayList(); - } - return this.profiles; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Properties { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Reports { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="repository" type="{http://maven.apache.org/POM/4.0.0}Repository" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "repositories" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Repositories { - - @XmlElement(name = "repository", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List repositories; - - /** - * Gets the value of the repositories property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the repositories property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getRepositories().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Repository } - * - * - */ - public List getRepositories() { - if (repositories == null) { - repositories = new ArrayList(); - } - return this.repositories; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java deleted file mode 100644 index a813add..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Relocation.java +++ /dev/null @@ -1,152 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Describes where an artifact has moved to. If any of the values are omitted, it is - * assumed to be the same as it was before. - * - * <p>Java class for Relocation complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Relocation"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Relocation", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Describes where an artifact has moved to. If any of the values are omitted, it is\n assumed to be the same as it was before.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") -public class Relocation { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The group ID the artifact has moved to.") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The new artifact ID of the artifact.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The new version of the artifact.") - protected String version; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "An additional message to show the user about the move, such as the reason.") - protected String message; - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - - /** - * Gets the value of the message property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMessage(String value) { - this.message = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java deleted file mode 100644 index 1f1fcd1..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportPlugin.java +++ /dev/null @@ -1,359 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * - * - * The <code>&lt;plugin&gt;</code> element contains informations required for a report plugin. - * - * - * - * <p>Java class for ReportPlugin complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="ReportPlugin"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="groupId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="artifactId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="reportSets" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="reportSet" type="{http://maven.apache.org/POM/4.0.0}ReportSet" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="configuration" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ReportPlugin", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <plugin> element contains informations required for a report plugin.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class ReportPlugin { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "org.apache.maven.plugins") - @XsdInfo(name = "The group ID of the reporting plugin in the repository.") - protected String groupId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The artifact ID of the reporting plugin in the repository.") - protected String artifactId; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The version of the reporting plugin to be used.") - protected String version; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Multiple specifications of a set of reports, each having (possibly) different\n configuration. This is the reporting parallel to an execution in the build.") - protected ReportPlugin.ReportSets reportSets; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") - protected String inherited; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") - protected ReportPlugin.Configuration configuration; - - /** - * Gets the value of the groupId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getGroupId() { - return groupId; - } - - /** - * Sets the value of the groupId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setGroupId(String value) { - this.groupId = value; - } - - /** - * Gets the value of the artifactId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArtifactId() { - return artifactId; - } - - /** - * Sets the value of the artifactId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArtifactId(String value) { - this.artifactId = value; - } - - /** - * Gets the value of the version property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVersion() { - return version; - } - - /** - * Sets the value of the version property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVersion(String value) { - this.version = value; - } - - /** - * Gets the value of the reportSets property. - * - * @return - * possible object is - * {@link ReportPlugin.ReportSets } - * - */ - public ReportPlugin.ReportSets getReportSets() { - return reportSets; - } - - /** - * Sets the value of the reportSets property. - * - * @param value - * allowed object is - * {@link ReportPlugin.ReportSets } - * - */ - public void setReportSets(ReportPlugin.ReportSets value) { - this.reportSets = value; - } - - /** - * Gets the value of the inherited property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getInherited() { - return inherited; - } - - /** - * Sets the value of the inherited property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setInherited(String value) { - this.inherited = value; - } - - /** - * Gets the value of the configuration property. - * - * @return - * possible object is - * {@link ReportPlugin.Configuration } - * - */ - public ReportPlugin.Configuration getConfiguration() { - return configuration; - } - - /** - * Sets the value of the configuration property. - * - * @param value - * allowed object is - * {@link ReportPlugin.Configuration } - * - */ - public void setConfiguration(ReportPlugin.Configuration value) { - this.configuration = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Configuration { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="reportSet" type="{http://maven.apache.org/POM/4.0.0}ReportSet" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "reportSets" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class ReportSets { - - @XmlElement(name = "reportSet", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List reportSets; - - /** - * Gets the value of the reportSets property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the reportSets property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getReportSets().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link ReportSet } - * - * - */ - public List getReportSets() { - if (reportSets == null) { - reportSets = new ArrayList(); - } - return this.reportSets; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java deleted file mode 100644 index 58536f1..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/ReportSet.java +++ /dev/null @@ -1,299 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; -import org.w3c.dom.Element; - - -/** - * Represents a set of reports and configuration to be used to generate them. - * - * <p>Java class for ReportSet complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="ReportSet"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="reports" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="report" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="inherited" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="configuration" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ReportSet", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Represents a set of reports and configuration to be used to generate them.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class ReportSet { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") - @XsdInfo(name = "The unique id for this report set, to be used during POM inheritance and profile injection\n for merging of report sets.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The list of reports from this plugin which should be generated from this set.") - protected ReportSet.Reports reports; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether any configuration should be propagated to child POMs. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") - protected String inherited; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "

The configuration as DOM object.

\n

By default, every element content is trimmed, but starting with Maven 3.1.0, you can add\n xml:space=\"preserve\" to elements you want to preserve whitespace.

\n

You can control how child POMs inherit configuration from parent POMs by adding combine.children\n or combine.self attributes to the children of the configuration element:

\n
    \n
  • combine.children: available values are merge (default) and append,
  • \n
  • combine.self: available values are merge (default) and override.
  • \n
\n

See POM Reference documentation and\n Xpp3DomUtils\n for more information.

") - protected ReportSet.Configuration configuration; - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the reports property. - * - * @return - * possible object is - * {@link ReportSet.Reports } - * - */ - public ReportSet.Reports getReports() { - return reports; - } - - /** - * Sets the value of the reports property. - * - * @param value - * allowed object is - * {@link ReportSet.Reports } - * - */ - public void setReports(ReportSet.Reports value) { - this.reports = value; - } - - /** - * Gets the value of the inherited property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getInherited() { - return inherited; - } - - /** - * Sets the value of the inherited property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setInherited(String value) { - this.inherited = value; - } - - /** - * Gets the value of the configuration property. - * - * @return - * possible object is - * {@link ReportSet.Configuration } - * - */ - public ReportSet.Configuration getConfiguration() { - return configuration; - } - - /** - * Sets the value of the configuration property. - * - * @param value - * allowed object is - * {@link ReportSet.Configuration } - * - */ - public void setConfiguration(ReportSet.Configuration value) { - this.configuration = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;any processContents='skip' maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "elements" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Configuration { - - @XmlAnyElement - @XsdInfo(name = "") - protected List elements; - - /** - * Gets the value of the elements property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the elements property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getElements().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link Element } - * - * - */ - public List getElements() { - if (elements == null) { - elements = new ArrayList(); - } - return this.elements; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="report" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "reports" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Reports { - - @XmlElement(name = "report", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List reports; - - /** - * Gets the value of the reports property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the reports property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getReports().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getReports() { - if (reports == null) { - reports = new ArrayList(); - } - return this.reports; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java deleted file mode 100644 index 75d9644..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Reporting.java +++ /dev/null @@ -1,197 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Section for management of reports and their configuration. - * - * <p>Java class for Reporting complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Reporting"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="excludeDefaults" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="outputDirectory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="plugins" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}ReportPlugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Reporting", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Section for management of reports and their configuration.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Reporting { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "If true, then the default reports are not included in the site generation.\n This includes the reports in the \"Project Info\" menu. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") - protected String excludeDefaults; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Where to store all of the generated reports. The default is\n ${project.build.directory}/site.") - protected String outputDirectory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The reporting plugins to use and their configuration.") - protected Reporting.Plugins plugins; - - /** - * Gets the value of the excludeDefaults property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getExcludeDefaults() { - return excludeDefaults; - } - - /** - * Sets the value of the excludeDefaults property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setExcludeDefaults(String value) { - this.excludeDefaults = value; - } - - /** - * Gets the value of the outputDirectory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOutputDirectory() { - return outputDirectory; - } - - /** - * Sets the value of the outputDirectory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOutputDirectory(String value) { - this.outputDirectory = value; - } - - /** - * Gets the value of the plugins property. - * - * @return - * possible object is - * {@link Reporting.Plugins } - * - */ - public Reporting.Plugins getPlugins() { - return plugins; - } - - /** - * Sets the value of the plugins property. - * - * @param value - * allowed object is - * {@link Reporting.Plugins } - * - */ - public void setPlugins(Reporting.Plugins value) { - this.plugins = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="plugin" type="{http://maven.apache.org/POM/4.0.0}ReportPlugin" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "plugins" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Plugins { - - @XmlElement(name = "plugin", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List plugins; - - /** - * Gets the value of the plugins property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the plugins property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getPlugins().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link ReportPlugin } - * - * - */ - public List getPlugins() { - if (plugins == null) { - plugins = new ArrayList(); - } - return this.plugins; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java deleted file mode 100644 index a08f214..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Repository.java +++ /dev/null @@ -1,208 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * A repository contains the information needed for establishing connections with - * remote repository. - * - * <p>Java class for Repository complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Repository"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="releases" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; - * &lt;element name="snapshots" type="{http://maven.apache.org/POM/4.0.0}RepositoryPolicy" minOccurs="0"/&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="layout" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Repository", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "A repository contains the information needed for establishing connections with\n remote repository.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Repository { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "How to handle downloading of releases from this repository.") - protected RepositoryPolicy releases; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "How to handle downloading of snapshots from this repository.") - protected RepositoryPolicy snapshots; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A unique identifier for a repository. This is used to match the repository\n to configuration in the settings.xml file, for example. Furthermore, the identifier is\n used during POM inheritance and profile injection to detect repositories that should be merged.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Human readable name of the repository.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The url of the repository, in the form protocol://hostname/path.") - protected String url; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "default") - @XsdInfo(name = "The type of layout this repository uses for locating and storing artifacts -\n can be legacy or default.") - protected String layout; - - /** - * Gets the value of the releases property. - * - * @return - * possible object is - * {@link RepositoryPolicy } - * - */ - public RepositoryPolicy getReleases() { - return releases; - } - - /** - * Sets the value of the releases property. - * - * @param value - * allowed object is - * {@link RepositoryPolicy } - * - */ - public void setReleases(RepositoryPolicy value) { - this.releases = value; - } - - /** - * Gets the value of the snapshots property. - * - * @return - * possible object is - * {@link RepositoryPolicy } - * - */ - public RepositoryPolicy getSnapshots() { - return snapshots; - } - - /** - * Sets the value of the snapshots property. - * - * @param value - * allowed object is - * {@link RepositoryPolicy } - * - */ - public void setSnapshots(RepositoryPolicy value) { - this.snapshots = value; - } - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - - /** - * Gets the value of the layout property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLayout() { - return layout; - } - - /** - * Sets the value of the layout property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLayout(String value) { - this.layout = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java deleted file mode 100644 index 662d69e..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/RepositoryPolicy.java +++ /dev/null @@ -1,123 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Download policy. - * - * <p>Java class for RepositoryPolicy complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="RepositoryPolicy"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="enabled" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="updatePolicy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="checksumPolicy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "RepositoryPolicy", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Download policy.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n") -public class RepositoryPolicy { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether to use this repository for downloading this type of artifact. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is true.") - protected String enabled; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The frequency for downloading updates - can be\n always,\n daily\n (default),\n interval:XXX\n (in minutes) or\n never\n (only if it doesn't exist locally).") - protected String updatePolicy; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "What to do when verification of an artifact checksum fails. Valid values are\n ignore\n ,\n fail\n or\n warn\n (the default).") - protected String checksumPolicy; - - /** - * Gets the value of the enabled property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getEnabled() { - return enabled; - } - - /** - * Sets the value of the enabled property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setEnabled(String value) { - this.enabled = value; - } - - /** - * Gets the value of the updatePolicy property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUpdatePolicy() { - return updatePolicy; - } - - /** - * Sets the value of the updatePolicy property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUpdatePolicy(String value) { - this.updatePolicy = value; - } - - /** - * Gets the value of the checksumPolicy property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChecksumPolicy() { - return checksumPolicy; - } - - /** - * Sets the value of the checksumPolicy property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChecksumPolicy(String value) { - this.checksumPolicy = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java deleted file mode 100644 index 9f6d697..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Resource.java +++ /dev/null @@ -1,326 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * This element describes all of the classpath resources associated with a project - * or unit tests. - * - * <p>Java class for Resource complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Resource"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="targetPath" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="filtering" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="directory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="includes" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="include" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;element name="excludes" minOccurs="0"&gt; - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="exclude" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * &lt;/element&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Resource", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "This element describes all of the classpath resources associated with a project\n or unit tests.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n") -public class Resource { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Describe the resource target path. The path is relative to the target/classes\n directory (i.e. ${project.build.outputDirectory}).\n For example, if you want that resource to appear in a specific package\n (org.apache.maven.messages), you must specify this\n element with this value: org/apache/maven/messages.\n This is not required if you simply put the resources in that directory\n structure at the source, however.") - protected String targetPath; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Whether resources are filtered to replace tokens with parameterised values or not.\n The values are taken from the properties element and from the\n properties in the files listed in the filters element. Note: While the type\n of this field is String for technical reasons, the semantic type is actually\n Boolean. Default value is false.") - protected String filtering; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Describe the directory where the resources are stored. The path is relative\n to the POM.") - protected String directory; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A list of patterns to include, e.g. **/*.xml.") - protected Resource.Includes includes; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A list of patterns to exclude, e.g. **/*.xml") - protected Resource.Excludes excludes; - - /** - * Gets the value of the targetPath property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTargetPath() { - return targetPath; - } - - /** - * Sets the value of the targetPath property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTargetPath(String value) { - this.targetPath = value; - } - - /** - * Gets the value of the filtering property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFiltering() { - return filtering; - } - - /** - * Sets the value of the filtering property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFiltering(String value) { - this.filtering = value; - } - - /** - * Gets the value of the directory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDirectory() { - return directory; - } - - /** - * Sets the value of the directory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDirectory(String value) { - this.directory = value; - } - - /** - * Gets the value of the includes property. - * - * @return - * possible object is - * {@link Resource.Includes } - * - */ - public Resource.Includes getIncludes() { - return includes; - } - - /** - * Sets the value of the includes property. - * - * @param value - * allowed object is - * {@link Resource.Includes } - * - */ - public void setIncludes(Resource.Includes value) { - this.includes = value; - } - - /** - * Gets the value of the excludes property. - * - * @return - * possible object is - * {@link Resource.Excludes } - * - */ - public Resource.Excludes getExcludes() { - return excludes; - } - - /** - * Sets the value of the excludes property. - * - * @param value - * allowed object is - * {@link Resource.Excludes } - * - */ - public void setExcludes(Resource.Excludes value) { - this.excludes = value; - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="exclude" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "excludes" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Excludes { - - @XmlElement(name = "exclude", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List excludes; - - /** - * Gets the value of the excludes property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the excludes property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getExcludes().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getExcludes() { - if (excludes == null) { - excludes = new ArrayList(); - } - return this.excludes; - } - - } - - - /** - * <p>Java class for anonymous complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;sequence&gt; - * &lt;element name="include" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt; - * &lt;/sequence&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "includes" - }) - @XsdInfo(name = "", xsdElementPart = "\n \n \n \n \n \n \n \n") - public static class Includes { - - @XmlElement(name = "include", namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "") - protected List includes; - - /** - * Gets the value of the includes property. - * - * <p> - * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the includes property. - * - * <p> - * For example, to add a new item, do as follows: - * <pre> - * getIncludes().add(newItem); - * </pre> - * - * - * <p> - * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getIncludes() { - if (includes == null) { - includes = new ArrayList(); - } - return this.includes; - } - - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java deleted file mode 100644 index f887d9d..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Scm.java +++ /dev/null @@ -1,156 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * - * - * The <code>&lt;scm&gt;</code> element contains informations required to the SCM - * (Source Control Management) of the project. - * - * - * - * <p>Java class for Scm complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Scm"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="connection" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="developerConnection" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="tag" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Scm", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "The <scm> element contains informations required to the SCM\n (Source Control Management) of the project.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n \n") -public class Scm { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The source control management system URL\n that describes the repository and how to connect to the\n repository. For more information, see the\n URL format\n and list of supported SCMs.\n This connection is read-only.\n
Default value is: parent value [+ path adjustment] + artifactId") - protected String connection; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Just like connection, but for developers, i.e. this scm connection\n will not be read only.\n
Default value is: parent value [+ path adjustment] + artifactId") - protected String developerConnection; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0", defaultValue = "HEAD") - @XsdInfo(name = "The tag of current code. By default, it's set to HEAD during development.") - protected String tag; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.\n
Default value is: parent value [+ path adjustment] + artifactId") - protected String url; - - /** - * Gets the value of the connection property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getConnection() { - return connection; - } - - /** - * Sets the value of the connection property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setConnection(String value) { - this.connection = value; - } - - /** - * Gets the value of the developerConnection property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDeveloperConnection() { - return developerConnection; - } - - /** - * Sets the value of the developerConnection property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDeveloperConnection(String value) { - this.developerConnection = value; - } - - /** - * Gets the value of the tag property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTag() { - return tag; - } - - /** - * Sets the value of the tag property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTag(String value) { - this.tag = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - -} diff --git a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java b/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java deleted file mode 100644 index 82d977b..0000000 --- a/example-project-gradle/src/main/generated-java/info/hubbitus/xjc/plugin/example/Site.java +++ /dev/null @@ -1,123 +0,0 @@ - -package info.hubbitus.xjc.plugin.example; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import info.hubbitus.annotation.XsdInfo; - - -/** - * Contains the information needed for deploying websites. - * - * <p>Java class for Site complex type. - * - * <p>The following schema fragment specifies the expected content contained within this class. - * - * <pre> - * &lt;complexType name="Site"&gt; - * &lt;complexContent&gt; - * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; - * &lt;all&gt; - * &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt; - * &lt;/all&gt; - * &lt;/restriction&gt; - * &lt;/complexContent&gt; - * &lt;/complexType&gt; - * </pre> - * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Site", namespace = "http://maven.apache.org/POM/4.0.0", propOrder = { - -}) -@XsdInfo(name = "Contains the information needed for deploying websites.", xsdElementPart = "\n \n \n \n \n \n \n \n \n \n") -public class Site { - - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "A unique identifier for a deployment location. This is used to match the\n site to configuration in the settings.xml file, for example.") - protected String id; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "Human readable name of the deployment location.") - protected String name; - @XmlElement(namespace = "http://maven.apache.org/POM/4.0.0") - @XsdInfo(name = "The url of the location where website is deployed, in the form protocol://hostname/path.\n
Default value is: parent value [+ path adjustment] + artifactId") - protected String url; - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the name property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getName() { - return name; - } - - /** - * Sets the value of the name property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setName(String value) { - this.name = value; - } - - /** - * Gets the value of the url property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUrl() { - return url; - } - - /** - * Sets the value of the url property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUrl(String value) { - this.url = value; - } - -} From a7c854c37eb5f24cf46901fef9797ee5acb03555 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:43:15 +0000 Subject: [PATCH 06/12] Migrate CI from Travis to GitHub Actions Run ./gradlew check on JDK 11, 17 and 21; replace Travis badge. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- .github/workflows/ci.yml | 29 +++++++++++++++++++++++++++++ .travis.yml | 13 ------------- README.md | 2 +- 3 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9a4b4ff --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,29 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java: [ 11, 17, 21 ] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ matrix.java }} + - uses: gradle/actions/setup-gradle@v4 + - name: Build and test + run: ./gradlew check --rerun-tasks + - name: Upload test report + if: failure() + uses: actions/upload-artifact@v4 + with: + name: test-report-java-${{ matrix.java }} + path: build/reports/tests/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2060638..0000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -# https://docs.travis-ci.com/user/languages/groovy/ -language: groovy -jdk: - - openjdk11 - -script: ./gradlew check --rerun-tasks - -before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock -cache: - directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ diff --git a/README.md b/README.md index cf34465..92bb336 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Autobuild Status](https://travis-ci.org/Hubbitus/xjc-documentation-annotation-plugin.svg?branch=master)](https://travis-ci.org/Hubbitus/xjc-documentation-annotation-plugin) +[![CI](https://github.com/Hubbitus/xjc-documentation-annotation-plugin/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/Hubbitus/xjc-documentation-annotation-plugin/actions/workflows/ci.yml) XJC plugin to bring XSD descriptions into annotations of generated classes ========================================================================== From a5571802881003f86f268027fe652dd2bc02a317 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:52:30 +0000 Subject: [PATCH 07/12] Build with Gradle 9.8.0, target Java 11, test on JVM 11/17/21 via toolchains Gradle now needs JDK 17+, but bytecode is compiled with --release 11 and tests run on the JVM selected by -PtestJavaVersion. CI matrix updated accordingly. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- .github/workflows/ci.yml | 14 +++++++++----- build.gradle | 22 ++++++++++++++-------- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9a4b4ff..e08fb13 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,19 +11,23 @@ jobs: strategy: fail-fast: false matrix: - java: [ 11, 17, 21 ] + # JVM the built plugin is tested on (Gradle itself needs JDK 17+) + test-java: [ 11, 17, 21 ] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin - java-version: ${{ matrix.java }} + # The last one (21) becomes default JAVA_HOME and runs Gradle, the other is found by toolchains + java-version: | + ${{ matrix.test-java }} + 21 - uses: gradle/actions/setup-gradle@v4 - - name: Build and test - run: ./gradlew check --rerun-tasks + - name: Build and test on Java ${{ matrix.test-java }} + run: ./gradlew check --rerun-tasks -PtestJavaVersion=${{ matrix.test-java }} - name: Upload test report if: failure() uses: actions/upload-artifact@v4 with: - name: test-report-java-${{ matrix.java }} + name: test-report-java-${{ matrix.test-java }} path: build/reports/tests/ diff --git a/build.gradle b/build.gradle index 1ccd020..e247e83 100644 --- a/build.gradle +++ b/build.gradle @@ -7,16 +7,22 @@ plugins { id 'signing' } -group 'info.hubbitus' -version '1.1' - -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} +group = 'info.hubbitus' +version = '1.1' +// Gradle itself requires JDK 17+, but the built plugin must work on Java 11+ tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' + options.release = 11 +} + +// Run tests on a specific JVM (to check that built plugin works on it): ./gradlew test -PtestJavaVersion=11 +if (project.hasProperty('testJavaVersion')) { + tasks.withType(Test).configureEach { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(project.property('testJavaVersion') as int) + } + } } tasks.withType(Javadoc).configureEach { @@ -103,7 +109,7 @@ publishing { } signing { - required { gradle.taskGraph.hasTask('publish') } // Do not require signing on CI/local builds + required = { gradle.taskGraph.hasTask('publish') } // Do not require signing on CI/local builds sign publishing.publications.mavenJava } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d4081da..299848b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 252b2e76ce736d28bb3b157af761903276be1d17 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 23:53:58 +0000 Subject: [PATCH 08/12] example-project-gradle: Gradle 9.8.0 and com.github.bjornvester.xjc plugin org.unbroken-dome.xjc 2.0.0 is unmaintained and fails on Gradle 9 (uses removed org.gradle.util.GUtil). Sources are now generated into build/, so the generated-java ignore entry is dropped. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- example-project-gradle/.gitignore | 3 - example-project-gradle/README.md | 4 +- example-project-gradle/build.gradle | 34 +++---- .../gradle/wrapper/gradle-wrapper.jar | Bin 43764 -> 47623 bytes .../gradle/wrapper/gradle-wrapper.properties | 4 +- example-project-gradle/gradlew | 11 +-- example-project-gradle/gradlew.bat | 86 +++++++++++------- 7 files changed, 72 insertions(+), 70 deletions(-) delete mode 100644 example-project-gradle/.gitignore diff --git a/example-project-gradle/.gitignore b/example-project-gradle/.gitignore deleted file mode 100644 index b85bfdf..0000000 --- a/example-project-gradle/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ - -# Generated by xjcGenerate -src/main/generated-java/ diff --git a/example-project-gradle/README.md b/example-project-gradle/README.md index 8455a8b..7f70bbf 100644 --- a/example-project-gradle/README.md +++ b/example-project-gradle/README.md @@ -6,9 +6,9 @@ This is gradle demo project to show how to use Java code generation from XSD sch For run generation just invoke: - ./gradlew xjcGenerate + ./gradlew xjc -After compilation you will find generated classes in [src/main/generated-java](src/main/generated-java) +After compilation you will find generated classes in `build/generated/sources/xjc/java` Then you may with run tests: diff --git a/example-project-gradle/build.gradle b/example-project-gradle/build.gradle index 6ce5384..90af88e 100644 --- a/example-project-gradle/build.gradle +++ b/example-project-gradle/build.gradle @@ -1,16 +1,15 @@ plugins { id 'java' - id 'org.unbroken-dome.xjc' version '2.0.0' // https://github.com/unbroken-dome/gradle-xjc-plugin + id 'com.github.bjornvester.xjc' version '1.9.1' // https://github.com/bjornvester/xjc-gradle-plugin id 'idea' id 'groovy' // For Spock tests } -group 'info.hubbitus' -version '1.0-SNAPSHOT' +group = 'info.hubbitus' +version = '1.0-SNAPSHOT' java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { languageVersion = JavaLanguageVersion.of(11) } } repositories { @@ -22,7 +21,7 @@ ext{ } dependencies { - xjcClasspath "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" + xjcPlugins "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" // Compile dependency for annotations used implementation "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" @@ -33,27 +32,16 @@ dependencies { testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5' } -// Results will be in directory `src/main/generated-java` -xjcGenerate { +// Results will be in directory `build/generated/sources/xjc/java` +xjc { /** * There: * 1. Example.xsd is minimal example of functional. * 2. maven-4.0.0.xsd - example by SOq https://stackoverflow.com/questions/42223784/how-can-i-generate-a-class-from-which-i-can-retrieve-the-xml-of-a-node-as-a-stri */ - source = fileTree('src/main/resources') { include '*.xsd' } + xsdDir = layout.projectDirectory.dir('src/main/resources') bindingFiles = fileTree('src/main/resources') { include '*.xjb' } - outputDirectory.set(layout.projectDirectory.dir('src/main/generated-java')) - packageLevelAnnotations.set(false) - targetPackage.set('info.hubbitus.xjc.plugin.example') - extraArgs.set([ '-XPluginDescriptionAnnotation' ]) + useJakarta = false // The plugin is built on javax (JAXB 2.x) XJC API + defaultPackage = 'info.hubbitus.xjc.plugin.example' + options = [ '-XPluginDescriptionAnnotation' ] } - -// The xjc plugin adds generated sources into compilation of main source set automatically. -idea { - module { - // Marks the generated srcDir as "generated" - generatedSourceDirs += file('src/main/generated-java') - } -} - -compileTestGroovy.dependsOn xjcGenerate diff --git a/example-project-gradle/gradle/wrapper/gradle-wrapper.jar b/example-project-gradle/gradle/wrapper/gradle-wrapper.jar index 1b33c55baabb587c669f562ae36f953de2481846..5097068a8d375f5bf0d15693fb5b3615c972a801 100644 GIT binary patch delta 39622 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 delta 35825 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
g-vUc>#35|rt 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 diff --git a/example-project-gradle/gradle/wrapper/gradle-wrapper.properties b/example-project-gradle/gradle/wrapper/gradle-wrapper.properties index d4081da..9b7cb4a 100644 --- a/example-project-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/example-project-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,9 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip networkTimeout=10000 +retries=0 +retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/example-project-gradle/gradlew b/example-project-gradle/gradlew index 23d15a9..249efbb 100755 --- a/example-project-gradle/gradlew +++ b/example-project-gradle/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ ############################################################################## # -# Gradle start up script for POSIX generated by Gradle. +# gradlew start up script for POSIX generated by Gradle. # # Important for running: # @@ -29,7 +29,7 @@ # bash, then to run this script, type that shell name before the whole # command line, like: # -# ksh Gradle +# ksh gradlew # # Busybox and similar reduced shells will NOT work, because this script # requires all of these POSIX shell features: @@ -57,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" diff --git a/example-project-gradle/gradlew.bat b/example-project-gradle/gradlew.bat index 5eed7ee..03754c4 100644 --- a/example-project-gradle/gradlew.bat +++ b/example-project-gradle/gradlew.bat @@ -19,12 +19,39 @@ @if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem -@rem Gradle startup script for Windows +@rem gradlew startup script for Windows @rem @rem ########################################################################## -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +@rem Catch executions from older scripts and ensure they exit cleanly. +@rem This can be removed once we can be reasonably confident that few people +@rem will be migrating directly to this new wrapper. +goto afterSafetyNet +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +goto exitWithErrorLevel +:afterSafetyNet set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. @@ -45,13 +72,14 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +1>&2 echo. +1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +1>&2 echo. +1>&2 echo Please set the JAVA_HOME variable in your environment to match the +1>&2 echo location of your Java installation. -goto fail +"%COMSPEC%" /c exit 1 +goto exitWithErrorLevel :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% @@ -59,36 +87,26 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +1>&2 echo. +1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +1>&2 echo. +1>&2 echo Please set the JAVA_HOME variable in your environment to match the +1>&2 echo location of your Java installation. -goto fail +"%COMSPEC%" /c exit 1 +goto exitWithErrorLevel :execute @rem Setup the command line -set CLASSPATH= -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +@rem Execute gradlew +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem This label must not be changed. We rely on old scripts being able to jump to this point. +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% From 10c906b1f8fa1409014c63ce4cb0e08ba7909ec5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 30 Sep 2026 16:56:01 +0000 Subject: [PATCH 09/12] Add missing javadoc comments (field and explicit public constructor) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- src/main/java/info/hubbitus/JStringLiteralUnescaped.java | 1 + .../info/hubbitus/XJCPluginDescriptionAnnotation.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/info/hubbitus/JStringLiteralUnescaped.java b/src/main/java/info/hubbitus/JStringLiteralUnescaped.java index 64bf429..065e77d 100644 --- a/src/main/java/info/hubbitus/JStringLiteralUnescaped.java +++ b/src/main/java/info/hubbitus/JStringLiteralUnescaped.java @@ -13,6 +13,7 @@ */ public class JStringLiteralUnescaped extends JExpressionImpl { + /** Raw (not yet quoted and escaped) string value of this literal. */ public final String str; diff --git a/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java b/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java index f6c29ac..ec9e378 100644 --- a/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java +++ b/src/main/java/info/hubbitus/XJCPluginDescriptionAnnotation.java @@ -79,6 +79,14 @@ * @since 2019-01-17 03:34. */ public class XJCPluginDescriptionAnnotation extends Plugin { + /** + * Public no-arg constructor is required by XJC, which instantiates plugins via {@link java.util.ServiceLoader} + * (see META-INF/services/com.sun.tools.xjc.Plugin). + */ + public XJCPluginDescriptionAnnotation() { + super(); + } + @Override public String getOptionName() { return "XPluginDescriptionAnnotation"; From ecf0738e520b65fef784bcfad5545d2e80868e03 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 30 Sep 2026 16:57:19 +0000 Subject: [PATCH 10/12] Update Groovy to 4.0.33 and Spock to 2.4 (JUnit Platform) Removes 'illegal reflective access' warnings of Groovy 2.5 on newer JVMs. Groovy test bytecode level is pinned to Java 11 so tests run on JVM 11. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- build.gradle | 13 ++++++++++++- gradle.properties | 5 ++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index e247e83..0bd99de 100644 --- a/build.gradle +++ b/build.gradle @@ -11,11 +11,21 @@ group = 'info.hubbitus' version = '1.1' // Gradle itself requires JDK 17+, but the built plugin must work on Java 11+ +java { + // Also used for Groovy (tests) bytecode level, which otherwise defaults to the JVM running Gradle + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 +} + tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' options.release = 11 } +tasks.withType(Test).configureEach { + useJUnitPlatform() // Spock 2 +} + // Run tests on a specific JVM (to check that built plugin works on it): ./gradlew test -PtestJavaVersion=11 if (project.hasProperty('testJavaVersion')) { tasks.withType(Test).configureEach { @@ -44,8 +54,9 @@ dependencies { implementation "org.slf4j:slf4j-api:${versionSlf4j}" implementation "ch.qos.logback:logback-classic:${versionLogback}" - testImplementation "org.codehaus.groovy:groovy:${versionGroovy}" + testImplementation "org.apache.groovy:groovy:${versionGroovy}" testImplementation "org.spockframework:spock-core:${versionSpock}" + testRuntimeOnly "org.junit.platform:junit-platform-launcher" // Required by Gradle 9 for JUnit Platform (version is managed by Spock BOM) } /////////////////////////////////////////////////////////////// diff --git a/gradle.properties b/gradle.properties index 2d54dae..b4a8d75 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,8 @@ versionJaxb = 2.4.0-b180830.0438 versionJaxbIpi = 2.4.0-b180830.0359 -#versionGroovy = 3.0.0-alpha-4 -versionGroovy = 2.5.23 -versionSpock = 1.3-groovy-2.5 +versionGroovy = 4.0.33 +versionSpock = 2.4-groovy-4.0 versionSlf4j = 1.7.25 versionLogback = 1.2.3 From 29b8b9bab837252ce6fcbab42b8132c81084dee5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 30 Sep 2026 17:11:01 +0000 Subject: [PATCH 11/12] Update Groovy to 5.1.3 and Spock to 2.4-groovy-5.0 (plugin and example) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- example-project-gradle/build.gradle | 9 +++++++-- gradle.properties | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/example-project-gradle/build.gradle b/example-project-gradle/build.gradle index 90af88e..18cf5fc 100644 --- a/example-project-gradle/build.gradle +++ b/example-project-gradle/build.gradle @@ -28,8 +28,13 @@ dependencies { testImplementation "info.hubbitus:xjc-documentation-annotation-plugin:$pluginVersion" // Tests - testImplementation 'org.codehaus.groovy:groovy:2.5.23' - testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5' + testImplementation 'org.apache.groovy:groovy:5.1.3' + testImplementation 'org.spockframework:spock-core:2.4-groovy-5.0' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // Required by Gradle 9 (version is managed by Spock BOM) +} + +tasks.withType(Test).configureEach { + useJUnitPlatform() // Spock 2 } // Results will be in directory `build/generated/sources/xjc/java` diff --git a/gradle.properties b/gradle.properties index b4a8d75..aa2a9b5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ versionJaxb = 2.4.0-b180830.0438 versionJaxbIpi = 2.4.0-b180830.0359 -versionGroovy = 4.0.33 -versionSpock = 2.4-groovy-4.0 +versionGroovy = 5.1.3 +versionSpock = 2.4-groovy-5.0 versionSlf4j = 1.7.25 versionLogback = 1.2.3 From 20e4d29b9474bf95d6875b9479116d60534d2ffe Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 2 Oct 2026 20:53:49 +0000 Subject: [PATCH 12/12] Plugin version 1.2-SNAPSHOT; build example against it in CI Released 1.1 contains the NPE of #2, so the example now uses 1.2-SNAPSHOT (with -PuseMavenLocal) and a new CI job publishes the plugin built from the same commit into mavenLocal and runs the example project check. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01D89kKRuDGxgzFmg14g8dPM --- .github/workflows/ci.yml | 18 ++++++++++++++++++ build.gradle | 2 +- example-project-gradle/README.md | 6 ++++++ example-project-gradle/build.gradle | 6 +++++- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e08fb13..6e7a655 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,3 +31,21 @@ jobs: with: name: test-report-java-${{ matrix.test-java }} path: build/reports/tests/ + + example: + # Example project depends on the plugin built from this very commit + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: | + 11 + 21 + - uses: gradle/actions/setup-gradle@v4 + - name: Publish plugin into local Maven repository + run: ./gradlew publishToMavenLocal + - name: Build and test example project + working-directory: example-project-gradle + run: ./gradlew check --rerun-tasks -PuseMavenLocal diff --git a/build.gradle b/build.gradle index 0bd99de..f7e3ea2 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = 'info.hubbitus' -version = '1.1' +version = '1.2-SNAPSHOT' // 1.1 is released and has the NPE bug (#2), the fix is in the next version // Gradle itself requires JDK 17+, but the built plugin must work on Java 11+ java { diff --git a/example-project-gradle/README.md b/example-project-gradle/README.md index 7f70bbf..93487a8 100644 --- a/example-project-gradle/README.md +++ b/example-project-gradle/README.md @@ -13,3 +13,9 @@ After compilation you will find generated classes in `build/generated/sources/xj Then you may with run tests: ./gradlew check + +While the plugin version from [build.gradle](build.gradle) is not released yet, publish it into the local Maven repository +from the parent project and use it with `-PuseMavenLocal`: + + (cd .. && ./gradlew publishToMavenLocal) + ./gradlew check -PuseMavenLocal diff --git a/example-project-gradle/build.gradle b/example-project-gradle/build.gradle index 18cf5fc..b95838e 100644 --- a/example-project-gradle/build.gradle +++ b/example-project-gradle/build.gradle @@ -14,10 +14,14 @@ java { repositories { mavenCentral() + if (project.hasProperty('useMavenLocal')) { + // To try the not yet released plugin, published by `./gradlew publishToMavenLocal` in the parent project + mavenLocal() + } } ext{ - pluginVersion = '1.1' + pluginVersion = '1.2-SNAPSHOT' // Includes the fix of #2. Set to the released version (e.g. '1.2') once it is available on Maven Central } dependencies {