You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sj...@apache.org on 2008/10/22 12:28:30 UTC

svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Author: sjanuary
Date: Wed Oct 22 03:28:30 2008
New Revision: 707024

URL: http://svn.apache.org/viewvc?rev=707024&view=rev
Log:
Pack200 - add "pack200" executable

Added:
    harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/
    harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java   (with props)
Modified:
    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml

Modified: harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
==============================================================================
--- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF (original)
+++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF Wed Oct 22 03:28:30 2008
@@ -40,6 +40,7 @@
  org.apache.harmony.tools.jarsigner,
  org.apache.harmony.tools.keytool,
  org.apache.harmony.tools.unpack200,
+ org.apache.harmony.tools.pack200,
  com.sun.tools.javac,
  com.sun.tools.jdi,
  com.sun.tools.jdi.connect,

Modified: harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
==============================================================================
--- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF (original)
+++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF Wed Oct 22 03:28:30 2008
@@ -36,4 +36,5 @@
  org.apache.harmony.security.x509;version="1.0.0"
 Export-Package: org.apache.harmony.jretools.keytool,
  org.apache.harmony.jretools.unpack200,
+ org.apache.harmony.jretools.pack200,
  org.apache.harmony.jretools.policytool

Added: harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024&view=auto
==============================================================================
--- harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java (added)
+++ harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java Wed Oct 22 03:28:30 2008
@@ -0,0 +1,124 @@
+/*
+ *  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.harmony.jretools.pack200;
+
+import java.io.BufferedOutputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.util.jar.JarInputStream;
+
+import org.apache.harmony.pack200.Archive;
+
+public class Main {
+
+    public static void main(String args[]) throws Exception {
+
+        String inputFileName = null;
+        String outputFileName = null;
+        boolean verbose = false;
+        boolean quiet = false;
+        String logFileName = null;
+        boolean gzip = true;
+
+        for (int i = 0; i < args.length; i++) {
+            if (args[i].equals("--help") || args[i].equals("-help")
+                    || args[i].equals("-h") || args[i].equals("-?")) {
+                printHelp();
+                return;
+            } else if(args[i].equals("-g") || args[i].equals("--no-gzip")) {
+                gzip = false;
+            } else if(args[i].equals("--gzip")) {
+                gzip = true;
+            }  else if(args[i].equals("-v") || args[i].equals("--verbose")) {
+                verbose = true;
+                quiet = false;
+            } else if(args[i].equals("-q") || args[i].equals("--quiet")) {
+                quiet = true;
+                verbose = false;
+            } else if(args[i].startsWith("-l")) {
+                logFileName = args[i].substring(2);
+            } else if(args[i].equals("-V") || args[i].equals("--version")) {
+                printVersion();
+                return;
+            } else {
+                outputFileName = args[i];
+                if(args.length > i + 1) {
+                    inputFileName = args[i+1];
+                }
+                break;
+            }
+        }
+        if(inputFileName == null || outputFileName == null) {
+            printUsage();
+            return;
+        }
+        JarInputStream inputStream = new JarInputStream(new FileInputStream(inputFileName));
+        OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFileName));
+        Archive archive = new Archive(inputStream, outputStream, gzip);
+        archive.pack();
+    }
+
+    private static void printUsage() {
+        System.out.println("Usage:  pack200 [-opt... | --option=value]... x.pack[.gz] y.jar");
+        System.out.println("(For more information, run pack200 --help)");
+    }
+
+    private static void printHelp() {
+        // TODO: Support all the options
+        System.out.println("Usage:  pack200 [-opt... | --option=value]... x.pack[.gz] y.jar");
+        System.out.println();
+        System.out.println("Packing Options");
+        System.out.println("  -g, --no-gzip                   output a plain *.pack file with no zipping");
+        System.out.println("  --gzip                          (default) post-process the pack output with gzip");
+//        System.out.println("  -G, --strip-debug               remove debugging attributes while packing");
+//        System.out.println("  -O, --no-keep-file-order        do not transmit file ordering information");
+//        System.out.println("  --keep-file-order               (default) preserve input file ordering");
+//        System.out.println("  -S{N}, --segment-limit={N}      output segment limit (default N=1Mb)");
+//        System.out.println("  -E{N}, --effort={N}             packing effort (default N=5)");
+//        System.out.println("  -H{h}, --deflate-hint={h}       transmit deflate hint: true, false, or keep (default)");
+//        System.out.println("  -m{V}, --modification-time={V}  transmit modtimes: latest or keep (default)");
+//        System.out.println("  -P{F}, --pass-file={F}          transmit the given input element(s) uncompressed");
+//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown attribute action: error, strip, or pass (default)");
+//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}  (user-defined attribute)");
+//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}  (user-defined attribute)");
+//        System.out.println("  -M{N}={L}, --method-attribute={N}={L} (user-defined attribute)");
+//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}   (user-defined attribute)");
+//        System.out.println("  -f{F}, --config-file={F}        read file F for Pack200.Packer properties");
+//        System.out.println("  -v, --verbose                   increase program verbosity");
+//        System.out.println("  -q, --quiet                     set verbosity to lowest level");
+//        System.out.println("  -l{F}, --log-file={F}           output to the given log file, or '-' for System.out");
+        System.out.println("  -?, -h, --help                  print this message");
+        System.out.println("  -V, --version                   print program version");
+//        System.out.println("  -J{X}                           pass option X to underlying Java VM");
+//        System.out.println("");
+//        System.out.println("Notes:");
+//        System.out.println("  The -P, -C, -F, -M, and -D options accumulate.");
+//        System.out.println("  Example attribute definition:  -C SourceFile=RUH .");
+//        System.out.println("  Config. file properties are defined by the Pack200 API.");
+//        System.out.println("  For meaning of -S, -E, -H-, -m, -U values, see Pack200 API.");
+//        System.out.println("  Layout definitions (like RUH) are defined by JSR 200.");
+//        System.out.println("");
+//        System.out.println("Repacking mode updates the JAR file with a pack/unpack cycle:");
+//        System.out.println("    pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar");
+    }
+
+    private static void printVersion() {
+        System.out.println("Apache Harmony pack200 version 0.0");  // TODO - version number
+    }
+
+}

Propchange: harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/samsa/build.xml?rev=707024&r1=707023&r2=707024&view=diff
==============================================================================
--- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
+++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22 03:28:30 2008
@@ -84,7 +84,10 @@
         <copy file="${hy.samsa.exe}" tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" perm="ugo+x" />
 
-        <copy file="${hy.samsa.exe}" tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
+    	<copy file="${hy.samsa.exe}" tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
+    	<chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}" perm="ugo+x" />
+
+    	<copy file="${hy.samsa.exe}" tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}" perm="ugo+x" />
 
     </target>
@@ -114,7 +117,8 @@
         <copy file="${hy.samsa.progdb}" tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
         <copy file="${hy.samsa.progdb}" tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
     	<copy file="${hy.samsa.progdb}" tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
-        <copy file="${hy.samsa.progdb}" tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
+    	<copy file="${hy.samsa.progdb}" tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
+    	<copy file="${hy.samsa.progdb}" tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
         <copy file="${hy.samsa.progdb}" tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
 
     </target>
@@ -192,6 +196,14 @@
 	    <arg line="" />
         </exec>
 
+        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
+        <exec failonerror="true"
+	        executable="${test.jre.home}/bin/pack200${exe.suffix}"
+	        dir="${hy.tests.reports}">
+	    <arg line="" />
+        </exec>
+
+
     </target>
 
     <!-- Clean natives -->



Re: svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Posted by Sian January <si...@googlemail.com>.
Thanks Mark

2008/11/5 Mark Hindess <ma...@googlemail.com>:
>
> Committed as r711744.
> -Mark.
>
> In message <49...@googlemail.com>, Oliver Deakin writes:
>>
>> Looks good to me. +1 to that fix.
>>
>> Regards,
>> Oliver
>>
>> Mark Hindess wrote:
>> > The correct fix is:
>> >
>> > Index: build.xml
>> > ===================================================================
>> > --- build.xml   (revision 711662)
>> > +++ build.xml   (working copy)
>> > @@ -319,6 +319,7 @@
>> >          <chmod file="${target.dir}/hdk/jdk/jre/bin/keytool*" perm="ugo+x"
>> />
>> >          <chmod file="${target.dir}/hdk/jdk/jre/bin/policytool*" perm="ugo+
>> x" />
>> >          <chmod file="${target.dir}/hdk/jdk/jre/bin/unpack200*" perm="ugo+x
>> " />
>> > +        <chmod file="${target.dir}/hdk/jdk/jre/bin/pack200*" perm="ugo+x"
>> />
>> >      </target>
>> >
>> >      <target name="assemble-jdk">
>> >
>> > Please can someone second this commit?
>> >
>> > Regards,
>> >  Mark.
>> >
>> > In message <fc...@mail.gmail.com>, "
>> Sian
>> >  January" writes:
>> >
>> >> Hi Chunrong,
>> >>
>> >> I've downloaded the hdk snapshot (Windows32) from
>> >> http://people.apache.org/builds/harmony/snapshots/r710036/ and both
>> >> the pack200 executables work for me.  Which platform are you seeing
>> >> problems on?
>> >>
>> >> Thanks,
>> >>
>> >> Sian
>> >>
>> >>
>> >> 2008/11/5 chunrong lai <ch...@gmail.com>:
>> >>
>> >>>  I see after a HDK building there are four pack200.
>> >>>
>> >>> ./working_jdktools/deploy/jdk/bin/pack200
>> >>> ./working_jdktools/deploy/jdk/jre/bin/pack200
>> >>> ./target/hdk/jdk/bin/pack200
>> >>> ./target/hdk/jdk/jre/bin/pack200
>> >>>
>> >>> While the first three are executable but the fourth is not yet. I think t
>> ha
>> >>>
>> >> t
>> >>
>> >>> it is what we run by default.
>> >>> So we need to further enhanced the scripts to make it executable.
>> >>>
>> >>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
>> >>> +        <exec failonerror="true"
>> >>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
>> >>> +               dir="${hy.tests.reports}">
>> >>> +           <arg line="" />
>> >>> +        </exec>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> On Wed, Oct 22, 2008 at 6:28 PM, <sj...@apache.org> wrote:
>> >>>
>> >>>
>> >>>> Author: sjanuary
>> >>>> Date: Wed Oct 22 03:28:30 2008
>> >>>> New Revision: 707024
>> >>>>
>> >>>> URL: http://svn.apache.org/viewvc?rev=707024&view=rev
>> >>>> Log:
>> >>>> Pack200 - add "pack200" executable
>> >>>>
>> >>>> Added:
>> >>>>
>> >>>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apac
>> he
>> >>>>
>> >> /harmony/jretools/pack200/
>> >>
>> >>>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apac
>> he
>> >>>>
>> >> /harmony/jretools/pack200/Main.java
>> >>
>> >>>>   (with props)
>> >>>> Modified:
>> >>>>    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>> >>>>    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>> >>>>    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>> >>>>
>> >>>> Modified:
>> >>>> harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>> >>>> URL:
>> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdk
>> to
>> >>>>
>> >> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>> >>
>> >>>> ========================================================================
>> ==
>> >>>>
>> >> ====
>> >>
>> >>>> --- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.M
>> F
>> >>>> (original)
>> >>>> +++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.M
>> F
>> >>>> Wed Oct 22 03:28:30 2008
>> >>>> @@ -40,6 +40,7 @@
>> >>>>  org.apache.harmony.tools.jarsigner,
>> >>>>  org.apache.harmony.tools.keytool,
>> >>>>  org.apache.harmony.tools.unpack200,
>> >>>> + org.apache.harmony.tools.pack200,
>> >>>>  com.sun.tools.javac,
>> >>>>  com.sun.tools.jdi,
>> >>>>  com.sun.tools.jdi.connect,
>> >>>>
>> >>>> Modified:
>> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>> >>>> URL:
>> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jre
>> to
>> >>>>
>> >> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>> >>
>> >>>> ========================================================================
>> ==
>> >>>>
>> >> ====
>> >>
>> >>>> --- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.M
>> F
>> >>>> (original)
>> >>>> +++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.M
>> F
>> >>>> Wed Oct 22 03:28:30 2008
>> >>>> @@ -36,4 +36,5 @@
>> >>>>  org.apache.harmony.security.x509;version="1.0.0"
>> >>>>  Export-Package: org.apache.harmony.jretools.keytool,
>> >>>>  org.apache.harmony.jretools.unpack200,
>> >>>> + org.apache.harmony.jretools.pack200,
>> >>>>  org.apache.harmony.jretools.policytool
>> >>>>
>> >>>> Added:
>> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
>> e/
>> >>>>
>> >> harmony/jretools/pack200/Main.java
>> >>
>> >>>> URL:
>> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jre
>> to
>> >>>>
>> >> ols/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024
>> &vi
>> >> ew=auto
>> >>
>> >>>> ========================================================================
>> ==
>> >>>>
>> >> ====
>> >>
>> >>>> ---
>> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
>> e/
>> >>>>
>> >> harmony/jretools/pack200/Main.java
>> >>
>> >>>> (added)
>> >>>> +++
>> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
>> e/
>> >>>>
>> >> harmony/jretools/pack200/Main.java
>> >>
>> >>>> Wed Oct 22 03:28:30 2008
>> >>>> @@ -0,0 +1,124 @@
>> >>>> +/*
>> >>>> + *  Licensed to the Apache Software Foundation (ASF) under one or more
>> >>>> + *  contributor license agreements.  See the NOTICE file distributed wi
>> th
>> >>>> + *  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 wit
>> h
>> >>>> + *  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.harmony.jretools.pack200;
>> >>>> +
>> >>>> +import java.io.BufferedOutputStream;
>> >>>> +import java.io.FileInputStream;
>> >>>> +import java.io.FileOutputStream;
>> >>>> +import java.io.OutputStream;
>> >>>> +import java.util.jar.JarInputStream;
>> >>>> +
>> >>>> +import org.apache.harmony.pack200.Archive;
>> >>>> +
>> >>>> +public class Main {
>> >>>> +
>> >>>> +    public static void main(String args[]) throws Exception {
>> >>>> +
>> >>>> +        String inputFileName = null;
>> >>>> +        String outputFileName = null;
>> >>>> +        boolean verbose = false;
>> >>>> +        boolean quiet = false;
>> >>>> +        String logFileName = null;
>> >>>> +        boolean gzip = true;
>> >>>> +
>> >>>> +        for (int i = 0; i < args.length; i++) {
>> >>>> +            if (args[i].equals("--help") || args[i].equals("-help")
>> >>>> +                    || args[i].equals("-h") || args[i].equals("-?")) {
>> >>>> +                printHelp();
>> >>>> +                return;
>> >>>> +            } else if(args[i].equals("-g") || args[i].equals("--no-gzip
>> ")
>> >>>>
>> >> )
>> >>
>> >>>> {
>> >>>> +                gzip = false;
>> >>>> +            } else if(args[i].equals("--gzip")) {
>> >>>> +                gzip = true;
>> >>>> +            }  else if(args[i].equals("-v") ||
>> >>>> args[i].equals("--verbose")) {
>> >>>> +                verbose = true;
>> >>>> +                quiet = false;
>> >>>> +            } else if(args[i].equals("-q") || args[i].equals("--quiet")
>> )
>> >>>>
>> >> {
>> >>
>> >>>> +                quiet = true;
>> >>>> +                verbose = false;
>> >>>> +            } else if(args[i].startsWith("-l")) {
>> >>>> +                logFileName = args[i].substring(2);
>> >>>> +            } else if(args[i].equals("-V") || args[i].equals("--version
>> ")
>> >>>>
>> >> )
>> >>
>> >>>> {
>> >>>> +                printVersion();
>> >>>> +                return;
>> >>>> +            } else {
>> >>>> +                outputFileName = args[i];
>> >>>> +                if(args.length > i + 1) {
>> >>>> +                    inputFileName = args[i+1];
>> >>>> +                }
>> >>>> +                break;
>> >>>> +            }
>> >>>> +        }
>> >>>> +        if(inputFileName == null || outputFileName == null) {
>> >>>> +            printUsage();
>> >>>> +            return;
>> >>>> +        }
>> >>>> +        JarInputStream inputStream = new JarInputStream(new
>> >>>> FileInputStream(inputFileName));
>> >>>> +        OutputStream outputStream = new BufferedOutputStream(new
>> >>>> FileOutputStream(outputFileName));
>> >>>> +        Archive archive = new Archive(inputStream, outputStream, gzip);
>> >>>> +        archive.pack();
>> >>>> +    }
>> >>>> +
>> >>>> +    private static void printUsage() {
>> >>>> +        System.out.println("Usage:  pack200 [-opt... | --option=value].
>> ..
>> >>>> x.pack[.gz] y.jar");
>> >>>> +        System.out.println("(For more information, run pack200 --help)"
>> );
>> >>>> +    }
>> >>>> +
>> >>>> +    private static void printHelp() {
>> >>>> +        // TODO: Support all the options
>> >>>> +        System.out.println("Usage:  pack200 [-opt... | --option=value].
>> ..
>> >>>> x.pack[.gz] y.jar");
>> >>>> +        System.out.println();
>> >>>> +        System.out.println("Packing Options");
>> >>>> +        System.out.println("  -g, --no-gzip                   output a
>> >>>> plain *.pack file with no zipping");
>> >>>> +        System.out.println("  --gzip                          (default)
>> >>>> post-process the pack output with gzip");
>> >>>> +//        System.out.println("  -G, --strip-debug               remove
>> >>>> debugging attributes while packing");
>> >>>> +//        System.out.println("  -O, --no-keep-file-order        do not
>> >>>> transmit file ordering information");
>> >>>> +//        System.out.println("  --keep-file-order               (defaul
>> t)
>> >>>> preserve input file ordering");
>> >>>> +//        System.out.println("  -S{N}, --segment-limit={N}      output
>> >>>> segment limit (default N=1Mb)");
>> >>>> +//        System.out.println("  -E{N}, --effort={N}             packing
>> >>>> effort (default N=5)");
>> >>>> +//        System.out.println("  -H{h}, --deflate-hint={h}       transmi
>> t
>> >>>> deflate hint: true, false, or keep (default)");
>> >>>> +//        System.out.println("  -m{V}, --modification-time={V}  transmi
>> t
>> >>>> modtimes: latest or keep (default)");
>> >>>> +//        System.out.println("  -P{F}, --pass-file={F}          transmi
>> t
>> >>>> the given input element(s) uncompressed");
>> >>>> +//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown
>> >>>> attribute action: error, strip, or pass (default)");
>> >>>> +//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}
>> >>>>  (user-defined attribute)");
>> >>>> +//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}
>> >>>>  (user-defined attribute)");
>> >>>> +//        System.out.println("  -M{N}={L}, --method-attribute={N}={L}
>> >>>> (user-defined attribute)");
>> >>>> +//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}
>> >>>> (user-defined attribute)");
>> >>>> +//        System.out.println("  -f{F}, --config-file={F}        read fi
>> le
>> >>>> F for Pack200.Packer properties");
>> >>>> +//        System.out.println("  -v, --verbose                   increas
>> e
>> >>>> program verbosity");
>> >>>> +//        System.out.println("  -q, --quiet                     set
>> >>>> verbosity to lowest level");
>> >>>> +//        System.out.println("  -l{F}, --log-file={F}           output
>> to
>> >>>> the given log file, or '-' for System.out");
>> >>>> +        System.out.println("  -?, -h, --help                  print thi
>> s
>> >>>> message");
>> >>>> +        System.out.println("  -V, --version                   print
>> >>>> program version");
>> >>>> +//        System.out.println("  -J{X}                           pass
>> >>>> option X to underlying Java VM");
>> >>>> +//        System.out.println("");
>> >>>> +//        System.out.println("Notes:");
>> >>>> +//        System.out.println("  The -P, -C, -F, -M, and -D options
>> >>>> accumulate.");
>> >>>> +//        System.out.println("  Example attribute definition:  -C
>> >>>> SourceFile=RUH .");
>> >>>> +//        System.out.println("  Config. file properties are defined by
>> th
>> >>>>
>> >> e
>> >>
>> >>>> Pack200 API.");
>> >>>> +//        System.out.println("  For meaning of -S, -E, -H-, -m, -U valu
>> es
>> >>>>
>> >> ,
>> >>
>> >>>> see Pack200 API.");
>> >>>> +//        System.out.println("  Layout definitions (like RUH) are defin
>> ed
>> >>>> by JSR 200.");
>> >>>> +//        System.out.println("");
>> >>>> +//        System.out.println("Repacking mode updates the JAR file with
>> a
>> >>>> pack/unpack cycle:");
>> >>>> +//        System.out.println("    pack200 [-r|--repack] [-opt |
>> >>>> --option=value]... [repackedy.jar] y.jar");
>> >>>> +    }
>> >>>> +
>> >>>> +    private static void printVersion() {
>> >>>> +        System.out.println("Apache Harmony pack200 version 0.0");  // T
>> OD
>> >>>>
>> >> O
>> >>
>> >>>> - version number
>> >>>> +    }
>> >>>> +
>> >>>> +}
>> >>>>
>> >>>> Propchange:
>> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
>> e/
>> >>>>
>> >> harmony/jretools/pack200/Main.java
>> >>
>> >>>> ------------------------------------------------------------------------
>> --
>> >>>>
>> >> ----
>> >>
>> >>>>    svn:eol-style = native
>> >>>>
>> >>>> Propchange:
>> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
>> e/
>> >>>>
>> >> harmony/jretools/pack200/Main.java
>> >>
>> >>>> ------------------------------------------------------------------------
>> --
>> >>>>
>> >> ----
>> >>
>> >>>>    svn:mime-type = text/plain
>> >>>>
>> >>>> Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>> >>>> URL:
>> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/sam
>> sa
>> >>>>
>> >> /build.xml?rev=707024&r1=707023&r2=707024&view=diff
>> >>
>> >>>> ========================================================================
>> ==
>> >>>>
>> >> ====
>> >>
>> >>>> --- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
>> >>>> +++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22
>> >>>> 03:28:30 2008
>> >>>> @@ -84,7 +84,10 @@
>> >>>>         <copy file="${hy.samsa.exe}"
>> >>>> tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
>> >>>>         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}"
>> >>>> perm="ugo+x" />
>> >>>>
>> >>>> -        <copy file="${hy.samsa.exe}"
>> >>>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>> >>>> +       <copy file="${hy.samsa.exe}"
>> >>>> tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
>> >>>> +       <chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}"
>> >>>> perm="ugo+x" />
>> >>>> +
>> >>>> +       <copy file="${hy.samsa.exe}"
>> >>>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>> >>>>         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}"
>> >>>> perm="ugo+x" />
>> >>>>
>> >>>>     </target>
>> >>>> @@ -114,7 +117,8 @@
>> >>>>         <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
>> >>>>         <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
>> >>>>        <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
>> >>>> -        <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>> >>>> +       <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
>> >>>> +       <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>> >>>>         <copy file="${hy.samsa.progdb}"
>> >>>> tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
>> >>>>
>> >>>>     </target>
>> >>>> @@ -192,6 +196,14 @@
>> >>>>            <arg line="" />
>> >>>>         </exec>
>> >>>>
>> >>>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/
>> >
>> >>>> +        <exec failonerror="true"
>> >>>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
>> >>>> +               dir="${hy.tests.reports}">
>> >>>> +           <arg line="" />
>> >>>> +        </exec>
>> >>>> +
>> >>>> +
>> >>>>     </target>
>> >>>>
>> >>>>     <!-- Clean natives -->
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>
>> >> --
>> >> Unless stated otherwise above:
>> >> IBM United Kingdom Limited - Registered in England and Wales with number 7
>> 415
>> >> 98.
>> >> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>> >>
>> >>
>> >
>> >
>> >
>> >
>>
>> --
>> Oliver Deakin
>> Unless stated otherwise above:
>> IBM United Kingdom Limited - Registered in England and Wales with number 7415
>> 98.
>> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>>
>
>
>



-- 
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Re: svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Posted by Mark Hindess <ma...@googlemail.com>.
Committed as r711744.
-Mark.

In message <49...@googlemail.com>, Oliver Deakin writes:
>
> Looks good to me. +1 to that fix.
> 
> Regards,
> Oliver
> 
> Mark Hindess wrote:
> > The correct fix is:
> >
> > Index: build.xml
> > ===================================================================
> > --- build.xml   (revision 711662)
> > +++ build.xml   (working copy)
> > @@ -319,6 +319,7 @@
> >          <chmod file="${target.dir}/hdk/jdk/jre/bin/keytool*" perm="ugo+x" 
> />
> >          <chmod file="${target.dir}/hdk/jdk/jre/bin/policytool*" perm="ugo+
> x" />
> >          <chmod file="${target.dir}/hdk/jdk/jre/bin/unpack200*" perm="ugo+x
> " />
> > +        <chmod file="${target.dir}/hdk/jdk/jre/bin/pack200*" perm="ugo+x" 
> />
> >      </target>
> >  
> >      <target name="assemble-jdk">
> >
> > Please can someone second this commit?
> >
> > Regards,
> >  Mark.
> >
> > In message <fc...@mail.gmail.com>, "
> Sian
> >  January" writes:
> >   
> >> Hi Chunrong,
> >>
> >> I've downloaded the hdk snapshot (Windows32) from
> >> http://people.apache.org/builds/harmony/snapshots/r710036/ and both
> >> the pack200 executables work for me.  Which platform are you seeing
> >> problems on?
> >>
> >> Thanks,
> >>
> >> Sian
> >>
> >>
> >> 2008/11/5 chunrong lai <ch...@gmail.com>:
> >>     
> >>>  I see after a HDK building there are four pack200.
> >>>
> >>> ./working_jdktools/deploy/jdk/bin/pack200
> >>> ./working_jdktools/deploy/jdk/jre/bin/pack200
> >>> ./target/hdk/jdk/bin/pack200
> >>> ./target/hdk/jdk/jre/bin/pack200
> >>>
> >>> While the first three are executable but the fourth is not yet. I think t
> ha
> >>>       
> >> t
> >>     
> >>> it is what we run by default.
> >>> So we need to further enhanced the scripts to make it executable.
> >>>
> >>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
> >>> +        <exec failonerror="true"
> >>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
> >>> +               dir="${hy.tests.reports}">
> >>> +           <arg line="" />
> >>> +        </exec>
> >>>
> >>>
> >>>
> >>>
> >>> On Wed, Oct 22, 2008 at 6:28 PM, <sj...@apache.org> wrote:
> >>>
> >>>       
> >>>> Author: sjanuary
> >>>> Date: Wed Oct 22 03:28:30 2008
> >>>> New Revision: 707024
> >>>>
> >>>> URL: http://svn.apache.org/viewvc?rev=707024&view=rev
> >>>> Log:
> >>>> Pack200 - add "pack200" executable
> >>>>
> >>>> Added:
> >>>>
> >>>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apac
> he
> >>>>         
> >> /harmony/jretools/pack200/
> >>     
> >>>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apac
> he
> >>>>         
> >> /harmony/jretools/pack200/Main.java
> >>     
> >>>>   (with props)
> >>>> Modified:
> >>>>    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> >>>>    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> >>>>    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
> >>>>
> >>>> Modified:
> >>>> harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdk
> to
> >>>>         
> >> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
> >>     
> >>>> ========================================================================
> ==
> >>>>         
> >> ====
> >>     
> >>>> --- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.M
> F
> >>>> (original)
> >>>> +++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.M
> F
> >>>> Wed Oct 22 03:28:30 2008
> >>>> @@ -40,6 +40,7 @@
> >>>>  org.apache.harmony.tools.jarsigner,
> >>>>  org.apache.harmony.tools.keytool,
> >>>>  org.apache.harmony.tools.unpack200,
> >>>> + org.apache.harmony.tools.pack200,
> >>>>  com.sun.tools.javac,
> >>>>  com.sun.tools.jdi,
> >>>>  com.sun.tools.jdi.connect,
> >>>>
> >>>> Modified:
> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jre
> to
> >>>>         
> >> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
> >>     
> >>>> ========================================================================
> ==
> >>>>         
> >> ====
> >>     
> >>>> --- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.M
> F
> >>>> (original)
> >>>> +++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.M
> F
> >>>> Wed Oct 22 03:28:30 2008
> >>>> @@ -36,4 +36,5 @@
> >>>>  org.apache.harmony.security.x509;version="1.0.0"
> >>>>  Export-Package: org.apache.harmony.jretools.keytool,
> >>>>  org.apache.harmony.jretools.unpack200,
> >>>> + org.apache.harmony.jretools.pack200,
> >>>>  org.apache.harmony.jretools.policytool
> >>>>
> >>>> Added:
> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
> e/
> >>>>         
> >> harmony/jretools/pack200/Main.java
> >>     
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jre
> to
> >>>>         
> >> ols/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024
> &vi
> >> ew=auto
> >>     
> >>>> ========================================================================
> ==
> >>>>         
> >> ====
> >>     
> >>>> ---
> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
> e/
> >>>>         
> >> harmony/jretools/pack200/Main.java
> >>     
> >>>> (added)
> >>>> +++
> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
> e/
> >>>>         
> >> harmony/jretools/pack200/Main.java
> >>     
> >>>> Wed Oct 22 03:28:30 2008
> >>>> @@ -0,0 +1,124 @@
> >>>> +/*
> >>>> + *  Licensed to the Apache Software Foundation (ASF) under one or more
> >>>> + *  contributor license agreements.  See the NOTICE file distributed wi
> th
> >>>> + *  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 wit
> h
> >>>> + *  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.harmony.jretools.pack200;
> >>>> +
> >>>> +import java.io.BufferedOutputStream;
> >>>> +import java.io.FileInputStream;
> >>>> +import java.io.FileOutputStream;
> >>>> +import java.io.OutputStream;
> >>>> +import java.util.jar.JarInputStream;
> >>>> +
> >>>> +import org.apache.harmony.pack200.Archive;
> >>>> +
> >>>> +public class Main {
> >>>> +
> >>>> +    public static void main(String args[]) throws Exception {
> >>>> +
> >>>> +        String inputFileName = null;
> >>>> +        String outputFileName = null;
> >>>> +        boolean verbose = false;
> >>>> +        boolean quiet = false;
> >>>> +        String logFileName = null;
> >>>> +        boolean gzip = true;
> >>>> +
> >>>> +        for (int i = 0; i < args.length; i++) {
> >>>> +            if (args[i].equals("--help") || args[i].equals("-help")
> >>>> +                    || args[i].equals("-h") || args[i].equals("-?")) {
> >>>> +                printHelp();
> >>>> +                return;
> >>>> +            } else if(args[i].equals("-g") || args[i].equals("--no-gzip
> ")
> >>>>         
> >> )
> >>     
> >>>> {
> >>>> +                gzip = false;
> >>>> +            } else if(args[i].equals("--gzip")) {
> >>>> +                gzip = true;
> >>>> +            }  else if(args[i].equals("-v") ||
> >>>> args[i].equals("--verbose")) {
> >>>> +                verbose = true;
> >>>> +                quiet = false;
> >>>> +            } else if(args[i].equals("-q") || args[i].equals("--quiet")
> ) 
> >>>>         
> >> {
> >>     
> >>>> +                quiet = true;
> >>>> +                verbose = false;
> >>>> +            } else if(args[i].startsWith("-l")) {
> >>>> +                logFileName = args[i].substring(2);
> >>>> +            } else if(args[i].equals("-V") || args[i].equals("--version
> ")
> >>>>         
> >> )
> >>     
> >>>> {
> >>>> +                printVersion();
> >>>> +                return;
> >>>> +            } else {
> >>>> +                outputFileName = args[i];
> >>>> +                if(args.length > i + 1) {
> >>>> +                    inputFileName = args[i+1];
> >>>> +                }
> >>>> +                break;
> >>>> +            }
> >>>> +        }
> >>>> +        if(inputFileName == null || outputFileName == null) {
> >>>> +            printUsage();
> >>>> +            return;
> >>>> +        }
> >>>> +        JarInputStream inputStream = new JarInputStream(new
> >>>> FileInputStream(inputFileName));
> >>>> +        OutputStream outputStream = new BufferedOutputStream(new
> >>>> FileOutputStream(outputFileName));
> >>>> +        Archive archive = new Archive(inputStream, outputStream, gzip);
> >>>> +        archive.pack();
> >>>> +    }
> >>>> +
> >>>> +    private static void printUsage() {
> >>>> +        System.out.println("Usage:  pack200 [-opt... | --option=value].
> ..
> >>>> x.pack[.gz] y.jar");
> >>>> +        System.out.println("(For more information, run pack200 --help)"
> );
> >>>> +    }
> >>>> +
> >>>> +    private static void printHelp() {
> >>>> +        // TODO: Support all the options
> >>>> +        System.out.println("Usage:  pack200 [-opt... | --option=value].
> ..
> >>>> x.pack[.gz] y.jar");
> >>>> +        System.out.println();
> >>>> +        System.out.println("Packing Options");
> >>>> +        System.out.println("  -g, --no-gzip                   output a
> >>>> plain *.pack file with no zipping");
> >>>> +        System.out.println("  --gzip                          (default)
> >>>> post-process the pack output with gzip");
> >>>> +//        System.out.println("  -G, --strip-debug               remove
> >>>> debugging attributes while packing");
> >>>> +//        System.out.println("  -O, --no-keep-file-order        do not
> >>>> transmit file ordering information");
> >>>> +//        System.out.println("  --keep-file-order               (defaul
> t)
> >>>> preserve input file ordering");
> >>>> +//        System.out.println("  -S{N}, --segment-limit={N}      output
> >>>> segment limit (default N=1Mb)");
> >>>> +//        System.out.println("  -E{N}, --effort={N}             packing
> >>>> effort (default N=5)");
> >>>> +//        System.out.println("  -H{h}, --deflate-hint={h}       transmi
> t
> >>>> deflate hint: true, false, or keep (default)");
> >>>> +//        System.out.println("  -m{V}, --modification-time={V}  transmi
> t
> >>>> modtimes: latest or keep (default)");
> >>>> +//        System.out.println("  -P{F}, --pass-file={F}          transmi
> t
> >>>> the given input element(s) uncompressed");
> >>>> +//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown
> >>>> attribute action: error, strip, or pass (default)");
> >>>> +//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}
> >>>>  (user-defined attribute)");
> >>>> +//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}
> >>>>  (user-defined attribute)");
> >>>> +//        System.out.println("  -M{N}={L}, --method-attribute={N}={L}
> >>>> (user-defined attribute)");
> >>>> +//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}
> >>>> (user-defined attribute)");
> >>>> +//        System.out.println("  -f{F}, --config-file={F}        read fi
> le
> >>>> F for Pack200.Packer properties");
> >>>> +//        System.out.println("  -v, --verbose                   increas
> e
> >>>> program verbosity");
> >>>> +//        System.out.println("  -q, --quiet                     set
> >>>> verbosity to lowest level");
> >>>> +//        System.out.println("  -l{F}, --log-file={F}           output 
> to
> >>>> the given log file, or '-' for System.out");
> >>>> +        System.out.println("  -?, -h, --help                  print thi
> s
> >>>> message");
> >>>> +        System.out.println("  -V, --version                   print
> >>>> program version");
> >>>> +//        System.out.println("  -J{X}                           pass
> >>>> option X to underlying Java VM");
> >>>> +//        System.out.println("");
> >>>> +//        System.out.println("Notes:");
> >>>> +//        System.out.println("  The -P, -C, -F, -M, and -D options
> >>>> accumulate.");
> >>>> +//        System.out.println("  Example attribute definition:  -C
> >>>> SourceFile=RUH .");
> >>>> +//        System.out.println("  Config. file properties are defined by 
> th
> >>>>         
> >> e
> >>     
> >>>> Pack200 API.");
> >>>> +//        System.out.println("  For meaning of -S, -E, -H-, -m, -U valu
> es
> >>>>         
> >> ,
> >>     
> >>>> see Pack200 API.");
> >>>> +//        System.out.println("  Layout definitions (like RUH) are defin
> ed
> >>>> by JSR 200.");
> >>>> +//        System.out.println("");
> >>>> +//        System.out.println("Repacking mode updates the JAR file with 
> a
> >>>> pack/unpack cycle:");
> >>>> +//        System.out.println("    pack200 [-r|--repack] [-opt |
> >>>> --option=value]... [repackedy.jar] y.jar");
> >>>> +    }
> >>>> +
> >>>> +    private static void printVersion() {
> >>>> +        System.out.println("Apache Harmony pack200 version 0.0");  // T
> OD
> >>>>         
> >> O
> >>     
> >>>> - version number
> >>>> +    }
> >>>> +
> >>>> +}
> >>>>
> >>>> Propchange:
> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
> e/
> >>>>         
> >> harmony/jretools/pack200/Main.java
> >>     
> >>>> ------------------------------------------------------------------------
> --
> >>>>         
> >> ----
> >>     
> >>>>    svn:eol-style = native
> >>>>
> >>>> Propchange:
> >>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apach
> e/
> >>>>         
> >> harmony/jretools/pack200/Main.java
> >>     
> >>>> ------------------------------------------------------------------------
> --
> >>>>         
> >> ----
> >>     
> >>>>    svn:mime-type = text/plain
> >>>>
> >>>> Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/sam
> sa
> >>>>         
> >> /build.xml?rev=707024&r1=707023&r2=707024&view=diff
> >>     
> >>>> ========================================================================
> ==
> >>>>         
> >> ====
> >>     
> >>>> --- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
> >>>> +++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22
> >>>> 03:28:30 2008
> >>>> @@ -84,7 +84,10 @@
> >>>>         <copy file="${hy.samsa.exe}"
> >>>> tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
> >>>>         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}"
> >>>> perm="ugo+x" />
> >>>>
> >>>> -        <copy file="${hy.samsa.exe}"
> >>>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
> >>>> +       <copy file="${hy.samsa.exe}"
> >>>> tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
> >>>> +       <chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}"
> >>>> perm="ugo+x" />
> >>>> +
> >>>> +       <copy file="${hy.samsa.exe}"
> >>>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
> >>>>         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}"
> >>>> perm="ugo+x" />
> >>>>
> >>>>     </target>
> >>>> @@ -114,7 +117,8 @@
> >>>>         <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
> >>>>         <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
> >>>>        <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
> >>>> -        <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
> >>>> +       <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
> >>>> +       <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
> >>>>         <copy file="${hy.samsa.progdb}"
> >>>> tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
> >>>>
> >>>>     </target>
> >>>> @@ -192,6 +196,14 @@
> >>>>            <arg line="" />
> >>>>         </exec>
> >>>>
> >>>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/
> >
> >>>> +        <exec failonerror="true"
> >>>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
> >>>> +               dir="${hy.tests.reports}">
> >>>> +           <arg line="" />
> >>>> +        </exec>
> >>>> +
> >>>> +
> >>>>     </target>
> >>>>
> >>>>     <!-- Clean natives -->
> >>>>
> >>>>
> >>>>
> >>>>         
> >>
> >> -- 
> >> Unless stated otherwise above:
> >> IBM United Kingdom Limited - Registered in England and Wales with number 7
> 415
> >> 98.
> >> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> >>
> >>     
> >
> >
> >
> >   
> 
> -- 
> Oliver Deakin
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number 7415
> 98. 
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> 



Re: svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Posted by Oliver Deakin <ol...@googlemail.com>.
Looks good to me. +1 to that fix.

Regards,
Oliver

Mark Hindess wrote:
> The correct fix is:
>
> Index: build.xml
> ===================================================================
> --- build.xml   (revision 711662)
> +++ build.xml   (working copy)
> @@ -319,6 +319,7 @@
>          <chmod file="${target.dir}/hdk/jdk/jre/bin/keytool*" perm="ugo+x" />
>          <chmod file="${target.dir}/hdk/jdk/jre/bin/policytool*" perm="ugo+x" />
>          <chmod file="${target.dir}/hdk/jdk/jre/bin/unpack200*" perm="ugo+x" />
> +        <chmod file="${target.dir}/hdk/jdk/jre/bin/pack200*" perm="ugo+x" />
>      </target>
>  
>      <target name="assemble-jdk">
>
> Please can someone second this commit?
>
> Regards,
>  Mark.
>
> In message <fc...@mail.gmail.com>, "Sian
>  January" writes:
>   
>> Hi Chunrong,
>>
>> I've downloaded the hdk snapshot (Windows32) from
>> http://people.apache.org/builds/harmony/snapshots/r710036/ and both
>> the pack200 executables work for me.  Which platform are you seeing
>> problems on?
>>
>> Thanks,
>>
>> Sian
>>
>>
>> 2008/11/5 chunrong lai <ch...@gmail.com>:
>>     
>>>  I see after a HDK building there are four pack200.
>>>
>>> ./working_jdktools/deploy/jdk/bin/pack200
>>> ./working_jdktools/deploy/jdk/jre/bin/pack200
>>> ./target/hdk/jdk/bin/pack200
>>> ./target/hdk/jdk/jre/bin/pack200
>>>
>>> While the first three are executable but the fourth is not yet. I think tha
>>>       
>> t
>>     
>>> it is what we run by default.
>>> So we need to further enhanced the scripts to make it executable.
>>>
>>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
>>> +        <exec failonerror="true"
>>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
>>> +               dir="${hy.tests.reports}">
>>> +           <arg line="" />
>>> +        </exec>
>>>
>>>
>>>
>>>
>>> On Wed, Oct 22, 2008 at 6:28 PM, <sj...@apache.org> wrote:
>>>
>>>       
>>>> Author: sjanuary
>>>> Date: Wed Oct 22 03:28:30 2008
>>>> New Revision: 707024
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=707024&view=rev
>>>> Log:
>>>> Pack200 - add "pack200" executable
>>>>
>>>> Added:
>>>>
>>>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache
>>>>         
>> /harmony/jretools/pack200/
>>     
>>>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache
>>>>         
>> /harmony/jretools/pack200/Main.java
>>     
>>>>   (with props)
>>>> Modified:
>>>>    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>>>>    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>>>>    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>>>>
>>>> Modified:
>>>> harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>>>> URL:
>>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdkto
>>>>         
>> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>>     
>>>> ==========================================================================
>>>>         
>> ====
>>     
>>>> --- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>>>> (original)
>>>> +++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>>>> Wed Oct 22 03:28:30 2008
>>>> @@ -40,6 +40,7 @@
>>>>  org.apache.harmony.tools.jarsigner,
>>>>  org.apache.harmony.tools.keytool,
>>>>  org.apache.harmony.tools.unpack200,
>>>> + org.apache.harmony.tools.pack200,
>>>>  com.sun.tools.javac,
>>>>  com.sun.tools.jdi,
>>>>  com.sun.tools.jdi.connect,
>>>>
>>>> Modified:
>>>> harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>>>> URL:
>>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jreto
>>>>         
>> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>>     
>>>> ==========================================================================
>>>>         
>> ====
>>     
>>>> --- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>>>> (original)
>>>> +++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>>>> Wed Oct 22 03:28:30 2008
>>>> @@ -36,4 +36,5 @@
>>>>  org.apache.harmony.security.x509;version="1.0.0"
>>>>  Export-Package: org.apache.harmony.jretools.keytool,
>>>>  org.apache.harmony.jretools.unpack200,
>>>> + org.apache.harmony.jretools.pack200,
>>>>  org.apache.harmony.jretools.policytool
>>>>
>>>> Added:
>>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
>>>>         
>> harmony/jretools/pack200/Main.java
>>     
>>>> URL:
>>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jreto
>>>>         
>> ols/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024&vi
>> ew=auto
>>     
>>>> ==========================================================================
>>>>         
>> ====
>>     
>>>> ---
>>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
>>>>         
>> harmony/jretools/pack200/Main.java
>>     
>>>> (added)
>>>> +++
>>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
>>>>         
>> harmony/jretools/pack200/Main.java
>>     
>>>> Wed Oct 22 03:28:30 2008
>>>> @@ -0,0 +1,124 @@
>>>> +/*
>>>> + *  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.harmony.jretools.pack200;
>>>> +
>>>> +import java.io.BufferedOutputStream;
>>>> +import java.io.FileInputStream;
>>>> +import java.io.FileOutputStream;
>>>> +import java.io.OutputStream;
>>>> +import java.util.jar.JarInputStream;
>>>> +
>>>> +import org.apache.harmony.pack200.Archive;
>>>> +
>>>> +public class Main {
>>>> +
>>>> +    public static void main(String args[]) throws Exception {
>>>> +
>>>> +        String inputFileName = null;
>>>> +        String outputFileName = null;
>>>> +        boolean verbose = false;
>>>> +        boolean quiet = false;
>>>> +        String logFileName = null;
>>>> +        boolean gzip = true;
>>>> +
>>>> +        for (int i = 0; i < args.length; i++) {
>>>> +            if (args[i].equals("--help") || args[i].equals("-help")
>>>> +                    || args[i].equals("-h") || args[i].equals("-?")) {
>>>> +                printHelp();
>>>> +                return;
>>>> +            } else if(args[i].equals("-g") || args[i].equals("--no-gzip")
>>>>         
>> )
>>     
>>>> {
>>>> +                gzip = false;
>>>> +            } else if(args[i].equals("--gzip")) {
>>>> +                gzip = true;
>>>> +            }  else if(args[i].equals("-v") ||
>>>> args[i].equals("--verbose")) {
>>>> +                verbose = true;
>>>> +                quiet = false;
>>>> +            } else if(args[i].equals("-q") || args[i].equals("--quiet")) 
>>>>         
>> {
>>     
>>>> +                quiet = true;
>>>> +                verbose = false;
>>>> +            } else if(args[i].startsWith("-l")) {
>>>> +                logFileName = args[i].substring(2);
>>>> +            } else if(args[i].equals("-V") || args[i].equals("--version")
>>>>         
>> )
>>     
>>>> {
>>>> +                printVersion();
>>>> +                return;
>>>> +            } else {
>>>> +                outputFileName = args[i];
>>>> +                if(args.length > i + 1) {
>>>> +                    inputFileName = args[i+1];
>>>> +                }
>>>> +                break;
>>>> +            }
>>>> +        }
>>>> +        if(inputFileName == null || outputFileName == null) {
>>>> +            printUsage();
>>>> +            return;
>>>> +        }
>>>> +        JarInputStream inputStream = new JarInputStream(new
>>>> FileInputStream(inputFileName));
>>>> +        OutputStream outputStream = new BufferedOutputStream(new
>>>> FileOutputStream(outputFileName));
>>>> +        Archive archive = new Archive(inputStream, outputStream, gzip);
>>>> +        archive.pack();
>>>> +    }
>>>> +
>>>> +    private static void printUsage() {
>>>> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
>>>> x.pack[.gz] y.jar");
>>>> +        System.out.println("(For more information, run pack200 --help)");
>>>> +    }
>>>> +
>>>> +    private static void printHelp() {
>>>> +        // TODO: Support all the options
>>>> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
>>>> x.pack[.gz] y.jar");
>>>> +        System.out.println();
>>>> +        System.out.println("Packing Options");
>>>> +        System.out.println("  -g, --no-gzip                   output a
>>>> plain *.pack file with no zipping");
>>>> +        System.out.println("  --gzip                          (default)
>>>> post-process the pack output with gzip");
>>>> +//        System.out.println("  -G, --strip-debug               remove
>>>> debugging attributes while packing");
>>>> +//        System.out.println("  -O, --no-keep-file-order        do not
>>>> transmit file ordering information");
>>>> +//        System.out.println("  --keep-file-order               (default)
>>>> preserve input file ordering");
>>>> +//        System.out.println("  -S{N}, --segment-limit={N}      output
>>>> segment limit (default N=1Mb)");
>>>> +//        System.out.println("  -E{N}, --effort={N}             packing
>>>> effort (default N=5)");
>>>> +//        System.out.println("  -H{h}, --deflate-hint={h}       transmit
>>>> deflate hint: true, false, or keep (default)");
>>>> +//        System.out.println("  -m{V}, --modification-time={V}  transmit
>>>> modtimes: latest or keep (default)");
>>>> +//        System.out.println("  -P{F}, --pass-file={F}          transmit
>>>> the given input element(s) uncompressed");
>>>> +//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown
>>>> attribute action: error, strip, or pass (default)");
>>>> +//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}
>>>>  (user-defined attribute)");
>>>> +//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}
>>>>  (user-defined attribute)");
>>>> +//        System.out.println("  -M{N}={L}, --method-attribute={N}={L}
>>>> (user-defined attribute)");
>>>> +//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}
>>>> (user-defined attribute)");
>>>> +//        System.out.println("  -f{F}, --config-file={F}        read file
>>>> F for Pack200.Packer properties");
>>>> +//        System.out.println("  -v, --verbose                   increase
>>>> program verbosity");
>>>> +//        System.out.println("  -q, --quiet                     set
>>>> verbosity to lowest level");
>>>> +//        System.out.println("  -l{F}, --log-file={F}           output to
>>>> the given log file, or '-' for System.out");
>>>> +        System.out.println("  -?, -h, --help                  print this
>>>> message");
>>>> +        System.out.println("  -V, --version                   print
>>>> program version");
>>>> +//        System.out.println("  -J{X}                           pass
>>>> option X to underlying Java VM");
>>>> +//        System.out.println("");
>>>> +//        System.out.println("Notes:");
>>>> +//        System.out.println("  The -P, -C, -F, -M, and -D options
>>>> accumulate.");
>>>> +//        System.out.println("  Example attribute definition:  -C
>>>> SourceFile=RUH .");
>>>> +//        System.out.println("  Config. file properties are defined by th
>>>>         
>> e
>>     
>>>> Pack200 API.");
>>>> +//        System.out.println("  For meaning of -S, -E, -H-, -m, -U values
>>>>         
>> ,
>>     
>>>> see Pack200 API.");
>>>> +//        System.out.println("  Layout definitions (like RUH) are defined
>>>> by JSR 200.");
>>>> +//        System.out.println("");
>>>> +//        System.out.println("Repacking mode updates the JAR file with a
>>>> pack/unpack cycle:");
>>>> +//        System.out.println("    pack200 [-r|--repack] [-opt |
>>>> --option=value]... [repackedy.jar] y.jar");
>>>> +    }
>>>> +
>>>> +    private static void printVersion() {
>>>> +        System.out.println("Apache Harmony pack200 version 0.0");  // TOD
>>>>         
>> O
>>     
>>>> - version number
>>>> +    }
>>>> +
>>>> +}
>>>>
>>>> Propchange:
>>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
>>>>         
>> harmony/jretools/pack200/Main.java
>>     
>>>> --------------------------------------------------------------------------
>>>>         
>> ----
>>     
>>>>    svn:eol-style = native
>>>>
>>>> Propchange:
>>>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
>>>>         
>> harmony/jretools/pack200/Main.java
>>     
>>>> --------------------------------------------------------------------------
>>>>         
>> ----
>>     
>>>>    svn:mime-type = text/plain
>>>>
>>>> Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>>>> URL:
>>>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/samsa
>>>>         
>> /build.xml?rev=707024&r1=707023&r2=707024&view=diff
>>     
>>>> ==========================================================================
>>>>         
>> ====
>>     
>>>> --- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
>>>> +++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22
>>>> 03:28:30 2008
>>>> @@ -84,7 +84,10 @@
>>>>         <copy file="${hy.samsa.exe}"
>>>> tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
>>>>         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}"
>>>> perm="ugo+x" />
>>>>
>>>> -        <copy file="${hy.samsa.exe}"
>>>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>>>> +       <copy file="${hy.samsa.exe}"
>>>> tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
>>>> +       <chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}"
>>>> perm="ugo+x" />
>>>> +
>>>> +       <copy file="${hy.samsa.exe}"
>>>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>>>>         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}"
>>>> perm="ugo+x" />
>>>>
>>>>     </target>
>>>> @@ -114,7 +117,8 @@
>>>>         <copy file="${hy.samsa.progdb}"
>>>> tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
>>>>         <copy file="${hy.samsa.progdb}"
>>>> tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
>>>>        <copy file="${hy.samsa.progdb}"
>>>> tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
>>>> -        <copy file="${hy.samsa.progdb}"
>>>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>>>> +       <copy file="${hy.samsa.progdb}"
>>>> tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
>>>> +       <copy file="${hy.samsa.progdb}"
>>>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>>>>         <copy file="${hy.samsa.progdb}"
>>>> tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
>>>>
>>>>     </target>
>>>> @@ -192,6 +196,14 @@
>>>>            <arg line="" />
>>>>         </exec>
>>>>
>>>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
>>>> +        <exec failonerror="true"
>>>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
>>>> +               dir="${hy.tests.reports}">
>>>> +           <arg line="" />
>>>> +        </exec>
>>>> +
>>>> +
>>>>     </target>
>>>>
>>>>     <!-- Clean natives -->
>>>>
>>>>
>>>>
>>>>         
>>
>> -- 
>> Unless stated otherwise above:
>> IBM United Kingdom Limited - Registered in England and Wales with number 7415
>> 98.
>> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>>
>>     
>
>
>
>   

-- 
Oliver Deakin
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU


Re: svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Posted by Mark Hindess <ma...@googlemail.com>.
The correct fix is:

Index: build.xml
===================================================================
--- build.xml   (revision 711662)
+++ build.xml   (working copy)
@@ -319,6 +319,7 @@
         <chmod file="${target.dir}/hdk/jdk/jre/bin/keytool*" perm="ugo+x" />
         <chmod file="${target.dir}/hdk/jdk/jre/bin/policytool*" perm="ugo+x" />
         <chmod file="${target.dir}/hdk/jdk/jre/bin/unpack200*" perm="ugo+x" />
+        <chmod file="${target.dir}/hdk/jdk/jre/bin/pack200*" perm="ugo+x" />
     </target>
 
     <target name="assemble-jdk">

Please can someone second this commit?

Regards,
 Mark.

In message <fc...@mail.gmail.com>, "Sian
 January" writes:
>
> Hi Chunrong,
> 
> I've downloaded the hdk snapshot (Windows32) from
> http://people.apache.org/builds/harmony/snapshots/r710036/ and both
> the pack200 executables work for me.  Which platform are you seeing
> problems on?
> 
> Thanks,
> 
> Sian
> 
> 
> 2008/11/5 chunrong lai <ch...@gmail.com>:
> >  I see after a HDK building there are four pack200.
> >
> > ./working_jdktools/deploy/jdk/bin/pack200
> > ./working_jdktools/deploy/jdk/jre/bin/pack200
> > ./target/hdk/jdk/bin/pack200
> > ./target/hdk/jdk/jre/bin/pack200
> >
> > While the first three are executable but the fourth is not yet. I think tha
> t
> > it is what we run by default.
> > So we need to further enhanced the scripts to make it executable.
> >
> > +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
> > +        <exec failonerror="true"
> > +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
> > +               dir="${hy.tests.reports}">
> > +           <arg line="" />
> > +        </exec>
> >
> >
> >
> >
> > On Wed, Oct 22, 2008 at 6:28 PM, <sj...@apache.org> wrote:
> >
> >> Author: sjanuary
> >> Date: Wed Oct 22 03:28:30 2008
> >> New Revision: 707024
> >>
> >> URL: http://svn.apache.org/viewvc?rev=707024&view=rev
> >> Log:
> >> Pack200 - add "pack200" executable
> >>
> >> Added:
> >>
> >>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache
> /harmony/jretools/pack200/
> >>
> >>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache
> /harmony/jretools/pack200/Main.java
> >>   (with props)
> >> Modified:
> >>    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> >>    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> >>    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
> >>
> >> Modified:
> >> harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> >> URL:
> >> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdkto
> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
> >>
> >> ==========================================================================
> ====
> >> --- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> >> (original)
> >> +++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> >> Wed Oct 22 03:28:30 2008
> >> @@ -40,6 +40,7 @@
> >>  org.apache.harmony.tools.jarsigner,
> >>  org.apache.harmony.tools.keytool,
> >>  org.apache.harmony.tools.unpack200,
> >> + org.apache.harmony.tools.pack200,
> >>  com.sun.tools.javac,
> >>  com.sun.tools.jdi,
> >>  com.sun.tools.jdi.connect,
> >>
> >> Modified:
> >> harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> >> URL:
> >> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jreto
> ols/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
> >>
> >> ==========================================================================
> ====
> >> --- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> >> (original)
> >> +++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> >> Wed Oct 22 03:28:30 2008
> >> @@ -36,4 +36,5 @@
> >>  org.apache.harmony.security.x509;version="1.0.0"
> >>  Export-Package: org.apache.harmony.jretools.keytool,
> >>  org.apache.harmony.jretools.unpack200,
> >> + org.apache.harmony.jretools.pack200,
> >>  org.apache.harmony.jretools.policytool
> >>
> >> Added:
> >> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
> harmony/jretools/pack200/Main.java
> >> URL:
> >> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jreto
> ols/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024&vi
> ew=auto
> >>
> >> ==========================================================================
> ====
> >> ---
> >> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
> harmony/jretools/pack200/Main.java
> >> (added)
> >> +++
> >> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
> harmony/jretools/pack200/Main.java
> >> Wed Oct 22 03:28:30 2008
> >> @@ -0,0 +1,124 @@
> >> +/*
> >> + *  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.harmony.jretools.pack200;
> >> +
> >> +import java.io.BufferedOutputStream;
> >> +import java.io.FileInputStream;
> >> +import java.io.FileOutputStream;
> >> +import java.io.OutputStream;
> >> +import java.util.jar.JarInputStream;
> >> +
> >> +import org.apache.harmony.pack200.Archive;
> >> +
> >> +public class Main {
> >> +
> >> +    public static void main(String args[]) throws Exception {
> >> +
> >> +        String inputFileName = null;
> >> +        String outputFileName = null;
> >> +        boolean verbose = false;
> >> +        boolean quiet = false;
> >> +        String logFileName = null;
> >> +        boolean gzip = true;
> >> +
> >> +        for (int i = 0; i < args.length; i++) {
> >> +            if (args[i].equals("--help") || args[i].equals("-help")
> >> +                    || args[i].equals("-h") || args[i].equals("-?")) {
> >> +                printHelp();
> >> +                return;
> >> +            } else if(args[i].equals("-g") || args[i].equals("--no-gzip")
> )
> >> {
> >> +                gzip = false;
> >> +            } else if(args[i].equals("--gzip")) {
> >> +                gzip = true;
> >> +            }  else if(args[i].equals("-v") ||
> >> args[i].equals("--verbose")) {
> >> +                verbose = true;
> >> +                quiet = false;
> >> +            } else if(args[i].equals("-q") || args[i].equals("--quiet")) 
> {
> >> +                quiet = true;
> >> +                verbose = false;
> >> +            } else if(args[i].startsWith("-l")) {
> >> +                logFileName = args[i].substring(2);
> >> +            } else if(args[i].equals("-V") || args[i].equals("--version")
> )
> >> {
> >> +                printVersion();
> >> +                return;
> >> +            } else {
> >> +                outputFileName = args[i];
> >> +                if(args.length > i + 1) {
> >> +                    inputFileName = args[i+1];
> >> +                }
> >> +                break;
> >> +            }
> >> +        }
> >> +        if(inputFileName == null || outputFileName == null) {
> >> +            printUsage();
> >> +            return;
> >> +        }
> >> +        JarInputStream inputStream = new JarInputStream(new
> >> FileInputStream(inputFileName));
> >> +        OutputStream outputStream = new BufferedOutputStream(new
> >> FileOutputStream(outputFileName));
> >> +        Archive archive = new Archive(inputStream, outputStream, gzip);
> >> +        archive.pack();
> >> +    }
> >> +
> >> +    private static void printUsage() {
> >> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
> >> x.pack[.gz] y.jar");
> >> +        System.out.println("(For more information, run pack200 --help)");
> >> +    }
> >> +
> >> +    private static void printHelp() {
> >> +        // TODO: Support all the options
> >> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
> >> x.pack[.gz] y.jar");
> >> +        System.out.println();
> >> +        System.out.println("Packing Options");
> >> +        System.out.println("  -g, --no-gzip                   output a
> >> plain *.pack file with no zipping");
> >> +        System.out.println("  --gzip                          (default)
> >> post-process the pack output with gzip");
> >> +//        System.out.println("  -G, --strip-debug               remove
> >> debugging attributes while packing");
> >> +//        System.out.println("  -O, --no-keep-file-order        do not
> >> transmit file ordering information");
> >> +//        System.out.println("  --keep-file-order               (default)
> >> preserve input file ordering");
> >> +//        System.out.println("  -S{N}, --segment-limit={N}      output
> >> segment limit (default N=1Mb)");
> >> +//        System.out.println("  -E{N}, --effort={N}             packing
> >> effort (default N=5)");
> >> +//        System.out.println("  -H{h}, --deflate-hint={h}       transmit
> >> deflate hint: true, false, or keep (default)");
> >> +//        System.out.println("  -m{V}, --modification-time={V}  transmit
> >> modtimes: latest or keep (default)");
> >> +//        System.out.println("  -P{F}, --pass-file={F}          transmit
> >> the given input element(s) uncompressed");
> >> +//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown
> >> attribute action: error, strip, or pass (default)");
> >> +//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}
> >>  (user-defined attribute)");
> >> +//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}
> >>  (user-defined attribute)");
> >> +//        System.out.println("  -M{N}={L}, --method-attribute={N}={L}
> >> (user-defined attribute)");
> >> +//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}
> >> (user-defined attribute)");
> >> +//        System.out.println("  -f{F}, --config-file={F}        read file
> >> F for Pack200.Packer properties");
> >> +//        System.out.println("  -v, --verbose                   increase
> >> program verbosity");
> >> +//        System.out.println("  -q, --quiet                     set
> >> verbosity to lowest level");
> >> +//        System.out.println("  -l{F}, --log-file={F}           output to
> >> the given log file, or '-' for System.out");
> >> +        System.out.println("  -?, -h, --help                  print this
> >> message");
> >> +        System.out.println("  -V, --version                   print
> >> program version");
> >> +//        System.out.println("  -J{X}                           pass
> >> option X to underlying Java VM");
> >> +//        System.out.println("");
> >> +//        System.out.println("Notes:");
> >> +//        System.out.println("  The -P, -C, -F, -M, and -D options
> >> accumulate.");
> >> +//        System.out.println("  Example attribute definition:  -C
> >> SourceFile=RUH .");
> >> +//        System.out.println("  Config. file properties are defined by th
> e
> >> Pack200 API.");
> >> +//        System.out.println("  For meaning of -S, -E, -H-, -m, -U values
> ,
> >> see Pack200 API.");
> >> +//        System.out.println("  Layout definitions (like RUH) are defined
> >> by JSR 200.");
> >> +//        System.out.println("");
> >> +//        System.out.println("Repacking mode updates the JAR file with a
> >> pack/unpack cycle:");
> >> +//        System.out.println("    pack200 [-r|--repack] [-opt |
> >> --option=value]... [repackedy.jar] y.jar");
> >> +    }
> >> +
> >> +    private static void printVersion() {
> >> +        System.out.println("Apache Harmony pack200 version 0.0");  // TOD
> O
> >> - version number
> >> +    }
> >> +
> >> +}
> >>
> >> Propchange:
> >> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
> harmony/jretools/pack200/Main.java
> >>
> >> --------------------------------------------------------------------------
> ----
> >>    svn:eol-style = native
> >>
> >> Propchange:
> >> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/
> harmony/jretools/pack200/Main.java
> >>
> >> --------------------------------------------------------------------------
> ----
> >>    svn:mime-type = text/plain
> >>
> >> Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
> >> URL:
> >> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/samsa
> /build.xml?rev=707024&r1=707023&r2=707024&view=diff
> >>
> >> ==========================================================================
> ====
> >> --- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
> >> +++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22
> >> 03:28:30 2008
> >> @@ -84,7 +84,10 @@
> >>         <copy file="${hy.samsa.exe}"
> >> tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
> >>         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}"
> >> perm="ugo+x" />
> >>
> >> -        <copy file="${hy.samsa.exe}"
> >> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
> >> +       <copy file="${hy.samsa.exe}"
> >> tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
> >> +       <chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}"
> >> perm="ugo+x" />
> >> +
> >> +       <copy file="${hy.samsa.exe}"
> >> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
> >>         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}"
> >> perm="ugo+x" />
> >>
> >>     </target>
> >> @@ -114,7 +117,8 @@
> >>         <copy file="${hy.samsa.progdb}"
> >> tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
> >>         <copy file="${hy.samsa.progdb}"
> >> tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
> >>        <copy file="${hy.samsa.progdb}"
> >> tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
> >> -        <copy file="${hy.samsa.progdb}"
> >> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
> >> +       <copy file="${hy.samsa.progdb}"
> >> tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
> >> +       <copy file="${hy.samsa.progdb}"
> >> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
> >>         <copy file="${hy.samsa.progdb}"
> >> tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
> >>
> >>     </target>
> >> @@ -192,6 +196,14 @@
> >>            <arg line="" />
> >>         </exec>
> >>
> >> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
> >> +        <exec failonerror="true"
> >> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
> >> +               dir="${hy.tests.reports}">
> >> +           <arg line="" />
> >> +        </exec>
> >> +
> >> +
> >>     </target>
> >>
> >>     <!-- Clean natives -->
> >>
> >>
> >>
> >
> 
> 
> 
> -- 
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number 7415
> 98.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> 



Re: svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Posted by Sian January <si...@googlemail.com>.
Hi Chunrong,

I've downloaded the hdk snapshot (Windows32) from
http://people.apache.org/builds/harmony/snapshots/r710036/ and both
the pack200 executables work for me.  Which platform are you seeing
problems on?

Thanks,

Sian


2008/11/5 chunrong lai <ch...@gmail.com>:
>  I see after a HDK building there are four pack200.
>
> ./working_jdktools/deploy/jdk/bin/pack200
> ./working_jdktools/deploy/jdk/jre/bin/pack200
> ./target/hdk/jdk/bin/pack200
> ./target/hdk/jdk/jre/bin/pack200
>
> While the first three are executable but the fourth is not yet. I think that
> it is what we run by default.
> So we need to further enhanced the scripts to make it executable.
>
> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
> +        <exec failonerror="true"
> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
> +               dir="${hy.tests.reports}">
> +           <arg line="" />
> +        </exec>
>
>
>
>
> On Wed, Oct 22, 2008 at 6:28 PM, <sj...@apache.org> wrote:
>
>> Author: sjanuary
>> Date: Wed Oct 22 03:28:30 2008
>> New Revision: 707024
>>
>> URL: http://svn.apache.org/viewvc?rev=707024&view=rev
>> Log:
>> Pack200 - add "pack200" executable
>>
>> Added:
>>
>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/
>>
>>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>>   (with props)
>> Modified:
>>    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>>    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>>    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>>
>> Modified:
>> harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>>
>> ==============================================================================
>> --- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>> (original)
>> +++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>> Wed Oct 22 03:28:30 2008
>> @@ -40,6 +40,7 @@
>>  org.apache.harmony.tools.jarsigner,
>>  org.apache.harmony.tools.keytool,
>>  org.apache.harmony.tools.unpack200,
>> + org.apache.harmony.tools.pack200,
>>  com.sun.tools.javac,
>>  com.sun.tools.jdi,
>>  com.sun.tools.jdi.connect,
>>
>> Modified:
>> harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>>
>> ==============================================================================
>> --- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>> (original)
>> +++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>> Wed Oct 22 03:28:30 2008
>> @@ -36,4 +36,5 @@
>>  org.apache.harmony.security.x509;version="1.0.0"
>>  Export-Package: org.apache.harmony.jretools.keytool,
>>  org.apache.harmony.jretools.unpack200,
>> + org.apache.harmony.jretools.pack200,
>>  org.apache.harmony.jretools.policytool
>>
>> Added:
>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024&view=auto
>>
>> ==============================================================================
>> ---
>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>> (added)
>> +++
>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>> Wed Oct 22 03:28:30 2008
>> @@ -0,0 +1,124 @@
>> +/*
>> + *  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.harmony.jretools.pack200;
>> +
>> +import java.io.BufferedOutputStream;
>> +import java.io.FileInputStream;
>> +import java.io.FileOutputStream;
>> +import java.io.OutputStream;
>> +import java.util.jar.JarInputStream;
>> +
>> +import org.apache.harmony.pack200.Archive;
>> +
>> +public class Main {
>> +
>> +    public static void main(String args[]) throws Exception {
>> +
>> +        String inputFileName = null;
>> +        String outputFileName = null;
>> +        boolean verbose = false;
>> +        boolean quiet = false;
>> +        String logFileName = null;
>> +        boolean gzip = true;
>> +
>> +        for (int i = 0; i < args.length; i++) {
>> +            if (args[i].equals("--help") || args[i].equals("-help")
>> +                    || args[i].equals("-h") || args[i].equals("-?")) {
>> +                printHelp();
>> +                return;
>> +            } else if(args[i].equals("-g") || args[i].equals("--no-gzip"))
>> {
>> +                gzip = false;
>> +            } else if(args[i].equals("--gzip")) {
>> +                gzip = true;
>> +            }  else if(args[i].equals("-v") ||
>> args[i].equals("--verbose")) {
>> +                verbose = true;
>> +                quiet = false;
>> +            } else if(args[i].equals("-q") || args[i].equals("--quiet")) {
>> +                quiet = true;
>> +                verbose = false;
>> +            } else if(args[i].startsWith("-l")) {
>> +                logFileName = args[i].substring(2);
>> +            } else if(args[i].equals("-V") || args[i].equals("--version"))
>> {
>> +                printVersion();
>> +                return;
>> +            } else {
>> +                outputFileName = args[i];
>> +                if(args.length > i + 1) {
>> +                    inputFileName = args[i+1];
>> +                }
>> +                break;
>> +            }
>> +        }
>> +        if(inputFileName == null || outputFileName == null) {
>> +            printUsage();
>> +            return;
>> +        }
>> +        JarInputStream inputStream = new JarInputStream(new
>> FileInputStream(inputFileName));
>> +        OutputStream outputStream = new BufferedOutputStream(new
>> FileOutputStream(outputFileName));
>> +        Archive archive = new Archive(inputStream, outputStream, gzip);
>> +        archive.pack();
>> +    }
>> +
>> +    private static void printUsage() {
>> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
>> x.pack[.gz] y.jar");
>> +        System.out.println("(For more information, run pack200 --help)");
>> +    }
>> +
>> +    private static void printHelp() {
>> +        // TODO: Support all the options
>> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
>> x.pack[.gz] y.jar");
>> +        System.out.println();
>> +        System.out.println("Packing Options");
>> +        System.out.println("  -g, --no-gzip                   output a
>> plain *.pack file with no zipping");
>> +        System.out.println("  --gzip                          (default)
>> post-process the pack output with gzip");
>> +//        System.out.println("  -G, --strip-debug               remove
>> debugging attributes while packing");
>> +//        System.out.println("  -O, --no-keep-file-order        do not
>> transmit file ordering information");
>> +//        System.out.println("  --keep-file-order               (default)
>> preserve input file ordering");
>> +//        System.out.println("  -S{N}, --segment-limit={N}      output
>> segment limit (default N=1Mb)");
>> +//        System.out.println("  -E{N}, --effort={N}             packing
>> effort (default N=5)");
>> +//        System.out.println("  -H{h}, --deflate-hint={h}       transmit
>> deflate hint: true, false, or keep (default)");
>> +//        System.out.println("  -m{V}, --modification-time={V}  transmit
>> modtimes: latest or keep (default)");
>> +//        System.out.println("  -P{F}, --pass-file={F}          transmit
>> the given input element(s) uncompressed");
>> +//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown
>> attribute action: error, strip, or pass (default)");
>> +//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}
>>  (user-defined attribute)");
>> +//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}
>>  (user-defined attribute)");
>> +//        System.out.println("  -M{N}={L}, --method-attribute={N}={L}
>> (user-defined attribute)");
>> +//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}
>> (user-defined attribute)");
>> +//        System.out.println("  -f{F}, --config-file={F}        read file
>> F for Pack200.Packer properties");
>> +//        System.out.println("  -v, --verbose                   increase
>> program verbosity");
>> +//        System.out.println("  -q, --quiet                     set
>> verbosity to lowest level");
>> +//        System.out.println("  -l{F}, --log-file={F}           output to
>> the given log file, or '-' for System.out");
>> +        System.out.println("  -?, -h, --help                  print this
>> message");
>> +        System.out.println("  -V, --version                   print
>> program version");
>> +//        System.out.println("  -J{X}                           pass
>> option X to underlying Java VM");
>> +//        System.out.println("");
>> +//        System.out.println("Notes:");
>> +//        System.out.println("  The -P, -C, -F, -M, and -D options
>> accumulate.");
>> +//        System.out.println("  Example attribute definition:  -C
>> SourceFile=RUH .");
>> +//        System.out.println("  Config. file properties are defined by the
>> Pack200 API.");
>> +//        System.out.println("  For meaning of -S, -E, -H-, -m, -U values,
>> see Pack200 API.");
>> +//        System.out.println("  Layout definitions (like RUH) are defined
>> by JSR 200.");
>> +//        System.out.println("");
>> +//        System.out.println("Repacking mode updates the JAR file with a
>> pack/unpack cycle:");
>> +//        System.out.println("    pack200 [-r|--repack] [-opt |
>> --option=value]... [repackedy.jar] y.jar");
>> +    }
>> +
>> +    private static void printVersion() {
>> +        System.out.println("Apache Harmony pack200 version 0.0");  // TODO
>> - version number
>> +    }
>> +
>> +}
>>
>> Propchange:
>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>>
>> ------------------------------------------------------------------------------
>>    svn:eol-style = native
>>
>> Propchange:
>> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>>
>> ------------------------------------------------------------------------------
>>    svn:mime-type = text/plain
>>
>> Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/samsa/build.xml?rev=707024&r1=707023&r2=707024&view=diff
>>
>> ==============================================================================
>> --- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
>> +++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22
>> 03:28:30 2008
>> @@ -84,7 +84,10 @@
>>         <copy file="${hy.samsa.exe}"
>> tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
>>         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}"
>> perm="ugo+x" />
>>
>> -        <copy file="${hy.samsa.exe}"
>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>> +       <copy file="${hy.samsa.exe}"
>> tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
>> +       <chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}"
>> perm="ugo+x" />
>> +
>> +       <copy file="${hy.samsa.exe}"
>> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>>         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}"
>> perm="ugo+x" />
>>
>>     </target>
>> @@ -114,7 +117,8 @@
>>         <copy file="${hy.samsa.progdb}"
>> tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
>>         <copy file="${hy.samsa.progdb}"
>> tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
>>        <copy file="${hy.samsa.progdb}"
>> tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
>> -        <copy file="${hy.samsa.progdb}"
>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>> +       <copy file="${hy.samsa.progdb}"
>> tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
>> +       <copy file="${hy.samsa.progdb}"
>> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>>         <copy file="${hy.samsa.progdb}"
>> tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
>>
>>     </target>
>> @@ -192,6 +196,14 @@
>>            <arg line="" />
>>         </exec>
>>
>> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
>> +        <exec failonerror="true"
>> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
>> +               dir="${hy.tests.reports}">
>> +           <arg line="" />
>> +        </exec>
>> +
>> +
>>     </target>
>>
>>     <!-- Clean natives -->
>>
>>
>>
>



-- 
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Re: svn commit: r707024 - in /harmony/enhanced/jdktools/trunk/modules: jdktools/META-INF/ jretools/META-INF/ jretools/src/main/java/org/apache/harmony/jretools/pack200/ samsa/

Posted by chunrong lai <ch...@gmail.com>.
 I see after a HDK building there are four pack200.

./working_jdktools/deploy/jdk/bin/pack200
./working_jdktools/deploy/jdk/jre/bin/pack200
./target/hdk/jdk/bin/pack200
./target/hdk/jdk/jre/bin/pack200

While the first three are executable but the fourth is not yet. I think that
it is what we run by default.
So we need to further enhanced the scripts to make it executable.

+        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
+        <exec failonerror="true"
+               executable="${test.jre.home}/bin/pack200${exe.suffix}"
+               dir="${hy.tests.reports}">
+           <arg line="" />
+        </exec>




On Wed, Oct 22, 2008 at 6:28 PM, <sj...@apache.org> wrote:

> Author: sjanuary
> Date: Wed Oct 22 03:28:30 2008
> New Revision: 707024
>
> URL: http://svn.apache.org/viewvc?rev=707024&view=rev
> Log:
> Pack200 - add "pack200" executable
>
> Added:
>
>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/
>
>  harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>   (with props)
> Modified:
>    harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
>    harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
>    harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
>
> Modified:
> harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>
> ==============================================================================
> --- harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> (original)
> +++ harmony/enhanced/jdktools/trunk/modules/jdktools/META-INF/MANIFEST.MF
> Wed Oct 22 03:28:30 2008
> @@ -40,6 +40,7 @@
>  org.apache.harmony.tools.jarsigner,
>  org.apache.harmony.tools.keytool,
>  org.apache.harmony.tools.unpack200,
> + org.apache.harmony.tools.pack200,
>  com.sun.tools.javac,
>  com.sun.tools.jdi,
>  com.sun.tools.jdi.connect,
>
> Modified:
> harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF?rev=707024&r1=707023&r2=707024&view=diff
>
> ==============================================================================
> --- harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> (original)
> +++ harmony/enhanced/jdktools/trunk/modules/jretools/META-INF/MANIFEST.MF
> Wed Oct 22 03:28:30 2008
> @@ -36,4 +36,5 @@
>  org.apache.harmony.security.x509;version="1.0.0"
>  Export-Package: org.apache.harmony.jretools.keytool,
>  org.apache.harmony.jretools.unpack200,
> + org.apache.harmony.jretools.pack200,
>  org.apache.harmony.jretools.policytool
>
> Added:
> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java?rev=707024&view=auto
>
> ==============================================================================
> ---
> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
> (added)
> +++
> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
> Wed Oct 22 03:28:30 2008
> @@ -0,0 +1,124 @@
> +/*
> + *  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.harmony.jretools.pack200;
> +
> +import java.io.BufferedOutputStream;
> +import java.io.FileInputStream;
> +import java.io.FileOutputStream;
> +import java.io.OutputStream;
> +import java.util.jar.JarInputStream;
> +
> +import org.apache.harmony.pack200.Archive;
> +
> +public class Main {
> +
> +    public static void main(String args[]) throws Exception {
> +
> +        String inputFileName = null;
> +        String outputFileName = null;
> +        boolean verbose = false;
> +        boolean quiet = false;
> +        String logFileName = null;
> +        boolean gzip = true;
> +
> +        for (int i = 0; i < args.length; i++) {
> +            if (args[i].equals("--help") || args[i].equals("-help")
> +                    || args[i].equals("-h") || args[i].equals("-?")) {
> +                printHelp();
> +                return;
> +            } else if(args[i].equals("-g") || args[i].equals("--no-gzip"))
> {
> +                gzip = false;
> +            } else if(args[i].equals("--gzip")) {
> +                gzip = true;
> +            }  else if(args[i].equals("-v") ||
> args[i].equals("--verbose")) {
> +                verbose = true;
> +                quiet = false;
> +            } else if(args[i].equals("-q") || args[i].equals("--quiet")) {
> +                quiet = true;
> +                verbose = false;
> +            } else if(args[i].startsWith("-l")) {
> +                logFileName = args[i].substring(2);
> +            } else if(args[i].equals("-V") || args[i].equals("--version"))
> {
> +                printVersion();
> +                return;
> +            } else {
> +                outputFileName = args[i];
> +                if(args.length > i + 1) {
> +                    inputFileName = args[i+1];
> +                }
> +                break;
> +            }
> +        }
> +        if(inputFileName == null || outputFileName == null) {
> +            printUsage();
> +            return;
> +        }
> +        JarInputStream inputStream = new JarInputStream(new
> FileInputStream(inputFileName));
> +        OutputStream outputStream = new BufferedOutputStream(new
> FileOutputStream(outputFileName));
> +        Archive archive = new Archive(inputStream, outputStream, gzip);
> +        archive.pack();
> +    }
> +
> +    private static void printUsage() {
> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
> x.pack[.gz] y.jar");
> +        System.out.println("(For more information, run pack200 --help)");
> +    }
> +
> +    private static void printHelp() {
> +        // TODO: Support all the options
> +        System.out.println("Usage:  pack200 [-opt... | --option=value]...
> x.pack[.gz] y.jar");
> +        System.out.println();
> +        System.out.println("Packing Options");
> +        System.out.println("  -g, --no-gzip                   output a
> plain *.pack file with no zipping");
> +        System.out.println("  --gzip                          (default)
> post-process the pack output with gzip");
> +//        System.out.println("  -G, --strip-debug               remove
> debugging attributes while packing");
> +//        System.out.println("  -O, --no-keep-file-order        do not
> transmit file ordering information");
> +//        System.out.println("  --keep-file-order               (default)
> preserve input file ordering");
> +//        System.out.println("  -S{N}, --segment-limit={N}      output
> segment limit (default N=1Mb)");
> +//        System.out.println("  -E{N}, --effort={N}             packing
> effort (default N=5)");
> +//        System.out.println("  -H{h}, --deflate-hint={h}       transmit
> deflate hint: true, false, or keep (default)");
> +//        System.out.println("  -m{V}, --modification-time={V}  transmit
> modtimes: latest or keep (default)");
> +//        System.out.println("  -P{F}, --pass-file={F}          transmit
> the given input element(s) uncompressed");
> +//        System.out.println("  -U{a}, --unknown-attribute={a}  unknown
> attribute action: error, strip, or pass (default)");
> +//        System.out.println("  -C{N}={L}, --class-attribute={N}={L}
>  (user-defined attribute)");
> +//        System.out.println("  -F{N}={L}, --field-attribute={N}={L}
>  (user-defined attribute)");
> +//        System.out.println("  -M{N}={L}, --method-attribute={N}={L}
> (user-defined attribute)");
> +//        System.out.println("  -D{N}={L}, --code-attribute={N}={L}
> (user-defined attribute)");
> +//        System.out.println("  -f{F}, --config-file={F}        read file
> F for Pack200.Packer properties");
> +//        System.out.println("  -v, --verbose                   increase
> program verbosity");
> +//        System.out.println("  -q, --quiet                     set
> verbosity to lowest level");
> +//        System.out.println("  -l{F}, --log-file={F}           output to
> the given log file, or '-' for System.out");
> +        System.out.println("  -?, -h, --help                  print this
> message");
> +        System.out.println("  -V, --version                   print
> program version");
> +//        System.out.println("  -J{X}                           pass
> option X to underlying Java VM");
> +//        System.out.println("");
> +//        System.out.println("Notes:");
> +//        System.out.println("  The -P, -C, -F, -M, and -D options
> accumulate.");
> +//        System.out.println("  Example attribute definition:  -C
> SourceFile=RUH .");
> +//        System.out.println("  Config. file properties are defined by the
> Pack200 API.");
> +//        System.out.println("  For meaning of -S, -E, -H-, -m, -U values,
> see Pack200 API.");
> +//        System.out.println("  Layout definitions (like RUH) are defined
> by JSR 200.");
> +//        System.out.println("");
> +//        System.out.println("Repacking mode updates the JAR file with a
> pack/unpack cycle:");
> +//        System.out.println("    pack200 [-r|--repack] [-opt |
> --option=value]... [repackedy.jar] y.jar");
> +    }
> +
> +    private static void printVersion() {
> +        System.out.println("Apache Harmony pack200 version 0.0");  // TODO
> - version number
> +    }
> +
> +}
>
> Propchange:
> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange:
> harmony/enhanced/jdktools/trunk/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
>
> ------------------------------------------------------------------------------
>    svn:mime-type = text/plain
>
> Modified: harmony/enhanced/jdktools/trunk/modules/samsa/build.xml
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/jdktools/trunk/modules/samsa/build.xml?rev=707024&r1=707023&r2=707024&view=diff
>
> ==============================================================================
> --- harmony/enhanced/jdktools/trunk/modules/samsa/build.xml (original)
> +++ harmony/enhanced/jdktools/trunk/modules/samsa/build.xml Wed Oct 22
> 03:28:30 2008
> @@ -84,7 +84,10 @@
>         <copy file="${hy.samsa.exe}"
> tofile="${jretools.deploy.dir}/bin/unpack200${exe.suffix}" />
>         <chmod file="${jretools.deploy.dir}/bin/unpack200${exe.suffix}"
> perm="ugo+x" />
>
> -        <copy file="${hy.samsa.exe}"
> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
> +       <copy file="${hy.samsa.exe}"
> tofile="${jretools.deploy.dir}/bin/pack200${exe.suffix}" />
> +       <chmod file="${jretools.deploy.dir}/bin/pack200${exe.suffix}"
> perm="ugo+x" />
> +
> +       <copy file="${hy.samsa.exe}"
> tofile="${jretools.deploy.dir}/bin/policytool${exe.suffix}" />
>         <chmod file="${jretools.deploy.dir}/bin/policytool${exe.suffix}"
> perm="ugo+x" />
>
>     </target>
> @@ -114,7 +117,8 @@
>         <copy file="${hy.samsa.progdb}"
> tofile="${jdktools.deploy.dir}/bin/javap${progdb.suffix}" />
>         <copy file="${hy.samsa.progdb}"
> tofile="${jdktools.deploy.dir}/bin/jarsigner${progdb.suffix}" />
>        <copy file="${hy.samsa.progdb}"
> tofile="${jretools.deploy.dir}/bin/unpack200${progdb.suffix}" />
> -        <copy file="${hy.samsa.progdb}"
> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
> +       <copy file="${hy.samsa.progdb}"
> tofile="${jretools.deploy.dir}/bin/pack200${progdb.suffix}" />
> +       <copy file="${hy.samsa.progdb}"
> tofile="${jretools.deploy.dir}/bin/keytool${progdb.suffix}" />
>         <copy file="${hy.samsa.progdb}"
> tofile="${jretools.deploy.dir}/bin/policytool${progdb.suffix}" />
>
>     </target>
> @@ -192,6 +196,14 @@
>            <arg line="" />
>         </exec>
>
> +        <echo message="Run jdk/jre/bin/pack200 in ${hy.tests.reports}"/>
> +        <exec failonerror="true"
> +               executable="${test.jre.home}/bin/pack200${exe.suffix}"
> +               dir="${hy.tests.reports}">
> +           <arg line="" />
> +        </exec>
> +
> +
>     </target>
>
>     <!-- Clean natives -->
>
>
>