Author: rmannibucau
Date: Wed Jun 13 23:39:10 2012
New Revision: 1350057
URL: http://svn.apache.org/viewvc?rev=1350057&view=rev
Log:
TOMEE-231 allowing to use when importing an xml resource file in tomee.xml or
openejb.xml
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java?rev=1350057&r1=1350056&r2=1350057&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java
Wed Jun 13 23:39:10 2012
@@ -24,6 +24,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import org.apache.openejb.OpenEJBRuntimeException;
import org.apache.openejb.config.Service;
+import org.apache.openejb.loader.SystemInstance;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -44,6 +45,7 @@ import java.util.List;
*/
class SaxOpenejb extends DefaultHandler {
+ public static final String HOME_VAR = "$home";
private final Openejb openejb = new Openejb();
private final List<DefaultHandler> handlers = new
LinkedList<DefaultHandler>();
@@ -289,6 +291,7 @@ class SaxOpenejb extends DefaultHandler
private class ImportElement extends DefaultHandler {
private String path = null;
+
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
path = attributes.getValue("path");
@@ -297,6 +300,8 @@ class SaxOpenejb extends DefaultHandler
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (path != null) {
+ updatePath();
+
InputStream is = null;
try {
final URL url = new URL(path);
@@ -323,6 +328,12 @@ class SaxOpenejb extends DefaultHandler
}
}
+ private void updatePath() {
+ if (path != null && path.startsWith(HOME_VAR)) {
+ path =
SystemInstance.get().getHome().getDirectory().getAbsolutePath() +
path.substring(HOME_VAR.length());
+ }
+ }
+
private void merge(final Openejb openejb, final Openejb
importedOpenEJB) {
if (importedOpenEJB.container != null) {
for (Container container : importedOpenEJB.container) {