You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2016/11/19 22:50:07 UTC

[06/35] zest-java git commit: build: introduce zest extension for shorted dependency notation

build: introduce zest extension for shorted dependency notation

plus, it detangles publishing coordinates from project dependencies


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/17754489
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/17754489
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/17754489

Branch: refs/heads/develop
Commit: 1775448929e524bea44ed99bfbc78c5354bf1373
Parents: 93355d6
Author: Paul Merlin <pa...@apache.org>
Authored: Fri Nov 11 19:03:46 2016 +0100
Committer: Paul Merlin <pa...@apache.org>
Committed: Fri Nov 11 19:03:46 2016 +0100

----------------------------------------------------------------------
 build.gradle                                    |  5 ++
 .../org/apache/zest/gradle/ZestExtension.groovy | 69 ++++++++++++++++++++
 .../org/apache/zest/gradle/ZestPlugin.groovy    | 32 +++++++++
 3 files changed, 106 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/17754489/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 5760720..cc78501 100644
--- a/build.gradle
+++ b/build.gradle
@@ -18,10 +18,15 @@
  *
  */
 import org.apache.tools.ant.filters.ReplaceTokens
+import org.apache.zest.gradle.ZestPlugin
 import org.apache.zest.gradle.doc.AsciidocBuildInfoPlugin
 import org.apache.zest.gradle.release.ModuleReleaseSpec
 import org.apache.zest.gradle.version.VersionClassPlugin
 
+allprojects {
+  apply plugin: ZestPlugin
+}
+
 project.ext {
   title = "Apache Zest\u2122 (Java Edition) SDK"
   description = "Apache Zest\u2122 (Java Edition) is a framework for domain centric application development, including evolved concepts from AOP, DI and DDD."

http://git-wip-us.apache.org/repos/asf/zest-java/blob/17754489/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy
new file mode 100644
index 0000000..954291d
--- /dev/null
+++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy
@@ -0,0 +1,69 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.
+ */
+package org.apache.zest.gradle
+
+import org.gradle.api.Project
+import org.gradle.api.artifacts.Dependency
+
+class ZestExtension
+{
+  private final Project project
+  final Core core
+
+  ZestExtension( Project project )
+  {
+    this.project = project
+    this.core = new Core()
+  }
+
+  class Core
+  {
+    Dependency api = core( 'api' )
+    Dependency spi = core( 'spi' )
+    Dependency runtime = core( 'runtime' )
+    Dependency bootstrap = core( 'bootstrap' )
+    Dependency testsupport = core( 'testsupport' )
+    Dependency io = core( 'io' )
+    Dependency functional = core( 'functional' )
+  }
+
+  private Dependency core( String name )
+  {
+    return dependency( 'org.apache.zest.core', "org.apache.zest.core.$name" )
+  }
+
+  Dependency library( String name )
+  {
+    return dependency( 'org.apache.zest.libraries', "org.apache.zest.library.$name" )
+  }
+
+  Dependency extension( String name )
+  {
+    return dependency( 'org.apache.zest.extensions', "org.apache.zest.extension.$name" )
+  }
+
+  Dependency tool( String name )
+  {
+    return dependency( 'org.apache.zest.tools', "org.apache.zest.tool.$name" )
+  }
+
+  private Dependency dependency( String group, String name )
+  {
+    project.dependencies.project( path: ":$group:$name" )
+  }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/17754489/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestPlugin.groovy
new file mode 100644
index 0000000..2752311
--- /dev/null
+++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestPlugin.groovy
@@ -0,0 +1,32 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.
+ */
+package org.apache.zest.gradle
+
+import groovy.transform.CompileStatic
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+
+@CompileStatic
+class ZestPlugin implements Plugin<Project>
+{
+  @Override
+  void apply( final Project project )
+  {
+    project.extensions.create( "zest", ZestExtension, project )
+  }
+}