[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