You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2010/06/26 08:37:38 UTC
svn commit: r958189 -
/openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
Author: struberg
Date: Sat Jun 26 06:37:38 2010
New Revision: 958189
URL: http://svn.apache.org/viewvc?rev=958189&view=rev
Log:
OWB-400 improve WEB-INF/beans.xml detection
Modified:
openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
Modified: openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java?rev=958189&r1=958188&r2=958189&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java (original)
+++ openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java Sat Jun 26 06:37:38 2010
@@ -35,6 +35,7 @@ import org.osgi.service.packageadmin.Pac
import javax.servlet.ServletContext;
import java.io.InputStream;
import java.net.URL;
+import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import java.util.zip.ZipEntry;
@@ -180,9 +181,28 @@ public class OsgiMetaDataScannerService
brfXmlJar.find(rfCallback);
- BundleResourceFinder brfXmlWar = new BundleResourceFinder(packageAdmin, mainBundle, "", WEB_INF_BEANS_XML);
+ // TODO I found no other way to find WEB-INF/beanx.xml directly
+ Enumeration<URL> urls = mainBundle.findEntries("", "beans.xml", true);
+ boolean webBeansXmlFound = false;
+ while(urls != null && urls.hasMoreElements())
+ {
+ URL webBeansXml = urls.nextElement();
+ if (!webBeansXml.toExternalForm().endsWith("/" + WEB_INF_BEANS_XML))
+ {
+ continue;
+ }
+
+ if (webBeansXmlFound)
+ {
+ throw new WebBeansDeploymentException("found more than WEB-INF/beans.xml file!" + webBeansXml);
+ }
+
+ logger.info("adding the following WEB-INF/beans.xml URL: " + webBeansXml);
+ beanXMLs.add(webBeansXml);
+ webBeansXmlFound = true;
+
+ }
- brfXmlWar.find(rfCallback);
}
@Override