You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2009/04/05 03:41:21 UTC
svn commit: r762040 - in
/struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main:
java/org/apache/struts2/osgi/FelixOsgiHost.java
resources/struts-osgi.properties
Author: musachy
Date: Sun Apr 5 01:41:21 2009
New Revision: 762040
URL: http://svn.apache.org/viewvc?rev=762040&view=rev
Log:
Add package to export list. Add more logging
Modified:
struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/java/org/apache/struts2/osgi/FelixOsgiHost.java
struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/resources/struts-osgi.properties
Modified: struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/java/org/apache/struts2/osgi/FelixOsgiHost.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/java/org/apache/struts2/osgi/FelixOsgiHost.java?rev=762040&r1=762039&r2=762040&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/java/org/apache/struts2/osgi/FelixOsgiHost.java (original)
+++ struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/java/org/apache/struts2/osgi/FelixOsgiHost.java Sun Apr 5 01:41:21 2009
@@ -20,53 +20,41 @@
*/
package org.apache.struts2.osgi;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.URLUtil;
+import com.opensymphony.xwork2.util.finder.ResourceFinder;
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.commons.lang.xwork.StringUtils;
import org.apache.felix.framework.Felix;
import org.apache.felix.framework.util.FelixConstants;
-import org.apache.felix.main.Main;
import org.apache.felix.main.AutoActivator;
+import org.apache.felix.main.Main;
import org.apache.felix.shell.ShellService;
-import org.apache.commons.lang.xwork.StringUtils;
import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
import org.osgi.framework.BundleActivator;
+import org.osgi.framework.Constants;
+import org.osgi.service.log.LogService;
import org.osgi.util.tracker.ServiceTracker;
-import java.util.Map;
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.URL;
+import java.security.CodeSource;
+import java.security.ProtectionDomain;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import java.util.HashSet;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
-import java.util.jar.Attributes;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FilenameFilter;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-import java.security.CodeSource;
-import java.security.ProtectionDomain;
-
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
-import com.opensymphony.xwork2.util.finder.ResourceFinder;
-import com.opensymphony.xwork2.util.URLUtil;
-import com.opensymphony.xwork2.config.ConfigurationException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* Apache felix implementation of an OsgiHost
@@ -119,6 +107,7 @@
configProps.put(FelixConstants.SERVICE_URLHANDLERS_PROP, "false");
configProps.put(FelixConstants.LOG_LEVEL_PROP, "4");
configProps.put(FelixConstants.BUNDLE_CLASSPATH, ".");
+ configProps.put(FelixConstants.FRAMEWORK_BEGINNING_STARTLEVEL, "2");
try {
List<BundleActivator> list = new ArrayList<BundleActivator>();
@@ -147,47 +136,55 @@
}
private int addAutoStartBundles(Properties configProps) {
- List<String> bundleJars = new ArrayList<String>();
+ //starts system bundles in level 1
+ List<String> bundleJarsLevel1 = new ArrayList<String>();
+ bundleJarsLevel1.add(getJarUrl(ShellService.class));
+ bundleJarsLevel1.add(getJarUrl(ServiceTracker.class));
+ bundleJarsLevel1.add(getJarUrl(LogService.class));
+
+ configProps.put(AutoActivator.AUTO_START_PROP + ".1", StringUtils.join(bundleJarsLevel1, " "));
+
+ //start app bundles in level2
+ List<String> bundleJarsLevel2 = new ArrayList<String>();
try {
ResourceFinder finder = new ResourceFinder();
URL url = finder.find("bundles");
- if ("file".equals(url.getProtocol())) {
- File bundlerDir = new File(url.toURI());
- File[] bundles = bundlerDir.listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File file, String name) {
- return StringUtils.endsWith(name, ".jar");
- }
- });
+ if (url != null) {
+ if ("file".equals(url.getProtocol())) {
+ File bundlerDir = new File(url.toURI());
+ File[] bundles = bundlerDir.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File file, String name) {
+ return StringUtils.endsWith(name, ".jar");
+ }
+ });
- if (bundles != null && bundles.length > 0) {
- //add all the bundles to the list
- for (File bundle : bundles) {
- String externalForm = bundle.toURI().toURL().toExternalForm();
- if (LOG.isDebugEnabled())
- LOG.debug("Adding bundle [#0]", externalForm);
- bundleJars.add(externalForm);
- }
+ if (bundles != null && bundles.length > 0) {
+ //add all the bundles to the list
+ for (File bundle : bundles) {
+ String externalForm = bundle.toURI().toURL().toExternalForm();
+ if (LOG.isDebugEnabled())
+ LOG.debug("Adding bundle [#0]", externalForm);
+ bundleJarsLevel2.add(externalForm);
+ }
- } else if (LOG.isDebugEnabled()) {
- LOG.debug("No bundles found under the 'bundles' directory");
- }
- }
+ } else if (LOG.isDebugEnabled()) {
+ LOG.debug("No bundles found under the 'bundles' directory");
+ }
+ } else if (LOG.isWarnEnabled())
+ LOG.warn("Unable to read 'bundles' directory");
+ } else if (LOG.isWarnEnabled())
+ LOG.warn("The 'bundles' directory was not found");
} catch (Exception e) {
if (LOG.isWarnEnabled())
LOG.warn("Unable load bundles from the 'bundles' directory", e);
return 0;
}
- // Add shell and File Install bundles activation
- bundleJars.add(getJarUrl(ShellService.class));
- //sb.append(getJarUrl(FileInstall.class)).append(" ");
- bundleJars.add(getJarUrl(ServiceTracker.class));
-
- //autostart bundles
- configProps.put(AutoActivator.AUTO_START_PROP + ".1", StringUtils.join(bundleJars, " "));
+ //autostart bundles in leve 2
+ configProps.put(AutoActivator.AUTO_START_PROP + ".2", StringUtils.join(bundleJarsLevel2, " "));
- return bundleJars.size();
+ return bundleJarsLevel1.size() + bundleJarsLevel2.size();
}
private String getJarUrl(Class clazz) {
Modified: struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/resources/struts-osgi.properties
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/resources/struts-osgi.properties?rev=762040&r1=762039&r2=762040&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/resources/struts-osgi.properties (original)
+++ struts/sandbox/trunk/struts2-osgi-plugin/plugin/src/main/resources/struts-osgi.properties Sun Apr 5 01:41:21 2009
@@ -16,6 +16,7 @@
# under the License.
scanning.package.includes = com.opensymphony.xwork2, \
+ org.apache.commons.lang.xwork, \
org.apache.struts2, \
ognl, \
freemarker, \