KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > test > server > appserver > cargo > CargoStartupAppender


1 /*
2  * All content copyright (c) 2003-2007 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

5 package com.tc.test.server.appserver.cargo;
6
7 import com.tc.net.EphemeralPorts;
8 import com.tc.process.StartupAppender;
9 import com.tc.process.StreamCollector;
10 import com.tc.process.StreamCopier;
11 import com.tc.util.ArchiveBuilder;
12 import com.tc.util.ClassListToFileList;
13 import com.tc.util.JarBuilder;
14 import com.tc.util.PortChooser;
15 import com.tc.util.ReplaceLine;
16 import com.tc.util.runtime.Os;
17
18 import java.io.File JavaDoc;
19 import java.io.IOException JavaDoc;
20
21 public abstract class CargoStartupAppender implements StartupAppender {
22
23   public abstract void append() throws Exception JavaDoc;
24
25   /**
26    * @param appenderLocation - location of the subprocess startup-appender.jar
27    */

28   public final void pack(File JavaDoc appenderLocation) throws IOException JavaDoc {
29     ArchiveBuilder jar = new JarBuilder(new File JavaDoc(appenderLocation + File.separator + StartupAppender.FILE_NAME));
30     Class JavaDoc[] classes = new Class JavaDoc[] { this.getClass(), CargoStartupAppender.class, ArchiveBuilder.class,
31         JarBuilder.class, ClassListToFileList.class, StartupAppender.class, PortChooser.class, EphemeralPorts.class,
32         StreamCollector.class, Os.class, ReplaceLine.class, StreamCopier.class };
33     File JavaDoc[][] files = ClassListToFileList.translate(classes);
34     for (int i = 0; i < files[0].length; i++) {
35       jar.putEntry(files[1][i].toString(), jar.readFile(files[0][i]));
36     }
37     jar.putEntry(StartupAppender.APPENDER_TYPE_FILENAME, this.getClass().getName().getBytes());
38     jar.finish();
39   }
40 }
41
Popular Tags