You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ga...@apache.org on 2010/02/09 18:03:09 UTC
svn commit: r908117 - in /incubator/aries/trunk/web/web-urlhandler/src:
main/java/org/apache/aries/web/converter/impl/
main/java/org/apache/aries/web/url/
test/java/org/apache/aries/web/converter/impl/
Author: gawor
Date: Tue Feb 9 17:03:09 2010
New Revision: 908117
URL: http://svn.apache.org/viewvc?rev=908117&view=rev
Log:
bunch of minor improvments: 1) updated default imports, 2) updated 'bundle' detection, 3) moved bundle manifest version checking to the converter code, and 4) more efficient jar data copying
Modified:
incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/converter/impl/WarToWabConverterImpl.java
incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WARConnection.java
incubator/aries/trunk/web/web-urlhandler/src/test/java/org/apache/aries/web/converter/impl/WabConverterTest.java
Modified: incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/converter/impl/WarToWabConverterImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/converter/impl/WarToWabConverterImpl.java?rev=908117&r1=908116&r2=908117&view=diff
==============================================================================
--- incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/converter/impl/WarToWabConverterImpl.java (original)
+++ incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/converter/impl/WarToWabConverterImpl.java Tue Feb 9 17:03:09 2010
@@ -49,12 +49,19 @@
private static final String DEFAULT_BUNDLE_MANIFESTVERSION = "2";
private static final String INITIAL_CLASSPATH_ENTRY = "WEB-INF/classes";
private static final String CLASSPATH_LIB_PREFIX = "WEB-INF/lib/";
- private static final String DEFAULT_IMPORT_PACKAGE_LIST = "javax.servlet;version=2.5,"
- + "javax.servlet.http;version=2.5,"
- + "javax.el;version=2.1,"
- + "javax.servlet.jsp;version=2.1,"
- + "javax.servlet.jsp.el;version=2.1,"
- + "javax.servlet.jsp.tagext;version=2.1";
+
+ private static final String SERVLET_IMPORTS =
+ "javax.servlet;version=2.5," +
+ "javax.servlet.http;version=2.5";
+
+ private static final String JSP_IMPORTS =
+ "javax.servlet.jsp;version=2.1," +
+ "javax.servlet.jsp.el;version=2.1," +
+ "javax.servlet.jsp.tagext;version=2.1," +
+ "javax.servlet.jsp.resources;version=2.1";
+
+ private static final String DEFAULT_IMPORT_PACKAGE_LIST =
+ SERVLET_IMPORTS + "," + JSP_IMPORTS;
private Properties properties;
@@ -111,10 +118,11 @@
try {
jarOutput = new JarOutputStream(output, wabManifest);
jarInput = new JarInputStream(input.getInputStream());
+ byte[] buffer = new byte[2048];
while ((entry = jarInput.getNextEntry()) != null) {
- jarOutput.putNextEntry(entry);
- while ((val = jarInput.read()) != -1)
- jarOutput.write(val);
+ jarOutput.putNextEntry(entry);
+ while ((val = jarInput.read(buffer)) > 0)
+ jarOutput.write(buffer, 0, val);
}
}
finally {
@@ -132,9 +140,13 @@
if (manifest == null) {
return false;
}
+ // Presence of _any_ of these headers indicates a bundle...
Attributes attributes = manifest.getMainAttributes();
- // TODO: need to check for other headers too
- if (attributes.getValue(Constants.BUNDLE_SYMBOLICNAME) != null) {
+ if (attributes.getValue(Constants.BUNDLE_SYMBOLICNAME) != null ||
+ attributes.getValue(Constants.BUNDLE_VERSION) != null ||
+ attributes.getValue(Constants.BUNDLE_MANIFESTVERSION) != null ||
+ attributes.getValue(Constants.IMPORT_PACKAGE) != null ||
+ attributes.getValue(WEB_CONTEXT_PATH) != null) {
return true;
}
return false;
@@ -264,10 +276,16 @@
// Bundle-ManifestVersion
//
- if (manifest.getMainAttributes().getValue(Constants.BUNDLE_MANIFESTVERSION) == null
- && !properties.containsKey(Constants.BUNDLE_MANIFESTVERSION)) {
- properties.put(Constants.BUNDLE_MANIFESTVERSION, DEFAULT_BUNDLE_MANIFESTVERSION);
+ String manifestVersion = properties.getProperty(Constants.BUNDLE_MANIFESTVERSION);
+ if (manifestVersion == null) {
+ manifestVersion = manifest.getMainAttributes().getValue(Constants.BUNDLE_MANIFESTVERSION);
+ if (manifestVersion == null) {
+ manifestVersion = DEFAULT_BUNDLE_MANIFESTVERSION;
+ }
+ } else if (!manifestVersion.equals("2")) {
+ throw new IOException("Unsupported bundle manifest version " + manifestVersion);
}
+ properties.put(Constants.BUNDLE_MANIFESTVERSION, manifestVersion);
//
// Bundle-SymbolicName
Modified: incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WARConnection.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WARConnection.java?rev=908117&r1=908116&r2=908117&view=diff
==============================================================================
--- incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WARConnection.java (original)
+++ incubator/aries/trunk/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WARConnection.java Tue Feb 9 17:03:09 2010
@@ -27,7 +27,6 @@
import org.apache.aries.web.converter.WarToWabConverter.InputStreamProvider;
import org.apache.aries.web.converter.impl.WarToWabConverterImpl;
-import org.osgi.framework.Constants;
public class WARConnection extends URLConnection
{
@@ -38,14 +37,6 @@
{
super(url);
this.properties = properties;
-
- // Validate properties
-
- String bundleManifestVersion = (String) properties.get(Constants.BUNDLE_MANIFESTVERSION);
- if (bundleManifestVersion != null && !bundleManifestVersion.equals("2")) {
- throw new MalformedURLException("Incorrect bundle version supplied in URL : " + bundleManifestVersion);
- }
-
}
@Override
Modified: incubator/aries/trunk/web/web-urlhandler/src/test/java/org/apache/aries/web/converter/impl/WabConverterTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/web/web-urlhandler/src/test/java/org/apache/aries/web/converter/impl/WabConverterTest.java?rev=908117&r1=908116&r2=908117&view=diff
==============================================================================
--- incubator/aries/trunk/web/web-urlhandler/src/test/java/org/apache/aries/web/converter/impl/WabConverterTest.java (original)
+++ incubator/aries/trunk/web/web-urlhandler/src/test/java/org/apache/aries/web/converter/impl/WabConverterTest.java Tue Feb 9 17:03:09 2010
@@ -47,6 +47,19 @@
public static final String WAR_FILE_NAME_WO_SUFFIX = "test";
public static final String WAR_FILE_NAME = WAR_FILE_NAME_WO_SUFFIX + ".war";
+ private static final String SERVLET_IMPORTS =
+ "javax.servlet;version=2.5," +
+ "javax.servlet.http;version=2.5";
+
+ private static final String JSP_IMPORTS =
+ "javax.servlet.jsp;version=2.1," +
+ "javax.servlet.jsp.el;version=2.1," +
+ "javax.servlet.jsp.tagext;version=2.1," +
+ "javax.servlet.jsp.resources;version=2.1";
+
+ private static final String DEFAULT_IMPORTS =
+ SERVLET_IMPORTS + "," + JSP_IMPORTS;
+
/**
* Test that we can handle a null manifest (in case a jar archive was created without manifest)
*/
@@ -80,10 +93,7 @@
"com.ibm.test,"+
"javax.servlet.http,"+
"javax.servlet;version=2.5,"+
- "javax.el;version=2.1,"+
- "javax.servlet.jsp;version=2.1,"+
- "javax.servlet.jsp.el;version=2.1,"+
- "javax.servlet.jsp.tagext;version=2.1",
+ JSP_IMPORTS,
attrs.getValue("Import-Package"));
}
@@ -101,8 +111,8 @@
"javax.servlet.jsp.tagext; version=\"[2.0,2.1]\"," +
"javax.servlet;version=2.5," +
"javax.servlet.http;version=2.5," +
- "javax.el;version=2.1," +
- "javax.servlet.jsp.el;version=2.1",
+ "javax.servlet.jsp.el;version=2.1," +
+ "javax.servlet.jsp.resources;version=2.1",
actual);
}
@@ -133,10 +143,7 @@
assertTrue(attrs.getValue(Constants.BUNDLE_SYMBOLICNAME).startsWith(WAR_FILE_NAME_WO_SUFFIX));
assertEquals("1.0", attrs.getValue(Constants.BUNDLE_VERSION));
- assertEquals("javax.servlet;version=2.5,javax.servlet.http;version=2.5,javax.el;version=2.1," +
- "javax.servlet.jsp;version=2.1,javax.servlet.jsp.el;version=2.1," +
- "javax.servlet.jsp.tagext;version=2.1",
- attrs.getValue(Constants.IMPORT_PACKAGE));
+ assertEquals(DEFAULT_IMPORTS, attrs.getValue(Constants.IMPORT_PACKAGE));
assertEquals("WEB-INF/classes",attrs.getValue(Constants.BUNDLE_CLASSPATH));
}
@@ -149,11 +156,8 @@
assertEquals("/WebFiles", attrs.getValue(WarToWabConverter.WEB_CONTEXT_PATH));
assertEquals("2.0", attrs.getValue(Constants.BUNDLE_VERSION));
- assertEquals("org.apache.aries.test;version=2.5,org.apache.aries.test.eba;version=1.0,"+
- "javax.servlet;version=2.5,javax.servlet.http;version=2.5,javax.el;version=2.1," +
- "javax.servlet.jsp;version=2.1,javax.servlet.jsp.el;version=2.1," +
- "javax.servlet.jsp.tagext;version=2.1",
- attrs.getValue(Constants.IMPORT_PACKAGE));
+ assertEquals("org.apache.aries.test;version=2.5,org.apache.aries.test.eba;version=1.0," + DEFAULT_IMPORTS,
+ attrs.getValue(Constants.IMPORT_PACKAGE));
}
@Test