From dfe7fab4229f2192c595b9b33d9b71fb940b49b9 Mon Sep 17 00:00:00 2001 From: Hardy Ferentschik Date: Fri, 25 Oct 2013 20:38:39 +0200 Subject: [PATCH] HHH-8483 Removing Gradle wrapper files, license.txt and changelog, since they are obsolete in the case of metamodel-generator being a sub-project of ORM --- tooling/metamodel-generator/.gitignore | 35 -- tooling/metamodel-generator/build.gradle | 388 ------------------ tooling/metamodel-generator/changelog.txt | 157 ------- .../gradle/wrapper/gradle-wrapper.jar | Bin 46670 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - tooling/metamodel-generator/gradlew | 164 -------- tooling/metamodel-generator/gradlew.bat | 90 ---- tooling/metamodel-generator/license.txt | 202 --------- 8 files changed, 1042 deletions(-) delete mode 100644 tooling/metamodel-generator/.gitignore delete mode 100644 tooling/metamodel-generator/build.gradle delete mode 100644 tooling/metamodel-generator/changelog.txt delete mode 100644 tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.jar delete mode 100644 tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.properties delete mode 100755 tooling/metamodel-generator/gradlew delete mode 100644 tooling/metamodel-generator/gradlew.bat delete mode 100644 tooling/metamodel-generator/license.txt diff --git a/tooling/metamodel-generator/.gitignore b/tooling/metamodel-generator/.gitignore deleted file mode 100644 index f841c04e86..0000000000 --- a/tooling/metamodel-generator/.gitignore +++ /dev/null @@ -1,35 +0,0 @@ -# Typically *NIX text editors, by default, append '~' to files on saving to make backups -*~ - -# Gradle work directory -.gradle -buildSrc/.gradle - -# Build output directies -/target -*/target -/build -*/build - -# Test output directories -test-output/ - -# IntelliJ specific files/directories -/out -.idea -*.ipr -*.iws -*.iml -atlassian-ide-plugin.xml - -# Eclipse specific files/directories -.classpath -.project -.settings - -# NetBeans specific files/directories -.nbattrs - -# Miscellaneous -*.log -.clover diff --git a/tooling/metamodel-generator/build.gradle b/tooling/metamodel-generator/build.gradle deleted file mode 100644 index eb4b8ac8ba..0000000000 --- a/tooling/metamodel-generator/build.gradle +++ /dev/null @@ -1,388 +0,0 @@ -apply plugin: 'java' -apply plugin: 'version-injection' -apply plugin: 'maven' -apply plugin: 'maven-publish' -apply plugin: 'maven-publish-auth' -apply plugin: 'jdocbook' -apply plugin: 'checkstyle' -apply plugin: 'distribution' -apply plugin: 'eclipse' -apply plugin: 'idea' - -task wrapper(type: Wrapper) { - gradleVersion = '1.7' -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Define some project settings -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -project.buildDir = 'target' -project.group = 'org.hibernate' -project.version = '1.4.0-SNAPSHOT' - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Define repostories for the build script -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -buildscript { - repositories { - mavenCentral() - mavenLocal() - mavenRepo name: 'jboss-nexus', url: "http://repository.jboss.org/nexus/content/groups/public/" - } - dependencies { - classpath 'org.hibernate.build.gradle:gradle-maven-publish-auth:2.0.1' - classpath 'org.jboss.jdocbook:gradle-jdocbook:1.2.1' - classpath 'org.hibernate.build.gradle:version-injection-plugin:1.0.0' - } -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Define repositories for the artifact (metamodelgen) -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -repositories { - mavenCentral() - mavenLocal() - mavenRepo name: 'jboss-nexus', url: 'https://repository.jboss.org/nexus/content/groups/public' -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Build a map of the dependency artifacts to use. Centralized definition of the versions to use. -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -ext { - slf4jVersion = '1.7.5' - pressgangVersion = '3.0.0' - libraries = [ - // test libraries - junit: "junit:junit:4.10", - hibernate: "org.hibernate:hibernate-core:4.2.7.Final", - jpa_api: "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final", - slf4j_api: "org.slf4j:slf4j-api:${slf4jVersion}", - slf4j_log4j: "org.slf4j:slf4j-log4j12:${slf4jVersion}", - - // jaxb task - jaxb: "com.sun.xml.bind:jaxb-xjc:2.1.6", - jaxb2_basics: "org.jvnet.jaxb2_commons:jaxb2-basics:0.6.0", - jaxb2_ant: "org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.6.0", - - // docbook libraries - pressgang_xslt: "org.jboss.pressgang:pressgang-xslt-ns:${pressgangVersion}", - pressgang_fonts: "org.jboss.pressgang:pressgang-fonts:${pressgangVersion}", - hibernate_docbook_style: "org.hibernate:hibernate-jdocbook-style:2.0.1", - jboss_docbook_style: "org.jboss.pressgang:pressgang-jdocbook-style:${pressgangVersion}" - ] -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Create configuration for JAXB class generation -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -configurations.create('jaxb') -configurations.jaxb { - description = 'Dependencies for running ant xjc (jaxb class generation)' -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Prepare the different dependencies per configuration -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -dependencies { - testCompile libraries.junit - testCompile libraries.jpa_api - testCompile libraries.hibernate - testCompile libraries.slf4j_api - testCompile libraries.slf4j_log4j - - jaxb libraries.jaxb - jaxb libraries.jaxb2_basics - jaxb libraries.jaxb2_ant -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// The main Java build - jaxb schema class generation, compilation, test -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -compileJava.options.define(compilerArgs: ["-proc:none", "-encoding", "UTF-8"]) -compileTestJava.options.define(compilerArgs: ["-proc:none", "-encoding", "UTF-8"]) -versionInjection { - into( 'org.hibernate.jpamodelgen.Version', 'getVersionString' ) -} - -sourceSets.main { - ext.jaxbTargetDir = file( "${buildDir}/generated-sources" ) - java.srcDir jaxbTargetDir -} - -sourceSets.main { - ext.xsdDir = file( "${rootDir}/src/main/xsd" ) - resources.srcDir xsdDir -} - -jar { - manifest { - attributes 'Implementation-Title' : '${project.name}', - 'Implementation-URL' : 'http://www.jboss.org', - 'Implementation-Version' : '${project.version}', - 'Implementation-Vendor' : 'JBoss by Red Hat, Inc.', - 'Implementation-Vendor-Id' : 'http://www.jboss.org' - } -} - -task jaxb { - // output directory - ext.jaxbTargetDir = file( "${buildDir}/generated-sources" ) - - // input schema - ext.ormXsd = file( 'src/main/xsd/orm_2_0.xsd') - ext.persistenceXsd = file( 'src/main/xsd/persistence_2_0.xsd') - - // configure Gradle up-to-date checking - inputs.files( [ormXsd, persistenceXsd] ) - outputs.dir( jaxbTargetDir ) - - // perform actions - doLast { - jaxbTargetDir.mkdirs() - - ant.taskdef(name: 'xjc', classname: 'org.jvnet.jaxb2_commons.xjc.XJC2Task', classpath: configurations.jaxb.asPath) - ant.jaxbTargetDir = jaxbTargetDir - - ant.xjc( - destdir: '${jaxbTargetDir}', - package: 'org.hibernate.jpamodelgen.xml.jaxb', - extension: 'true' - ) { - schema (dir:"src/main/xsd", includes:"*.xsd") - } - } -} -compileJava.dependsOn jaxb - -test { - beforeTest { descriptor -> - logger.lifecycle("Running " + descriptor) - } -} - -checkstyle { - configFile = rootProject.file( 'src/config/checkstyle/checkstyle.xml' ) - showViolations = true - ignoreFailures = true -} -checkstyleMain.exclude '**/jaxb/**' - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Javadocs -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -final File javadocDir = mkdir( new File( project.buildDir, 'javadocs/api' ) ); -final int copyrightYear = new GregorianCalendar().get( Calendar.YEAR ); -task javadocs(type: Javadoc) { - source = sourceSets.main.allJava - destinationDir = javadocDir - excludes = ['org/hibernate/jpamodelgen/xml/jaxb/**'] - // need to update the javadic classpath and add the main compilation directory to avoid missing classes warnigns due to the - // above excludes - classpath = files( configurations.compile, "${buildDir}/classes/main" ) - maxMemory = '512m' - configure( options ) { - stylesheetFile = rootProject.file( 'src/config/javadoc/stylesheet.css' ) - windowTitle = 'Hibernate JPA 2 Metamodel Generator JavaDocs' - docTitle = "Hibernate JPA 2 Metamodel Generator JavaDocs ($project.version)" - bottom = "Copyright © 2001-$copyrightYear Red Hat, Inc. All Rights Reserved." - use = true - links = [ 'http://download.oracle.com/javase/6/docs/api/', 'http://download.oracle.com/javaee/6/api/' ] - } - - doLast { - copy { - from rootProject.file( 'src/config/javadoc/images' ) - into new File( javadocDir, "/images" ) - } - } -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Docbook -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -jdocbook { - useRelativeImageUris = false - - format('html_single') { - finalName = "index.html" - stylesheet = "classpath:/xslt/org/hibernate/jdocbook/xslt/xhtml-single.xsl" - } - - format('html') { - finalName = "index.html" - stylesheet = "classpath:/xslt/org/hibernate/jdocbook/xslt/xhtml.xsl" - } - - dependencies { - jdocbookXsl libraries.pressgang_xslt - jdocbookXsl libraries.pressgang_fonts - jdocbookStyles libraries.hibernate_docbook_style - jdocbookStyles libraries.jboss_docbook_style - } - - manual { - masterSourceDocumentName = 'master.xml' - } -} - -stageStyles_manual.doLast { - logger.lifecycle( "Staging images") - copy { - from project.file( 'src/main/docbook/manual/en-US/images' ) - into project.file( "${buildDir}/docbook/stage/manual/images" ) - include '*.png' - includeEmptyDirs = false - } -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Maven POM generation and partefact ublishing -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - - artifact sourcesJar { - classifier "sources" - } - - pom.withXml { - // append additional metadata - asNode().children().last() + { - resolveStrategy = Closure.DELEGATE_FIRST - - inceptionYear '2009' - name 'Hibernate JPA 2 Metamodel Generator' - description 'Annotation Processor to generate JPA 2 static metamodel classes' - url 'http://hibernate.org' - organization { - name 'Hibernate.org' - url 'http://hibernate.org' - } - issueManagement { - system 'jira' - url 'http://opensource.atlassian.com/projects/hibernate/browse/METAGEN' - } - scm { - url 'http://github.com/hibernate/hibernate-metamodelgen' - connection 'scm:git:git://github.com/hibernate/hibernate-metamodelgen.git' - developerConnection 'scm:git:git@github.com:hibernate/hibernate-metamodelgen.git' - } - licenses { - license { - name 'Apache License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - id 'hibernate-team' - name 'The Hibernate Development Team' - organization 'Hibernate.org' - organizationUrl 'http://hibernate.org' - } - } - } - } - } - - repositories { - maven { - if ( project.version.endsWith( 'SNAPSHOT' ) ) { - name 'jboss-snapshots-repository' - url 'https://repository.jboss.org/nexus/content/repositories/snapshots' - } - else { - name 'jboss-releases-repository' - url 'https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/' - } - } - } - - generatePomFileForMavenJavaPublication { - destination = file("$buildDir/generated-pom.xml") - } - } -} - -task sourcesJar(type: Jar, dependsOn: compileJava) { - from sourceSets.main.allSource - classifier = 'sources' -} - -artifacts { - archives sourcesJar -} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Release -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -distributions { - main { - baseName = 'hibernate-jpamodelgen-dist' - contents { - from rootProject.file( 'README.md' ) - from rootProject.file( 'license.txt' ) - from rootProject.file( 'changelog.txt' ) - - into('lib') { - from ( "${buildDir}/libs" ) { - exclude( '*-sources.jar' ) - } - } - - // javadocs - into('docs/api') { - from javadocDir - } - - // docbook - into('docs/reference') { - from "${buildDir}/docbook/publish/manual/en-US" - } - - into( 'project' ) { - from ( rootProject.projectDir ) { - exclude( '.git' ) - exclude( '.gitignore' ) - exclude( 'README.md') - exclude( 'changelog.txt' ) - exclude( 'license.txt' ) - exclude( 'gradle' ) - exclude( 'gradlew' ) - exclude( 'gradlew.bat' ) - exclude( 'wrapper/*' ) - exclude( '**/.gradle/**' ) - exclude( '**/target/**' ) - exclude( '.idea' ) - exclude( '**/*.ipr' ) - exclude( '**/*.iml' ) - exclude( '**/*.iws' ) - exclude( '**/atlassian-ide-plugin.xml' ) - exclude( '**/.classpath' ) - exclude( '**/.project' ) - exclude( '**/.settings' ) - } - } - } - } -} - -distZip.dependsOn build,javadocs,buildDocs -distTar.dependsOn build,javadocs,buildDocs -distTar { - compression = Compression.GZIP -} - -task buildBundles(type: Task, dependsOn: [distZip,distTar]) { - description = "Builds all release bundles" -} - -task release(dependsOn: [publish,buildBundles]) { - description = "Execute all release tasks" -} - - - - diff --git a/tooling/metamodel-generator/changelog.txt b/tooling/metamodel-generator/changelog.txt deleted file mode 100644 index d3736881ef..0000000000 --- a/tooling/metamodel-generator/changelog.txt +++ /dev/null @@ -1,157 +0,0 @@ -Hibernate JPA 2 Metamodel Generator Changelog -============================================= - -1.3.0.Final (09.08.2013) ----------------------- - -** Bug - * [METAGEN-81] - @Embeddable entities don't inherit the access type if it comes from the hierarchy of the containing class - * [METAGEN-82] - Inconsistencies in the way @MappedSuperClass entities are considered - * [METAGEN-85] - MixedConfigurationTest failing - * [METAGEN-86] - Generator exits when discovering in ANY persistence unit - * [METAGEN-88] - End of line in DOS format is hard-coded on ImportContextImpl on "Hibernate Metamodel Generator" - * [METAGEN-90] - Wrong typed metamodel SetAttribute (using an implemented interface) - * [METAGEN-91] - Metamodel generation miss embedded id field if class extends a mapped super class - * [METAGEN-92] - Hibernate Metamodel Generator is not aware of persistence.xml for JPA 2.1 - * [METAGEN-94] - MappedSuperclassWithoutExplicitIdTest failing on certain operating systems - -** Task - * [METAGEN-83] - Upgrade version - -1.2.0.Final (06.03.2012) ----------------------- - - -1.2.0.CR1 (25.01.2012) ----------------------- - -** Bug - * [METAGEN-54] - XML-only field access type Set attribute not generated - * [METAGEN-55] - XML Only reference to Embeddable not written - * [METAGEN-57] - Attributes are not generated for EmbeddedId and collections when the mapping is defined in orm.xml mapping files - * [METAGEN-63] - Parameter for additional entity mapping files is ormXmlList but not ormXml - * [METAGEN-64] - Normal class in hierarchy breaks metamodel - * [METAGEN-65] - Example maven configuration is not working - * [METAGEN-66] - XML Based Mapping of Embeddets in Mapped-Superclass is ignored - * [METAGEN-67] - @MappedSuperclass without @Id or explicit access type don't inherit the right hierachy access type - * [METAGEN-68] - Some documented options are not recognized, namely, ormXml and addGeneratedAnnotation - * [METAGEN-69] - When the root class of hierarchy does not declare @Id default access type cannot be resolved - * [METAGEN-75] - Maven plugin and JPA XML configuration path problem - * [METAGEN-76] - hashCode is treated as a persistent attribute - * [METAGEN-77] - Inheritance of metamodel classes - -** Improvement - * [METAGEN-50] - Suppress Warnings - * [METAGEN-52] - Remove dependency to JPA jar/classes - * [METAGEN-62] - SortedSet attributes are not included in metamodel - * [METAGEN-73] - Refactoring of the Generated annotation - * [METAGEN-78] - Support for Java 7 - -** New Feature - * [METAGEN-53] - Remove dependency of JPA API classes to simplify setup - -** Task - * [METAGEN-79] - The Generated annotation should be added by default - -1.1.1.Final (06.12.2010) ------------------------- - -** Bug - * [METAGEN-48] - Distribution bundle does not contain jar artifact - * [METAGEN-49] - JPAMetaModelEntityProcessor.createMetaModelClasses calls remove within foreach loop (causing a ConcurrentModificationException) - -** Improvement - * [METAGEN-47] - Improve documentation on IntelliJ's configuration - -1.1.0.Final (03.11.2010) ------------------------- - -** Bug - * [METAGEN-42] - The Hibernate Metamodel Generator project contains an outdated version of persistence_2_0.xsd - * [METAGEN-45] - Generated metamodel sources are not compiled in JDK 6 - -** Task - * [METAGEN-41] - Update pom and readme after move to GitHub - -1.1.0.CR1 (15.10.2010) ------------------------- - -** Bug - * [METAGEN-28] - Custom UserType not supported in Hibernate's static MetaModel generator - * [METAGEN-29] - Embedded generic types not supported by metamodel generator - * [METAGEN-30] - @Target - * [METAGEN-35] - Generated meta model classes does not extend the super class' meta model. - * [METAGEN-36] - Attempt to recreate a file for type - * [METAGEN-37] - MappedSuperclass with type parameters result in uncompilable metamodels - * [METAGEN-38] - Attribute not generated for Blob type fields - * [METAGEN-40] - Generator does not work when classes are in the default package - * [METAGEN-43] - @Entity extending from @MappedSuperClass from another package does not generate META MODEL properly - -** Task - * [METAGEN-7] - Try to find a way to be able to use @SupportedAnnotationTypes("javax.persistence.Entity") in JPAMetaModelEntityProcessor - * [METAGEN-31] - Update pom to use the new distributationManagement information - * [METAGEN-32] - Update the documentation regarding the usage of the maven-processor-plugin - * [METAGEN-33] - Metamodel is not generated with @Generated annotation - * [METAGEN-39] - Cleanup the pom - -1.0.0.Final (10.03.2010) ------------------------- - -** Bug - * [METAGEN-27] - Review of documentation - -** Task - * [METAGEN-26] - Update readme.txt - -1.0.0-CR-1 (10.03.2010) ------------------------ - -** Bug - * [METAGEN-17] - Consider XML for targetEntity - * [METAGEN-19] - Support @MapKeyClass overriding of the key class - * [METAGEN-22] - Handle map-key-class in xml configuration - * [METAGEN-23] - Handle @IdClass case - * [METAGEN-25] - Ensure that the default package name gets used in all cases where class names can be specified - -** Improvement - * [METAGEN-13] - Only re-process xml files if thay have changed - -** Task - * [METAGEN-4] - Document how to use the processor in different environments - * [METAGEN-9] - Implement mixed configuration (annotation + xml) - * [METAGEN-24] - Create a mechanism to check whether xml files have changed - -1.0.0-Beta-3 (27.01.2010) -------------------------- - -** Bug - * [METAGEN-14] - Compiling HEM tests raises an error level log - * [METAGEN-15] - When generics are used (outside of collection), the face value of the generic is used leading to compilation failure of the metaclass - * [METAGEN-16] - Code makes use of getAnnotation() instead of getAnnotationMirrors() - * [METAGEN-18] - Support @ElementCollection.targetClass + its XML equivalent - * [METAGEN-20] - Support collections defined as raw types and targetElement - -** Improvement - * [METAGEN-10] - Output to the compiler are meaninglessly verbose - -** Task - * [METAGEN-5] - Make the logging output configurable - * [METAGEN-6] - Move xml parsing code in JPAMetaModelEntityProcessor into a separate class - * [METAGEN-21] - Add @SupportedOptions annotation to annotation processor so that tools can query the processor for supported options - - -1.1.0-Beta-2 (12.12.2009) -------------------------- - -** Task - * [METAGEN-11] - Upgrade JPA dependency to hibernate-jpa-2.0-api-1.0.0-CR-1 - -1.1.0-Beta-1 (01.12.2009) -------------------------- - -** Bug - * [METAGEN-2] - Does not handle byte[] at all - * [METAGEN-8] - Processor does not handle @ElementCollection on a Map - -** Task - * [METAGEN-3] - Refactor project structure \ No newline at end of file diff --git a/tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.jar b/tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7b359d719bf96879170b6887c0bbb2e02b00ac34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46670 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 diff --git a/tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.properties b/tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index a421e15987..0000000000 --- a/tooling/metamodel-generator/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Fri Oct 11 16:29:51 CEST 2013 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.7-bin.zip diff --git a/tooling/metamodel-generator/gradlew b/tooling/metamodel-generator/gradlew deleted file mode 100755 index 3851082a8b..0000000000 --- a/tooling/metamodel-generator/gradlew +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# 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 -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" -APP_HOME="`pwd -P`" -cd "$SAVED" - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# 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" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -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. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "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 -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 - -# 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"` - - # 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\"" - fi - i=$((i+1)) - 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 - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/tooling/metamodel-generator/gradlew.bat b/tooling/metamodel-generator/gradlew.bat deleted file mode 100644 index aec99730b4..0000000000 --- a/tooling/metamodel-generator/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@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 - -@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= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@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 Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_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=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -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 diff --git a/tooling/metamodel-generator/license.txt b/tooling/metamodel-generator/license.txt deleted file mode 100644 index d645695673..0000000000 --- a/tooling/metamodel-generator/license.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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 - - http://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.