You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2011/08/03 16:55:51 UTC
svn commit: r1153520 - in /incubator/ace/trunk/ace-ant-tasks: build.xml
src/main/java/org/apache/ace/ant/deploymentpackage/DeploymentPackageTask.java
Author: marrs
Date: Wed Aug 3 14:55:50 2011
New Revision: 1153520
URL: http://svn.apache.org/viewvc?rev=1153520&view=rev
Log:
ACE-163 Specifying an order for bundles did not work. Now introduced a nested element called orderedinclude that can be used to specify bundles in order. Ordered ones will come first. Unordered ones last (and duplicates already appearing in the ordered list will be filtered out).
Modified:
incubator/ace/trunk/ace-ant-tasks/build.xml
incubator/ace/trunk/ace-ant-tasks/src/main/java/org/apache/ace/ant/deploymentpackage/DeploymentPackageTask.java
Modified: incubator/ace/trunk/ace-ant-tasks/build.xml
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-ant-tasks/build.xml?rev=1153520&r1=1153519&r2=1153520&view=diff
==============================================================================
--- incubator/ace/trunk/ace-ant-tasks/build.xml (original)
+++ incubator/ace/trunk/ace-ant-tasks/build.xml Wed Aug 3 14:55:50 2011
@@ -26,8 +26,9 @@
<target name="build">
<dp name="org.apache.ace.dp.sample" version="1.0.0" dir=".." destination="sample-dp.jar">
<!-- uses two completely arbitrary bundles -->
- <include name="ace-log/target/org.apache.ace.log-0.8.1-incubator-SNAPSHOT.jar" />
- <include name="ace-log-listener/target/org.apache.ace.log.listener-0.8.1-incubator-SNAPSHOT.jar" />
+ <orderedinclude name="ace-log-listener/target/org.apache.ace.log.listener-0.8.1-incubator-SNAPSHOT.jar" />
+ <orderedinclude name="ace-log/target/org.apache.ace.log-0.8.1-incubator-SNAPSHOT.jar" />
+ <include name="ace-range-api/target/*.jar" />
</dp>
</target>
</project>
Modified: incubator/ace/trunk/ace-ant-tasks/src/main/java/org/apache/ace/ant/deploymentpackage/DeploymentPackageTask.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-ant-tasks/src/main/java/org/apache/ace/ant/deploymentpackage/DeploymentPackageTask.java?rev=1153520&r1=1153519&r2=1153520&view=diff
==============================================================================
--- incubator/ace/trunk/ace-ant-tasks/src/main/java/org/apache/ace/ant/deploymentpackage/DeploymentPackageTask.java (original)
+++ incubator/ace/trunk/ace-ant-tasks/src/main/java/org/apache/ace/ant/deploymentpackage/DeploymentPackageTask.java Wed Aug 3 14:55:50 2011
@@ -21,7 +21,10 @@ package org.apache.ace.ant.deploymentpac
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.FilenameFilter;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.jar.Attributes;
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
@@ -61,6 +64,47 @@ public class DeploymentPackageTask exten
public void setDestination(File destination) {
m_destination = destination;
}
+
+ List<OrderedInclude> orderedIncludes = new ArrayList<OrderedInclude>();
+
+ public OrderedInclude createOrderedInclude() {
+ OrderedInclude i = new OrderedInclude();
+ orderedIncludes.add(i);
+ return i;
+ }
+
+ public static class OrderedInclude {
+ private String m_name;
+ public OrderedInclude() {}
+ public void setName(String name) {
+ m_name = name;
+ }
+ public String getName() {
+ return m_name;
+ }
+ }
+
+ private String[] findFiles(File dir, String pattern) {
+ List<String> found = new ArrayList<String>();
+ findFiles(dir, "", pattern, found);
+ return found.toArray(new String[found.size()]);
+ }
+
+ private void findFiles(File base, String dir, String pattern, List<String> files) {
+ File[] entries = new File(base, dir).listFiles();
+ for (File f : entries) {
+ if (f.isDirectory()) {
+ String newDir = dir.equals("") ? f.getName() : dir + File.separator + f.getName();
+ findFiles(base, newDir, pattern, files);
+ }
+ else if (f.isFile()) {
+ File df = new File(dir, f.getName());
+ if (df.toString().matches(pattern)) {
+ files.add(df.toString());
+ }
+ }
+ }
+ }
public void execute() throws BuildException {
if (m_dir == null) {
@@ -78,11 +122,25 @@ public class DeploymentPackageTask exten
log("dir = " + m_dir, Project.MSG_DEBUG);
DirectoryScanner ds = getDirectoryScanner(m_dir);
- String[] files = ds.getIncludedFiles();
- for (int i = 0; i < files.length; i++) {
- log("Found file: " + files[i]);
+ String[] unorderedIncludes = ds.getIncludedFiles();
+ List<String> files = new ArrayList<String>();
+ for (int i = 0; i < orderedIncludes.size(); i++) {
+ String pattern = orderedIncludes.get(i).getName();
+ String[] filez2 = findFiles(m_dir, pattern);
+ for (String f : filez2) {
+ files.add(f);
+ }
}
-
+ for (int i = 0; i < unorderedIncludes.length; i++) {
+ if (!files.contains(unorderedIncludes[i])) {
+ files.add(unorderedIncludes[i]);
+ }
+ }
+
+ for (String file : files) {
+ log("Found file: " + file);
+ }
+
Manifest manifest = new Manifest();
Attributes main = manifest.getMainAttributes();
main.putValue("Manifest-Version", "1.0");