[hibernate-commits] Hibernate SVN: r17801 - in core/branches/gradle: buildSrc and 2 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Oct 19 23:41:50 EDT 2009
Author: steve.ebersole at jboss.com
Date: 2009-10-19 23:41:50 -0400 (Mon, 19 Oct 2009)
New Revision: 17801
Removed:
core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrConvention.java
Modified:
core/branches/gradle/build.gradle
core/branches/gradle/buildSrc/build.gradle
core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrPlugin.java
core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrTask.java
core/branches/gradle/hibernate-core/build.gradle
Log:
working Antlr plugin
Modified: core/branches/gradle/build.gradle
===================================================================
--- core/branches/gradle/build.gradle 2009-10-19 21:33:35 UTC (rev 17800)
+++ core/branches/gradle/build.gradle 2009-10-20 03:41:50 UTC (rev 17801)
@@ -65,13 +65,4 @@
sourceCompatibility = "1.4"
}
-buildscript {
- dependencies {
- antlrVersion = '2.7.6'
- classpath (
- [group: 'antlr', name: 'antlr', version: antlrVersion]
- )
- }
-}
-
dependsOnChildren()
Modified: core/branches/gradle/buildSrc/build.gradle
===================================================================
--- core/branches/gradle/buildSrc/build.gradle 2009-10-19 21:33:35 UTC (rev 17800)
+++ core/branches/gradle/buildSrc/build.gradle 2009-10-20 03:41:50 UTC (rev 17801)
@@ -7,12 +7,12 @@
}
dependencies {
- antVersion = '1.6.5'
- antlrVersion = '2.7.6'
+ antVersion = '1.7.0'
+ antlrVersion = '2.7.7'
compile (
- [group: 'ant', name: 'ant', version: antVersion],
- [group: 'ant', name: 'ant-antlr', version: antVersion],
+ [group: 'org.apache.ant', name: 'ant', version: antVersion],
+ [group: 'org.apache.ant', name: 'ant-antlr', version: antVersion],
[group: 'antlr', name: 'antlr', version: antlrVersion],
[group: 'org.slf4j', name: 'slf4j-api', version: '1.5.8'],
[group: 'org.codehaus.groovy', name: 'groovy-all', version: '1.6.4'],
Deleted: core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrConvention.java
===================================================================
--- core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrConvention.java 2009-10-19 21:33:35 UTC (rev 17800)
+++ core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrConvention.java 2009-10-20 03:41:50 UTC (rev 17801)
@@ -1,36 +0,0 @@
-/*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * Copyright (c) 2009 by Red Hat Inc and/or its affiliates or by
- * third-party contributors as indicated by either @author tags or express
- * copyright attribution statements applied by the authors. All
- * third-party contributions are distributed under license by Red Hat Inc.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02110-1301 USA\
- */
-package org.gradle.plugin.antlr;
-
-/**
- * TODO : javadoc
- *
- * @author Steve Ebersole
- */
-public class AntlrConvention {
- private boolean trace;
- private boolean traceLexer;
- private boolean traceParser;
- private boolean traceTreeWalker;
-}
Modified: core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrPlugin.java
===================================================================
--- core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrPlugin.java 2009-10-19 21:33:35 UTC (rev 17800)
+++ core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrPlugin.java 2009-10-20 03:41:50 UTC (rev 17801)
@@ -43,8 +43,7 @@
/**
- * A {@link Plugin} which extends the {@link JavaPlugin} to provide support for compiling and documenting Groovy
- * source files.
+ * A plugin for adding Antlr support to {@link JavaPlugin java projects}
*
* @author Steve Ebersole
*/
@@ -55,13 +54,13 @@
public void use(final Project project, ProjectPluginsContainer projectPluginsHandler) {
projectPluginsHandler.usePlugin( JavaPlugin.class, project );
- // For now, just expect the user to have specified a configuration named
- // 'antlr' for
-// Configuration antlrConfiguration = project.getConfigurations()
-// .getByName( ANTLR_CONFIGURATION_NAME );
-// assert antlrConfiguration != null
-// : "You must specify a configuration named '" + ANTLR_CONFIGURATION_NAME + "' with the ant-antlr and antlr jars";
-// project.getConfigurations().getByName( COMPILE_CONFIGURATION_NAME ).extendsFrom( antlrConfiguration );
+ // set up a configuration named 'antlr' for the user to specify the antlr libs to use in case
+ // they want a specific version etc.
+ Configuration antlrConfiguration = project.getConfigurations().add( ANTLR_CONFIGURATION_NAME )
+ .setVisible( false )
+ .setTransitive( false )
+ .setDescription( "The Antlr libraries to be used for this project." );
+ project.getConfigurations().getByName( COMPILE_CONFIGURATION_NAME ).extendsFrom( antlrConfiguration );
final ProjectInternal projectInternal = (ProjectInternal) project;
project.getConvention().getPlugin( JavaPluginConvention.class ).getSourceSets().allObjects(
@@ -88,6 +87,8 @@
antlrTask.setDescription(
String.format( "Processes the %s Antlr grammars.", sourceSet.getName() )
);
+
+ // 3) set up convention mapping for default sources (allows user to not have to specify)
antlrTask.conventionMapping(
"defaultSource",
new ConventionValue() {
@@ -97,7 +98,20 @@
}
);
- // 3) Set up the Antlr output directory (adding to javac inputs!)
+ // 4) set up convention mapping for handling the 'antlr' dependency configuration
+ antlrTask.getConventionMapping().map(
+ "antlrClasspath",
+ new ConventionValue() {
+ public Object getValue(Convention convention, IConventionAware conventionAwareObject) {
+ return project.getConfigurations()
+ .getByName( ANTLR_CONFIGURATION_NAME )
+ .copy()
+ .setTransitive( true );
+ }
+ }
+ );
+
+ // 5) Set up the Antlr output directory (adding to javac inputs!)
final String outputDirectoryName = String.format(
"%s/generated-src/antlr/%s",
project.getBuildDir(),
@@ -107,9 +121,8 @@
antlrTask.setOutputDirectory( outputDirectory );
sourceSet.getJava().srcDir( outputDirectory );
- // 4) register fact that antlr should be run before compiling
- project.getTasks().getByName( sourceSet.getCompileTaskName( "java" ) )
- .dependsOn( taskName );
+ // 6) register fact that antlr should be run before compiling
+ project.getTasks().getByName( sourceSet.getCompileTaskName( "java" ) ).dependsOn( taskName );
}
}
);
Modified: core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrTask.java
===================================================================
--- core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrTask.java 2009-10-19 21:33:35 UTC (rev 17800)
+++ core/branches/gradle/buildSrc/src/main/java/org/gradle/plugin/antlr/AntlrTask.java 2009-10-20 03:41:50 UTC (rev 17801)
@@ -26,17 +26,19 @@
import java.io.File;
import java.util.List;
+import org.apache.tools.ant.taskdefs.optional.ANTLR;
+import org.apache.tools.ant.types.Path;
+import org.gradle.api.file.FileCollection;
import org.gradle.api.tasks.SourceTask;
+import org.gradle.plugin.antlr.metadata.MetadataExtracter;
import org.gradle.plugin.antlr.metadata.XRef;
-import org.gradle.plugin.antlr.metadata.MetadataExtracter;
+import org.gradle.plugin.antlr.plan.GenerationPlan;
import org.gradle.plugin.antlr.plan.GenerationPlanBuilder;
-import org.gradle.plugin.antlr.plan.GenerationPlan;
-import org.apache.tools.ant.taskdefs.optional.ANTLR;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * TODO : javadoc
+ * Gradle task for executing Antlr generations. Wrapper around the Ant {@link ANTLR} task.
*
* @author Steve Ebersole
*/
@@ -48,6 +50,8 @@
private boolean traceParser;
private boolean traceTreeWalker;
+ private FileCollection antlrClasspath;
+
private File outputDirectory;
public boolean isTrace() {
@@ -90,6 +94,14 @@
this.outputDirectory = outputDirectory;
}
+ public FileCollection getAntlrClasspath() {
+ return antlrClasspath;
+ }
+
+ public void setAntlrClasspath(FileCollection antlrClasspath) {
+ this.antlrClasspath = antlrClasspath;
+ }
+
@org.gradle.api.tasks.TaskAction
public void generate() {
//noinspection ResultOfMethodCallIgnored
@@ -111,6 +123,11 @@
generationPlan.getGenerationDirectory().mkdirs();
ANTLR antlr = new ANTLR();
+ antlr.setProject( getAnt().getAntProject() );
+ Path antlrTaskClasspath = antlr.createClasspath();
+ for ( File dep: getAntlrClasspath() ) {
+ antlrTaskClasspath.createPathElement().setLocation( dep );
+ }
antlr.setTrace( trace );
antlr.setTraceLexer( traceLexer );
antlr.setTraceParser( traceParser );
Modified: core/branches/gradle/hibernate-core/build.gradle
===================================================================
--- core/branches/gradle/hibernate-core/build.gradle 2009-10-19 21:33:35 UTC (rev 17800)
+++ core/branches/gradle/hibernate-core/build.gradle 2009-10-20 03:41:50 UTC (rev 17801)
@@ -1,19 +1,15 @@
usePlugin org.gradle.plugin.antlr.AntlrPlugin.class
-//configurations {
-// antAntlr {
-// description = 'Classpath used to define and execute the Antlr Ant task.'
-// }
-//}
-
dependencies {
antVersion = '1.6.5'
compile (
- [group: 'antlr', name: 'antlr', version: antlrVersion],
[group: 'commons-collections', name: 'commons-collections', version: '3.1'],
[group: 'dom4j', name: 'dom4j', version: dom4jVersion]
)
+ antlr (
+ [group: 'antlr', name: 'antlr', version: antlrVersion]
+ )
provided(
[group: 'javassist', name: 'javassist', version: javassistVersion],
[group: 'cglib', name: 'cglib', version: cglibVersion, transitive: true],
@@ -22,72 +18,8 @@
[group: 'javax.security', name: 'jaas', version: '1.0.01'],
[group: 'javax.security', name: 'jacc', version: '1.0']
)
-// antAntlr (
-// [group: 'ant', name: 'ant-antlr', version: antVersion],
-// [group: 'antlr', name: 'antlr', version: antlrVersion]
-// )
}
manifest.mainAttributes(
mainClass: 'org.hibernate.Version'
)
-
-//antlrSourceDirName = "src/main/antlr"
-//antlrJavaTargetDirName = "$buildDir/generated-src/antlr"
-//
-//antlrJavaTargetDir = new File( antlrJavaTargetDirName )
-//
-//task antlrInit << {
-// antlrJavaTargetDir.mkdirs()
-//}
-//
-//task antlr(dependsOn: antlrInit) << {
-// ant.taskdef(
-// name: 'antlrtask',
-// classname: 'org.apache.tools.ant.taskdefs.optional.ANTLR',
-// classpath: configurations.antAntlr.asPath
-// )
-//
-// outputDir = new File( "$antlrJavaTargetDirName/org/hibernate/hql/antlr" )
-// outputDir.mkdirs()
-//
-// ant.antlrtask(
-// target: "${antlrSourceDirName}/hql.g",
-// outputdirectory: outputDir
-// )
-//
-// ant.antlrtask(
-// target: "${antlrSourceDirName}/hql-sql.g",
-// outputdirectory: outputDir,
-// tracetreewalker: true
-// )
-//
-// ant.antlrtask(
-// target: "${antlrSourceDirName}/sql-gen.g",
-// outputdirectory: outputDir,
-// tracetreewalker: true
-// )
-//
-// outputDir = new File( "$antlrJavaTargetDirName/org/hibernate/sql/ordering/antlr" )
-// outputDir.mkdirs()
-//
-// ant.antlrtask(
-// target: "${antlrSourceDirName}/order-by.g",
-// outputdirectory: outputDir
-// )
-//
-// ant.antlrtask(
-// target: "${antlrSourceDirName}/order-by-render.g",
-// outputdirectory: outputDir,
-// tracetreewalker: true
-// )
-//
-//}
-//
-//def antlrGeneratedSourceFiles = files( antlrJavaTargetDir ) {
-// builtBy 'antlr'
-//}
-//
-//compileJava.dependsOn antlrGeneratedSourceFiles.builtBy
-//sourceSets.main.java.srcDir( antlrGeneratedSourceFiles )
-
More information about the hibernate-commits
mailing list