summaryrefslogtreecommitdiffstats
path: root/branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2008-09-15 00:26:00 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2008-09-15 00:26:00 +0000
commitd5f1d093fe6fa491cdec392dca7137639e98d149 (patch)
treeb98c79d8231a2617ee1dce43b1782d30d93686bc /branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java
parentf4e3e383071b6947d56794d9af5e9e6438aa3235 (diff)
Pulled a recent revision of trunk into the sca-android branch, to apply the android patches from JIRA TUSCANY-2440 to it.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@695318 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java')
-rw-r--r--branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java b/branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java
new file mode 100644
index 0000000000..efe4d7bf8a
--- /dev/null
+++ b/branches/sca-android/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHookConfigurator.java
@@ -0,0 +1,72 @@
+/*
+ * 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.tuscany.sca.node.equinox.launcher;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.jar.Manifest;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.osgi.baseadaptor.HookConfigurator;
+import org.eclipse.osgi.baseadaptor.HookRegistry;
+
+/**
+ * Hook Configurator for Equinox.
+ *
+ * @version $Rev: $ $Date: $
+ */
+public class EquinoxHookConfigurator implements HookConfigurator {
+ private static Logger logger = Logger.getLogger(HookConfigurator.class.getName());
+
+ private String[] jarFiles;
+ private Manifest manifest;
+
+ public EquinoxHookConfigurator() {
+
+ // Get the list of JAR files to install
+ String jarFilesProperty = System.getProperty("org.apache.tuscany.sca.node.launcher.equinox.jarFiles");
+ jarFiles = jarFilesProperty.split(";");
+
+ // Create a single 'library' bundle for them
+ long libraryStart = System.currentTimeMillis();
+ manifest = NodeLauncherUtil.libraryManifest(jarFiles);
+
+ if (logger.isLoggable(Level.FINE)) {
+ try {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ manifest.write(bos);
+ bos.close();
+ logger.fine(new String(bos.toByteArray()));
+ } catch (IOException e) {
+ }
+ }
+
+ logger.info("Third-party library manifest generated in " + (System.currentTimeMillis() - libraryStart) + " ms");
+
+ }
+
+ public void addHooks(HookRegistry registry) {
+
+ // Register our BundleFileFactory hook
+ registry.addBundleFileFactoryHook(new LibrariesBundleFileFactoryHook(manifest));
+ }
+
+}