You are viewing a plain text version of this content. The canonical link for it is here.
Posted to s4-commits@incubator.apache.org by mm...@apache.org on 2013/06/01 11:33:09 UTC
[19/50] [abbrv] git commit: Merge branch 'S4-66' into dev
Merge branch 'S4-66' into dev
Conflicts:
subprojects/s4-core/src/test/java/org/apache/s4/deploy/TestAutomaticDeployment.java
subprojects/s4-core/src/test/java/org/apache/s4/deploy/prodcon/TestProducerConsumer.java
subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
subprojects/s4-tools/src/main/resources/templates/build.gradle
test-apps/consumer-app/build.gradle
test-apps/producer-app/build.gradle
test-apps/simple-deployable-app-1/build.gradle
test-apps/twitter-adapter/build.gradle
test-apps/twitter-counter/build.gradle
Project: http://git-wip-us.apache.org/repos/asf/incubator-s4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s4/commit/04243133
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s4/tree/04243133
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s4/diff/04243133
Branch: refs/heads/master
Commit: 042431338a51c4481e0cad706de0b66deafe26ca
Parents: eb20b95 858a8af
Author: Daniel Gómez Ferro <df...@apache.org>
Authored: Sat Mar 9 21:22:26 2013 +0100
Committer: Daniel Gómez Ferro <df...@apache.org>
Committed: Sat Mar 9 21:22:26 2013 +0100
----------------------------------------------------------------------
subprojects/s4-benchmarks/s4-benchmarks.gradle | 3 -
.../s4/core/classloader/TestClassLoader.java | 5 +-
.../apache/s4/deploy/TestAutomaticDeployment.java | 3 +-
.../s4/deploy/prodcon/TestProducerConsumer.java | 6 +-
.../src/main/java/org/apache/s4/tools/Deploy.java | 47 +-------
.../src/main/java/org/apache/s4/tools/Package.java | 6 +-
.../src/main/resources/templates/build.gradle | 88 +++++----------
test-apps/consumer-app/build.gradle | 35 ++-----
test-apps/producer-app/build.gradle | 35 ++-----
test-apps/simple-deployable-app-1/build.gradle | 39 ++-----
test-apps/twitter-adapter/build.gradle | 60 ++---------
test-apps/twitter-counter/build.gradle | 34 ++-----
12 files changed, 86 insertions(+), 275 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-benchmarks/s4-benchmarks.gradle
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-core/src/test/java/org/apache/s4/core/classloader/TestClassLoader.java
----------------------------------------------------------------------
diff --cc subprojects/s4-core/src/test/java/org/apache/s4/core/classloader/TestClassLoader.java
index 7775ac1,0000000..3e20343
mode 100644,000000..100644
--- a/subprojects/s4-core/src/test/java/org/apache/s4/core/classloader/TestClassLoader.java
+++ b/subprojects/s4-core/src/test/java/org/apache/s4/core/classloader/TestClassLoader.java
@@@ -1,157 -1,0 +1,158 @@@
+/**
+ * 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.s4.core.classloader;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import junit.framework.Assert;
+
+import org.I0Itec.zkclient.IZkChildListener;
+import org.I0Itec.zkclient.IZkDataListener;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.s4.base.util.S4RLoader;
+import org.apache.s4.comm.tools.TaskSetup;
+import org.apache.s4.comm.topology.ZNRecord;
+import org.apache.s4.comm.topology.ZNRecordSerializer;
+import org.apache.s4.comm.topology.ZkClient;
+import org.apache.s4.core.util.AppConfig;
+import org.apache.s4.deploy.DeploymentUtils;
+import org.apache.s4.fixtures.CommTestUtils;
+import org.apache.s4.fixtures.CoreTestUtils;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.ZooKeeper;
+import org.apache.zookeeper.server.NIOServerCnxn.Factory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestClassLoader {
+
+ private Factory zookeeperServerConnectionFactory;
+ private Process forkedProducerNode;
+ private ZkClient zkClient;
+ private final static String PRODUCER_CLUSTER = "producerCluster";
+ private static File producerS4rDir;
+
+ @BeforeClass
+ public static void createS4RFiles() throws Exception {
+ File gradlewFile = CoreTestUtils.findGradlewInRootDir();
+
+ producerS4rDir = new File(gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build/libs");
+
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/producer-app/build.gradle"), "clean", new String[] { "-buildFile="
- + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle" });
++ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle"});
+ Assert.assertFalse(producerS4rDir.exists());
+
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/producer-app/build.gradle"), "s4r", new String[] { "-buildFile="
- + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle" });
++ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle",
++ "appClass=s4app.ProducerApp"});
+
+ Assert.assertTrue(new File(producerS4rDir, "producer-app-0.0.0-SNAPSHOT.s4r").exists());
+ }
+
+ @Before
+ public void prepare() throws Exception {
+ CommTestUtils.cleanupTmpDirs();
+ zookeeperServerConnectionFactory = CommTestUtils.startZookeeperServer();
+ final ZooKeeper zk = CommTestUtils.createZkClient();
+ try {
+ zk.delete("/simpleAppCreated", -1);
+ } catch (Exception ignored) {
+ }
+
+ zk.close();
+ }
+
+ @After
+ public void cleanup() throws Exception {
+ CommTestUtils.stopZookeeperServer(zookeeperServerConnectionFactory);
+ CommTestUtils.killS4App(forkedProducerNode);
+ }
+
+ @Test
+ public void testInitialDeploymentFromFileSystem() throws Exception {
+
+ File producerS4R = new File(producerS4rDir, "producer-app-0.0.0-SNAPSHOT.s4r");
+ String uriProducer = producerS4R.toURI().toString();
+
+ initializeS4Node();
+
+ final BlockingQueue<Object> queue = new ArrayBlockingQueue<Object>(1);
+ zkClient.subscribeDataChanges("/s4/classLoader", new IZkDataListener() {
+
+ @Override
+ public void handleDataDeleted(String dataPath) throws Exception {
+ }
+
+ @Override
+ public void handleDataChange(String dataPath, Object data) throws Exception {
+ queue.put(data);
+ }
+ });
+ DeploymentUtils.initAppConfig(new AppConfig.Builder().appURI(uriProducer).build(), PRODUCER_CLUSTER, true,
+ "localhost:2181");
+
+ Object classLoaderRecord = queue.poll(20, TimeUnit.SECONDS);
+ assertTrue("Stored record has unexpected type", classLoaderRecord instanceof ZNRecord);
+ ZNRecord record = (ZNRecord) classLoaderRecord;
+
+ assertEquals("Unexpected classloader runs the app init()", S4RLoader.class.getName(), record.getId());
+ }
+
+ private void initializeS4Node() throws ConfigurationException, IOException, InterruptedException, KeeperException {
+ // 1. start s4 node. Check that no app is deployed.
+ TaskSetup taskSetup = new TaskSetup("localhost:" + CommTestUtils.ZK_PORT);
+ taskSetup.clean("s4");
+ taskSetup.setup(PRODUCER_CLUSTER, 1, 1300);
+
+ zkClient = new ZkClient("localhost:" + CommTestUtils.ZK_PORT);
+ zkClient.setZkSerializer(new ZNRecordSerializer());
+ List<String> processes = zkClient.getChildren("/s4/clusters/" + PRODUCER_CLUSTER + "/process");
+ Assert.assertTrue(processes.size() == 0);
+ final CountDownLatch signalProcessesReady = new CountDownLatch(1);
+
+ zkClient.subscribeChildChanges("/s4/clusters/" + PRODUCER_CLUSTER + "/process", new IZkChildListener() {
+
+ @Override
+ public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception {
+ if (currentChilds.size() == 1) {
+ signalProcessesReady.countDown();
+ }
+
+ }
+ });
+
+ forkedProducerNode = CoreTestUtils.forkS4Node(new String[] { "-cluster=" + PRODUCER_CLUSTER }, zkClient, 20,
+ PRODUCER_CLUSTER);
+ Assert.assertTrue(signalProcessesReady.await(20, TimeUnit.SECONDS));
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-core/src/test/java/org/apache/s4/deploy/TestAutomaticDeployment.java
----------------------------------------------------------------------
diff --cc subprojects/s4-core/src/test/java/org/apache/s4/deploy/TestAutomaticDeployment.java
index 60a256f,3c901d7..488f5f9
--- a/subprojects/s4-core/src/test/java/org/apache/s4/deploy/TestAutomaticDeployment.java
+++ b/subprojects/s4-core/src/test/java/org/apache/s4/deploy/TestAutomaticDeployment.java
@@@ -69,17 -69,11 +69,18 @@@ public class TestAutomaticDeployment ex
File gradlewFile = CoreTestUtils.findGradlewInRootDir();
+ s4rDir = new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/simple-deployable-app-1/build/libs");
CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
- + "/test-apps/simple-deployable-app-1/build.gradle"), "installS4R", new String[] {
- "appsDir=" + tmpAppsDir.getAbsolutePath(), "appClass=org.apache.s4.deploy.TestApp" });
+ + "/test-apps/simple-deployable-app-1/build.gradle"), "clean", new String[] { "-buildFile="
+ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/simple-deployable-app-1/build.gradle" });
+ Assert.assertFalse(s4rDir.exists());
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/simple-deployable-app-1/build.gradle"), "s4r", new String[] { "-buildFile="
- + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/simple-deployable-app-1/build.gradle" });
++ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/simple-deployable-app-1/build.gradle",
++ "appClass=org.apache.s4.deploy.TestApp" });
+ Assert.assertTrue(new File(s4rDir, "simple-deployable-app-1-0.0.0-SNAPSHOT.s4r").exists());
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-core/src/test/java/org/apache/s4/deploy/prodcon/TestProducerConsumer.java
----------------------------------------------------------------------
diff --cc subprojects/s4-core/src/test/java/org/apache/s4/deploy/prodcon/TestProducerConsumer.java
index 9296611,31a08cc..dd4f9ec
--- a/subprojects/s4-core/src/test/java/org/apache/s4/deploy/prodcon/TestProducerConsumer.java
+++ b/subprojects/s4-core/src/test/java/org/apache/s4/deploy/prodcon/TestProducerConsumer.java
@@@ -62,32 -62,18 +62,34 @@@ public class TestProducerConsumer
@BeforeClass
public static void createS4RFiles() throws Exception {
- tmpAppsDir = Files.createTempDir();
-
- Assert.assertTrue(tmpAppsDir.exists());
File gradlewFile = CoreTestUtils.findGradlewInRootDir();
+ producerS4rDir = new File(gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build/libs");
+ consumerS4rDir = new File(gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/consumer-app/build/libs");
+
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/producer-app/build.gradle"), "clean", new String[] { "-buildFile="
+ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle" });
+ Assert.assertFalse(producerS4rDir.exists());
+
CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
- + "/test-apps/producer-app/build.gradle"), "installS4R",
- new String[] { "appsDir=" + tmpAppsDir.getAbsolutePath(), "appClass=s4app.ProducerApp" });
+ + "/test-apps/producer-app/build.gradle"), "s4r", new String[] { "-buildFile="
- + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle" });
++ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/producer-app/build.gradle",
++ "appClass=s4app.ProducerApp" });
+
+ Assert.assertTrue(new File(producerS4rDir, "producer-app-0.0.0-SNAPSHOT.s4r").exists());
+
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/consumer-app/build.gradle"), "clean", new String[] { "-buildFile="
+ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/consumer-app/build.gradle" });
+ Assert.assertFalse(consumerS4rDir.exists());
CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
- + "/test-apps/consumer-app/build.gradle"), "installS4R",
- new String[] { "appsDir=" + tmpAppsDir.getAbsolutePath(), "appClass=s4app.ConsumerApp" });
+ + "/test-apps/consumer-app/build.gradle"), "s4r", new String[] { "-buildFile="
- + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/consumer-app/build.gradle" });
++ + gradlewFile.getParentFile().getAbsolutePath() + "/test-apps/consumer-app/build.gradle",
++ "appClass=s4app.ConsumerApp" });
+
+ Assert.assertTrue(new File(consumerS4rDir, "consumer-app-0.0.0-SNAPSHOT.s4r").exists());
}
@Before
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
----------------------------------------------------------------------
diff --cc subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
index de145cf,1070e1c..2165eca
--- a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
+++ b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
@@@ -63,11 -62,8 +61,6 @@@ public class Deploy extends S4ArgsBase
ZkClient zkClient = new ZkClient(deployArgs.zkConnectionString, deployArgs.timeout);
zkClient.setZkSerializer(new ZNRecordSerializer());
- if (!Strings.isNullOrEmpty(deployArgs.s4rPath) && !Strings.isNullOrEmpty(deployArgs.generatedS4R)) {
- logger.error("-s4r and -generatedS4R options are mutually exclusive");
- System.exit(1);
- }
-
- tmpAppsDir = Files.createTempDir();
-
URI s4rURI = null;
if (deployArgs.s4rPath != null) {
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Package.java
----------------------------------------------------------------------
diff --cc subprojects/s4-tools/src/main/java/org/apache/s4/tools/Package.java
index 209b5e9,0c98abc..084b6e9
--- a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Package.java
+++ b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Package.java
@@@ -40,11 -40,8 +40,9 @@@ public class Package extends S4ArgsBas
// prepare gradle -P parameters, including passed gradle opts
params.add("appClass=" + packageArgs.appClass);
params.add("appName=" + packageArgs.appName.get(0));
- ExecGradle.exec(packageArgs.gradleBuildFile, "installS4R", params.toArray(new String[] {}));
+ ExecGradle.exec(packageArgs.gradleBuildFile, "s4r", params.toArray(new String[] {}),
+ packageArgs.debug);
- // Explicitly shutdown the JVM since Gradle leaves non-daemon threads running that delay the termination
- System.exit(0);
} catch (Exception e) {
LoggerFactory.getLogger(Package.class).error("Cannot deploy app", e);
}
@@@ -59,11 -58,8 +59,11 @@@
@Parameter(names = { "-b", "-buildFile" }, description = "Path to gradle build file for the S4 application", required = true, converter = FileConverter.class, validateWith = FileExistsValidator.class)
File gradleBuildFile;
- @Parameter(names = { "-a", "-appClass" }, description = "Full class name of the application class (extending App or AdapterApp)", required = false)
+ @Parameter(names = { "-a", "-appClass" }, description = "Full class name of the application class (extending App or AdapterApp)", required = true)
String appClass = "";
+ @Parameter(names = "-debug", description = "Display debug information from the build system", arity = 0)
+ boolean debug = false;
+
}
}
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/subprojects/s4-tools/src/main/resources/templates/build.gradle
----------------------------------------------------------------------
diff --cc subprojects/s4-tools/src/main/resources/templates/build.gradle
index 1122fcc,9a853b4..6d83c9c
--- a/subprojects/s4-tools/src/main/resources/templates/build.gradle
+++ b/subprojects/s4-tools/src/main/resources/templates/build.gradle
@@@ -17,8 -17,12 +17,10 @@@
*/
-project.ext["s4AppInstallDir"] = hasProperty('appsDir') ? "$appsDir" : "/tmp/appsDir"
+ project.ext["appClassName"] = hasProperty('appClass')? "$appClass": "UNDEFINED"
+
project.ext["s4Version"] = '0.5.0-incubating'
description = 'Apache S4 App'
-//defaultTasks 'installS4R'
project.ext["archivesBaseName"] = "$project.name"
project.ext["distRootFolder"] = "$archivesBaseName-${-> version}"
@@@ -159,27 -130,33 +128,26 @@@ task cp <<
new File("classpath.txt").write(sourceSets.main.output.classesDir.path + File.pathSeparator + <s4_install_dir> + '/lib/*' + File.pathSeparator + <s4_install_dir> + '/subprojects/s4-tools/build/install/s4-tools/lib/*')
}
- /* Parse source file to get the app classname so we can use it in the manifest.
- * TODO: Use a real Java parser. (This is not skipping comments for example.)
- */
- def getAppClassname(file) {
- def classname = "UNKNOWN"
- def lines= file.readLines()
- def packageName = ""
- for(line in lines) {
-
- def pn = line =~ /.*package\s+([\w\.]+)\s*;.*/
- if(pn) {
- packageName = pn[0][1] + "."
- }
- def an = line =~ /.*public\s+class\s+(\w+)\s+extends.+App.*\{/
-
- if (an) {
- classname = packageName + an[0][1]
- println "Found app class name: " + classname
- break
- }
-/* Install the S4 archive to the install directory. */
-task installS4R (type: Copy) {
- dependsOn s4r
- from s4r.archivePath
- into s4AppInstallDir
-}
-
+ /*Check whether the defined appClass exists and extends App*/
+ void checkAppClass() {
+ def loader = this.getClass().getClassLoader()
+
+ def jardir = new File( project.libsDir.path,'lib' )
+ def jars = jardir.listFiles().findAll { it.name.endsWith('.jar') }
+ jars.each {
+ loader.addURL(it.toURI().toURL())
}
- classname
+
+ def appJar = project.libsDir.path+"/app/"+"$project.name"+".jar"
+ loader.addURL(new URL("file://"+appJar))
+
+ def userClass = Class.forName(appClassName, true, this.getClass().getClassLoader())
+ def appClass = Class.forName('org.apache.s4.core.App', true, this.getClass().getClassLoader())
+
+ if (!(appClass.isAssignableFrom(userClass))){
+ throw new InvalidUserDataException("App class " + appClassName + " does not extend org.apache.s4.core.App")
+ }
+
}
+
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/test-apps/consumer-app/build.gradle
----------------------------------------------------------------------
diff --cc test-apps/consumer-app/build.gradle
index 663e095,eae3228..e78e83f
--- a/test-apps/consumer-app/build.gradle
+++ b/test-apps/consumer-app/build.gradle
@@@ -34,8 -34,15 +34,13 @@@
*
*/
+ /* Set the destination where we want to install the apps. */
+ //s4AppInstallDir = "/tmp/s4Apps" // TODO: decide how to standarize dirs, use env var?
+
-project.ext["s4AppInstallDir"] = hasProperty('appsDir') ? "$appsDir" : "/tmp/appsDir"
+ project.ext["appClassName"] = hasProperty('appClass')? "$appClass": "UNDEFINED"
+
project.ext["s4Version"] = '0.5.0-SNAPSHOT'
description = 'Apache S4 App'
-//defaultTasks 'installS4R'
archivesBaseName = "$project.name"
distRootFolder = "$archivesBaseName-${-> version}"
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/test-apps/producer-app/build.gradle
----------------------------------------------------------------------
diff --cc test-apps/producer-app/build.gradle
index 7524cd1,eae3228..75cd3fe
--- a/test-apps/producer-app/build.gradle
+++ b/test-apps/producer-app/build.gradle
@@@ -34,8 -34,15 +34,13 @@@
*
*/
+ /* Set the destination where we want to install the apps. */
+ //s4AppInstallDir = "/tmp/s4Apps" // TODO: decide how to standarize dirs, use env var?
+
-project.ext["s4AppInstallDir"] = hasProperty('appsDir') ? "$appsDir" : "/tmp/appsDir"
+ project.ext["appClassName"] = hasProperty('appClass')? "$appClass": "UNDEFINED"
+
project.ext["s4Version"] = '0.5.0-SNAPSHOT'
description = 'Apache S4 App'
-//defaultTasks 'installS4R'
archivesBaseName = "$project.name"
distRootFolder = "$archivesBaseName-${-> version}"
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/test-apps/simple-deployable-app-1/build.gradle
----------------------------------------------------------------------
diff --cc test-apps/simple-deployable-app-1/build.gradle
index 7524cd1,f1763e8..3a45073
--- a/test-apps/simple-deployable-app-1/build.gradle
+++ b/test-apps/simple-deployable-app-1/build.gradle
@@@ -34,8 -34,15 +34,13 @@@
*
*/
+ /* Set the destination where we want to install the apps. */
+ //s4AppInstallDir = "/tmp/s4Apps" // TODO: decide how to standarize dirs, use env var?
+
-project.ext["s4AppInstallDir"] = hasProperty('appsDir') ? "$appsDir" : "/tmp/appsDir"
+ project.ext["appClassName"] = hasProperty('appClass')? "$appClass": "UNDEFINED"
+
project.ext["s4Version"] = '0.5.0-SNAPSHOT'
description = 'Apache S4 App'
-//defaultTasks 'installS4R'
archivesBaseName = "$project.name"
distRootFolder = "$archivesBaseName-${-> version}"
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/test-apps/twitter-adapter/build.gradle
----------------------------------------------------------------------
diff --cc test-apps/twitter-adapter/build.gradle
index 1eeeb69,b8a11d0..80341bb
--- a/test-apps/twitter-adapter/build.gradle
+++ b/test-apps/twitter-adapter/build.gradle
@@@ -34,8 -34,15 +34,13 @@@
*
*/
+ /* Set the destination where we want to install the apps. */
+ //s4AppInstallDir = "/tmp/s4Apps" // TODO: decide how to standarize dirs, use env var?
+
-project.ext["s4AppInstallDir"] = hasProperty('appsDir') ? "$appsDir" : "/tmp/appsDir"
+ project.ext["appClassName"] = hasProperty('appClass')? "$appClass": "UNDEFINED"
+
project.ext["s4Version"] = '0.5.0-incubating'
description = 'Apache S4 App'
-//defaultTasks 'installS4R'
project.ext["archivesBaseName"] = "$project.name"
project.ext["distRootFolder"] = "$archivesBaseName-${-> version}"
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/04243133/test-apps/twitter-counter/build.gradle
----------------------------------------------------------------------
diff --cc test-apps/twitter-counter/build.gradle
index 89db544,6149a13..a09962d
--- a/test-apps/twitter-counter/build.gradle
+++ b/test-apps/twitter-counter/build.gradle
@@@ -34,8 -34,15 +34,13 @@@
*
*/
+ /* Set the destination where we want to install the apps. */
+ //s4AppInstallDir = "/tmp/s4Apps" // TODO: decide how to standarize dirs, use env var?
+
-project.ext["s4AppInstallDir"] = hasProperty('appsDir') ? "$appsDir" : "/tmp/appsDir"
+ project.ext["appClassName"] = hasProperty('appClass')? "$appClass": "UNDEFINED"
+
project.ext["s4Version"] = '0.5.0-incubating'
description = 'Apache S4 App'
-//defaultTasks 'installS4R'
project.ext["archivesBaseName"] = "$project.name"
project.ext["distRootFolder"] = "$archivesBaseName-${-> version}"