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) {


Reply via email to