Improve distribution packaging
- filters
- self-contained bin distribution (no ref to libs installed in local maven repo)
diff --git a/build.gradle b/build.gradle
index 674e4a7..b8ddbe2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -57,6 +57,7 @@
commons_config: 'commons-configuration:commons-configuration:1.6',
commons_codec: 'commons-codec:commons-codec:1.4',
commons_coll: 'net.sourceforge.collections:collections-generic:4.01', // Use this lib until the commons collection with Generics is released.
+ commons_io: 'commons-io:commons-io:2.4',
slf4j: 'org.slf4j:slf4j-api:1.6.1',
logback_core: 'ch.qos.logback:logback-core:0.9.29',
logback_classic: 'ch.qos.logback:logback-classic:0.9.29',
@@ -105,6 +106,7 @@
/* Commons. */
compile( libraries.commons_config )
compile( libraries.commons_coll )
+ compile( libraries.commons_io )
/* Misc. */
compile( libraries.jcip )
@@ -219,6 +221,7 @@
}
}
+
task srcDist(dependsOn: ["javadoc"], type: Zip) {
doFirst {
platformProjects.collect { project ->
@@ -230,13 +233,18 @@
baseName=project.ext.archivesBaseName
destinationDir = project.buildDir
from (project.rootDir)
- exclude ('build')
- exclude ('.project')
- exclude ('.classpath')
- exclude ('tmp')
+ exclude ('**/.project')
+ exclude ('**/.classpath')
exclude ('.rat-excludes')
+ exclude ('**/.gradle/**')
+ exclude ('**/.settings/**')
+ exclude ('**/build/**')
+ exclude ('**/tmp/**')
+ exclude ('**/bin/**')
+ into (baseName+'-'+version+'-'+classifier)
}
+
task clean << {
delete buildDir
}
diff --git a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/CreateApp.java b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/CreateApp.java
index 97c39a0..3d09186 100644
--- a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/CreateApp.java
+++ b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/CreateApp.java
@@ -22,6 +22,7 @@
import java.io.IOException;
import java.util.List;
+import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,10 +64,15 @@
new File(appArgs.getAppDir() + "/gradlew").setExecutable(true);
// copy build file contents
- String buildFileContents = Resources.toString(Resources.getResource("templates/build.gradle"),Charsets.UTF_8);
- buildFileContents = buildFileContents.replace("<s4_install_dir>", "'"+new File(appArgs.s4ScriptPath).getParent()+"'");
- Files.write(buildFileContents, new File(
- appArgs.getAppDir() + "/build.gradle"), Charsets.UTF_8);
+ String buildFileContents = Resources.toString(Resources.getResource("templates/build.gradle"),
+ Charsets.UTF_8);
+ buildFileContents = buildFileContents.replace("<s4_install_dir>",
+ "'" + new File(appArgs.s4ScriptPath).getParent() + "'");
+ Files.write(buildFileContents, new File(appArgs.getAppDir() + "/build.gradle"), Charsets.UTF_8);
+
+ // copy lib
+ FileUtils.copyDirectory(new File(new File(appArgs.s4ScriptPath).getParentFile(), "lib"),
+ new File(appArgs.getAppDir() + "/lib"));
// update app settings
String settingsFileContents = Resources.toString(Resources.getResource("templates/settings.gradle"),
diff --git a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/ZKServer.java b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/ZKServer.java
index de56788..ed71fb0 100644
--- a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/ZKServer.java
+++ b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/ZKServer.java
@@ -28,6 +28,7 @@
import org.I0Itec.zkclient.IDefaultNameSpace;
import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.ZkServer;
+import org.apache.commons.io.FileUtils;
import org.apache.s4.comm.tools.TaskSetup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,8 +53,8 @@
if (zkArgs.clean) {
logger.info("cleaning existing data in [{}] and [{}]", zkArgs.dataDir, zkArgs.logDir);
- deleteDirectory(new File(zkArgs.dataDir));
- deleteDirectory(new File(zkArgs.logDir));
+ FileUtils.deleteDirectory(new File(zkArgs.dataDir));
+ FileUtils.deleteDirectory(new File(zkArgs.logDir));
}
IDefaultNameSpace defaultNameSpace = new IDefaultNameSpace() {
@@ -96,24 +97,6 @@
}
}
- static private void deleteDirectory(File path) {
- if (path.exists()) {
- File[] files = path.listFiles();
- for (int i = 0; i < files.length; i++) {
- if (files[i].isDirectory()) {
- deleteDirectory(files[i]);
- } else {
- if (!(files[i].delete())) {
- logger.error("Could not delete file {}", files[i].getAbsolutePath());
- }
- }
- }
- if (!path.delete()) {
- logger.error("Could not delete directory {}", path.getAbsolutePath());
- }
- }
- }
-
@Parameters(commandNames = "s4 zkServer", separators = "=", commandDescription = "Start Zookeeper server")
static class ZKServerArgs extends S4ArgsBase {