Author: rmannibucau
Date: Wed Jan  9 21:24:31 2013
New Revision: 1431091

URL: http://svn.apache.org/viewvc?rev=1431091&view=rev
Log:
OPENEJB-1986 encoding uri

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEJBDeploymentFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/IntrospectionSupport.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
 Wed Jan  9 21:24:31 2013
@@ -17,6 +17,7 @@
 package org.apache.openejb.cli;
 
 import org.apache.openejb.loader.SystemClassPath;
+import org.apache.openejb.util.URLs;
 
 import java.io.File;
 import java.net.URI;
@@ -56,7 +57,7 @@ public class Bootstrap {
 
                 propsString = propsString.substring(0, 
propsString.indexOf("!"));
 
-                final URI uri = new URI(propsString);
+                final URI uri = URLs.uri(propsString);
 
                 final File jarFile = new File(uri.getSchemeSpecificPart());
 

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
 Wed Jan  9 21:24:31 2013
@@ -55,7 +55,7 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.SuperProperties;
 import org.apache.openejb.util.URISupport;
-import org.apache.openejb.util.UniqueDefaultLinkResolver;
+import org.apache.openejb.util.URLs;
 
 import javax.annotation.ManagedBean;
 import javax.ejb.TimerService;
@@ -223,12 +223,12 @@ public class AutoConfig implements Dynam
         }
 
         for (ClientModule clientModule : appModule.getClientModules()) {
-            URI moduleURI = URI.create(clientModule.getModuleId());
+            URI moduleURI = URLs.uri(clientModule.getModuleId());
             processPersistenceRefs(clientModule.getApplicationClient(), 
clientModule, persistenceUnits, moduleURI);
         }
 
         for (WebModule webModule : appModule.getWebModules()) {
-            URI moduleURI = URI.create(webModule.getModuleId());
+            URI moduleURI = URLs.uri(webModule.getModuleId());
             processPersistenceRefs(webModule.getWebApp(), webModule, 
persistenceUnits, moduleURI);
         }
     }
@@ -332,7 +332,7 @@ public class AutoConfig implements Dynam
                     List<String> possibleUnits = new ArrayList<String>();
                     for (PersistenceUnit persistenceUnit : 
persistenceUnits.values()) {
                         try {
-                            URI unitURI = URI.create(persistenceUnit.getId());
+                            URI unitURI = URLs.uri(persistenceUnit.getId());
                             unitURI = URISupport.relativize(moduleURI, 
unitURI);
                             possibleUnits.add(unitURI.toString());
                         } catch (Exception e) {
@@ -579,7 +579,7 @@ public class AutoConfig implements Dynam
         }
 
         for (WebModule webModule : appModule.getWebModules()) {
-            URI moduleUri = URI.create(webModule.getModuleId());
+            URI moduleUri = URLs.uri(webModule.getModuleId());
             for (MessageDestinationRef ref : 
webModule.getWebApp().getMessageDestinationRef()) {
                 String destinationId = resolveDestinationId(ref, moduleUri, 
destinationResolver, destinationTypes);
                 if (destinationId != null) {
@@ -598,7 +598,7 @@ public class AutoConfig implements Dynam
                 continue;
             }
 
-            URI moduleUri = URI.create(ejbModule.getModuleId());
+            URI moduleUri = URLs.uri(ejbModule.getModuleId());
             OpenejbJar openejbJar = ejbModule.getOpenejbJar();
 
             for (EnterpriseBean bean : 
ejbModule.getEjbJar().getEnterpriseBeans()) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 Wed Jan  9 21:24:31 2013
@@ -19,7 +19,34 @@ package org.apache.openejb.config;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.Vendor;
 import org.apache.openejb.api.Proxy;
-import org.apache.openejb.assembler.classic.*;
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.BmpEntityContainerInfo;
+import org.apache.openejb.assembler.classic.ClientInfo;
+import org.apache.openejb.assembler.classic.CmpEntityContainerInfo;
+import org.apache.openejb.assembler.classic.ConnectionManagerInfo;
+import org.apache.openejb.assembler.classic.ConnectorInfo;
+import org.apache.openejb.assembler.classic.ContainerInfo;
+import org.apache.openejb.assembler.classic.ContainerSystemInfo;
+import org.apache.openejb.assembler.classic.DeploymentExceptionManager;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.FacilitiesInfo;
+import org.apache.openejb.assembler.classic.HandlerChainInfo;
+import org.apache.openejb.assembler.classic.HandlerInfo;
+import org.apache.openejb.assembler.classic.JndiContextInfo;
+import org.apache.openejb.assembler.classic.ManagedContainerInfo;
+import org.apache.openejb.assembler.classic.MdbContainerInfo;
+import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
+import org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory;
+import org.apache.openejb.assembler.classic.ProxyFactoryInfo;
+import org.apache.openejb.assembler.classic.ResourceInfo;
+import org.apache.openejb.assembler.classic.SecurityServiceInfo;
+import org.apache.openejb.assembler.classic.ServiceInfo;
+import org.apache.openejb.assembler.classic.SingletonSessionContainerInfo;
+import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
+import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
+import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.component.ClassLoaderEnricher;
 import org.apache.openejb.config.sys.AbstractService;
 import org.apache.openejb.config.sys.AdditionalDeployments;
@@ -630,7 +657,7 @@ public class ConfigurationFactory implem
         //        value = value.replaceFirst("(.)#", "$1%23");
         value = value.replaceFirst("(provider=[^#=&]+)#", "$1%23");
 
-        final URI uri = new URI(value);
+        final URI uri = URLs.uri(value);
 
         return toConfigDeclaration(name, uri);
     }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
 Wed Jan  9 21:24:31 2013
@@ -18,6 +18,7 @@ package org.apache.openejb.config;
 
 import org.apache.openejb.jee.NamedModule;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.URLs;
 
 import java.io.File;
 import java.net.URI;
@@ -84,7 +85,7 @@ public interface DeploymentModule {
         private URI uri(final URI uri, final File location, final String name) 
{
             if (uri != null) return uri;
             if (location != null) return location.toURI();
-            return URI.create(name);
+            return URLs.uri(name);
         }
 
         private File location(final File location, final URI uri) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
 Wed Jan  9 21:24:31 2013
@@ -16,13 +16,6 @@
  */
 package org.apache.openejb.config;
 
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.ContextReferenceInfo;
@@ -65,6 +58,14 @@ import org.apache.openejb.loader.SystemI
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
+import org.apache.openejb.util.URLs;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static org.apache.openejb.assembler.classic.EjbResolver.Scope.EAR;
 import static org.apache.openejb.assembler.classic.EjbResolver.Scope.EJBJAR;
@@ -363,7 +364,7 @@ public class JndiEncInfoBuilder {
             String name = mappedName.substring(5);
 
             if(name.startsWith("ext://")) {
-                final URI uri = URI.create(name);
+                final URI uri = URLs.uri(name);
                 location.jndiProviderId = uri.getHost();
                 location.jndiName = uri.getPath();
             } else {
@@ -393,11 +394,7 @@ public class JndiEncInfoBuilder {
 
         URI moduleUri = null;
         if (moduleId != null) {
-            try {
-                moduleUri = new URI(moduleId);
-            } catch (URISyntaxException e) {
-                throw new OpenEJBException("Illegal moduleId " + moduleId, e);
-            }
+            moduleUri = URLs.uri(moduleId);
         }
 
         EjbResolver ejbResolver = getEjbResolver(moduleId);

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEJBDeploymentFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEJBDeploymentFactory.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEJBDeploymentFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEJBDeploymentFactory.java
 Wed Jan  9 21:24:31 2013
@@ -16,11 +16,12 @@
  */
 package org.apache.openejb.config;
 
+import org.apache.openejb.util.URLs;
+
 import javax.enterprise.deploy.spi.DeploymentManager;
 import 
javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
 import javax.enterprise.deploy.spi.factories.DeploymentFactory;
 import java.net.URI;
-import java.net.URISyntaxException;
 
 /**
  * @version $Rev$ $Date$
@@ -58,12 +59,8 @@ public class OpenEJBDeploymentFactory im
     }
 
     public boolean handlesURI(String uri) {
-        try {
-            URI fullUri = new URI(uri);
-            return 
OpenEJBDeploymentFactory.URI_SCHEME.equals(fullUri.getScheme());
-        } catch (URISyntaxException e) {
-            return false;
-        }
+        final URI fullUri = URLs.uri(uri);
+        return OpenEJBDeploymentFactory.URI_SCHEME.equals(fullUri.getScheme());
     }
 
     public DeploymentManager getDisconnectedDeploymentManager(String uri) 
throws DeploymentManagerCreationException {
@@ -97,17 +94,12 @@ public class OpenEJBDeploymentFactory im
     }
 
     private URI getProtocolUri(String uri) {
-        try {
-            URI fullUri = new URI(uri);
-            if 
(!OpenEJBDeploymentFactory.URI_SCHEME.equals(fullUri.getScheme())) {
-                return null;
-            }
-
-            URI protocolUri = new URI(fullUri.getSchemeSpecificPart());
-            return protocolUri;
-        } catch (URISyntaxException e) {
+        final URI fullUri = URLs.uri(uri);
+        if (!OpenEJBDeploymentFactory.URI_SCHEME.equals(fullUri.getScheme())) {
             return null;
         }
+
+        return URLs.uri(fullUri.getSchemeSpecificPart());
     }
 
 //    public static void main(String[] args) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
 Wed Jan  9 21:24:31 2013
@@ -17,6 +17,7 @@
 package org.apache.openejb.config;
 
 import org.apache.openejb.jee.jpa.unit.Persistence;
+import org.apache.openejb.util.URLs;
 
 import java.io.File;
 import java.net.URI;
@@ -48,7 +49,7 @@ public class PersistenceModule implement
 
     public void setRootUrl(String rootUrl) {
         this.rootUrl = rootUrl;
-        this.uri = URI.create(rootUrl);
+        this.uri = URLs.uri(rootUrl);
     }
 
     public Persistence getPersistence() {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentFactory.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentFactory.java
 Wed Jan  9 21:24:31 2013
@@ -16,11 +16,12 @@
  */
 package org.apache.openejb.config;
 
+import org.apache.openejb.util.URLs;
+
 import javax.enterprise.deploy.spi.DeploymentManager;
 import 
javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
 import javax.enterprise.deploy.spi.factories.DeploymentFactory;
 import java.net.URI;
-import java.net.URISyntaxException;
 
 /**
  * @version $Rev$ $Date$
@@ -37,12 +38,8 @@ public class VmDeploymentFactory impleme
     }
 
     public boolean handlesURI(String uri) {
-        try {
-            URI fullUri = new URI(uri);
-            return URI_SCHEME.equals(fullUri.getScheme());
-        } catch (URISyntaxException e) {
-            return false;
-        }
+        URI fullUri = URLs.uri(uri);
+        return URI_SCHEME.equals(fullUri.getScheme());
     }
 
     public DeploymentManager getDisconnectedDeploymentManager(String uri) 
throws DeploymentManagerCreationException {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java
 Wed Jan  9 21:24:31 2013
@@ -19,6 +19,7 @@ package org.apache.openejb.config;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.core.webservices.JaxWsUtils;
 import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.openejb.jee.HandlerChains;
 import org.apache.openejb.jee.JndiConsumer;
 import org.apache.openejb.jee.PortComponent;
 import org.apache.openejb.jee.ServiceImplBean;
@@ -30,20 +31,18 @@ import org.apache.openejb.jee.SessionTyp
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.jee.WebserviceDescription;
 import org.apache.openejb.jee.Webservices;
-import org.apache.openejb.jee.HandlerChains;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.URLs;
 
+import javax.jws.HandlerChain;
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.extensions.http.HTTPAddress;
 import javax.wsdl.extensions.soap.SOAPAddress;
 import javax.xml.namespace.QName;
-import javax.xml.ws.BindingType;
-import javax.xml.ws.WebServiceProvider;
 import javax.xml.ws.soap.SOAPBinding;
-import javax.jws.HandlerChain;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URI;
@@ -415,11 +414,11 @@ public class WsDeployer implements Dynam
             for (Object element : port.getExtensibilityElements()) {
                 if (element instanceof SOAPAddress) {
                     SOAPAddress soapAddress = (SOAPAddress) element;
-                    URI uri = new URI(soapAddress.getLocationURI());
+                    URI uri = URLs.uri(soapAddress.getLocationURI());
                     return uri.getPath();
                 } else if (element instanceof HTTPAddress) {
                     HTTPAddress httpAddress = (HTTPAddress) element;
-                    URI uri = new URI(httpAddress.getLocationURI());
+                    URI uri = URLs.uri(httpAddress.getLocationURI());
                     return uri.getPath();
                 }
             }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
 Wed Jan  9 21:24:31 2013
@@ -18,19 +18,33 @@ package org.apache.openejb.core.security
 
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.URLs;
 
-import javax.script.*;
+import javax.script.Bindings;
+import javax.script.ScriptContext;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+import javax.script.SimpleScriptContext;
 import javax.security.auth.Subject;
-import javax.security.auth.callback.*;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.net.URI;
 import java.security.Principal;
-import java.util.*;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Scanner;
+import java.util.Set;
 
 public class ScriptLoginModule implements LoginModule {
     private static Logger log = 
Logger.getInstance(LogCategory.OPENEJB_SECURITY, 
"org.apache.openejb.util.resources");
@@ -98,7 +112,7 @@ public class ScriptLoginModule implement
         }
 
         try {
-            final URI uri = URI.create(path);
+            final URI uri = URLs.uri(path);
             final File result = new File(uri);
             if (result.exists()) {
                 return result;

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
 Wed Jan  9 21:24:31 2013
@@ -19,7 +19,7 @@ package org.apache.openejb.core.webservi
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.util.Base64;
-import org.apache.xbean.finder.archive.FileArchive;
+import org.apache.openejb.util.URLs;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -31,6 +31,7 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.net.URLEncoder;
 
 /**
  * Resolves a File, classpath resource, or URL according to the follow rules:
@@ -94,78 +95,74 @@ public class UriResolver {
 
 
     private void tryFileSystem(String baseUriStr, String uriStr) throws 
IOException, MalformedURLException {
-        try {
-            URI relative;
-            File uriFile = new File(uriStr);
-            uriFile = new File(uriFile.getAbsolutePath());
+        URI relative;
+        File uriFile = new File(uriStr);
+        uriFile = new File(uriFile.getAbsolutePath());
 
-            if (uriFile.exists()) {
-                relative = uriFile.toURI();
-            } else {
-                relative = new URI(uriStr.replace(" ", "%20"));
-            }
+        if (uriFile.exists()) {
+            relative = uriFile.toURI();
+        } else {
+            relative = URLs.uri(uriStr.replace(" ", "%20"));
+        }
 
-            if (relative.isAbsolute()) {
-                uri = relative;
-                url = relative.toURL();
+        if (relative.isAbsolute()) {
+            uri = relative;
+            url = relative.toURL();
 
-                try {
-                    HttpURLConnection huc = 
(HttpURLConnection)url.openConnection();
+            try {
+                HttpURLConnection huc = 
(HttpURLConnection)url.openConnection();
 
-                    String host = System.getProperty("http.proxyHost");
-                    if (host != null) {
-                        //comment out unused port to pass pmd check
-                        /*String ports = System.getProperty("http.proxyPort");
-                        int port = 80;
-                        if (ports != null) {
-                            port = Integer.parseInt(ports);
-                        }*/
-
-                        String username = 
System.getProperty("http.proxy.user");
-                        String password = 
System.getProperty("http.proxy.password");
-
-                        if (username != null && password != null) {
-                            String encoded = new 
String(Base64.encodeBase64((username + ":" + password).getBytes()));
-                            huc.setRequestProperty("Proxy-Authorization", 
"Basic " + encoded);
-                        }
+                String host = System.getProperty("http.proxyHost");
+                if (host != null) {
+                    //comment out unused port to pass pmd check
+                    /*String ports = System.getProperty("http.proxyPort");
+                    int port = 80;
+                    if (ports != null) {
+                        port = Integer.parseInt(ports);
+                    }*/
+
+                    String username = System.getProperty("http.proxy.user");
+                    String password = 
System.getProperty("http.proxy.password");
+
+                    if (username != null && password != null) {
+                        String encoded = new 
String(Base64.encodeBase64((username + ":" + password).getBytes()));
+                        huc.setRequestProperty("Proxy-Authorization", "Basic " 
+ encoded);
                     }
-                    is =  huc.getInputStream();
-                } catch (ClassCastException ex) {
-                    is = IO.read(url);
                 }
-            } else if (baseUriStr != null) {
-                URI base;
-                File baseFile = new File(baseUriStr);
+                is =  huc.getInputStream();
+            } catch (ClassCastException ex) {
+                is = IO.read(url);
+            }
+        } else if (baseUriStr != null) {
+            URI base;
+            File baseFile = new File(baseUriStr);
 
-                if (!baseFile.exists() && baseUriStr.startsWith("file:/")) {
-                    baseFile = new File(baseUriStr.substring(6));
-                }
+            if (!baseFile.exists() && baseUriStr.startsWith("file:/")) {
+                baseFile = new File(baseUriStr.substring(6));
+            }
 
-                if (baseFile.exists()) {
-                    base = baseFile.toURI();
-                } else {
-                    base = new URI(baseUriStr);
-                }
+            if (baseFile.exists()) {
+                base = baseFile.toURI();
+            } else {
+                base = URLs.uri(baseUriStr);
+            }
 
-                base = base.resolve(relative);
-                if (base.isAbsolute()) {
-                    try {
-                        baseFile = new File(base);
-                        if (baseFile.exists()) {
-                            is = IO.read(base.toURL());
-                            uri = base;
-                        } else {
-                            tryClasspath(base.toString().startsWith("file:")
-                                         ? base.toString().substring(5) : 
base.toString());
-                        }
-                    } catch (Throwable th) {
+            base = base.resolve(relative);
+            if (base.isAbsolute()) {
+                try {
+                    baseFile = new File(base);
+                    if (baseFile.exists()) {
+                        is = IO.read(base.toURL());
+                        uri = base;
+                    } else {
                         tryClasspath(base.toString().startsWith("file:")
                                      ? base.toString().substring(5) : 
base.toString());
                     }
+                } catch (Throwable th) {
+                    tryClasspath(base.toString().startsWith("file:")
+                                 ? base.toString().substring(5) : 
base.toString());
                 }
             }
-        } catch (URISyntaxException e) {
-            // do nothing
         }
 
         if (uri != null && "file".equals(uri.getScheme())) {
@@ -200,19 +197,15 @@ public class UriResolver {
 
         String jarBase = baseStr.substring(0, i + 1);
         String jarEntry = baseStr.substring(i + 1);
-        try {
-            URI u = new URI(jarEntry).resolve(uriStr);
+        URI u = URLs.uri(jarEntry).resolve(uriStr);
 
-            tryJar(jarBase + u.toString());
+        tryJar(jarBase + u.toString());
 
-            if (is != null) {
-                if (u.isAbsolute()) {
-                    url = u.toURL();
-                }
-                return;
+        if (is != null) {
+            if (u.isAbsolute()) {
+                url = u.toURL();
             }
-        } catch (URISyntaxException e) {
-            // do nothing
+            return;
         }
 
         tryFileSystem("", uriStr);
@@ -254,11 +247,7 @@ public class UriResolver {
                 if (urlStr.startsWith("jar:")) {
                     int pos = urlStr.indexOf('!');
                     if (pos != -1) {
-                        try {
-                            uri = new URI("classpath:" + urlStr.substring(pos 
+ 1));
-                        } catch (URISyntaxException ue) {
-                            // ignore
-                        }
+                        uri = URLs.uri("classpath:" + urlStr.substring(pos + 
1));
                     }
                 }
 
@@ -269,13 +258,11 @@ public class UriResolver {
 
     private void tryRemote(String uriStr) throws IOException {
         try {
-            url = new URL(uriStr);
-            uri = new URI(url.toString());
+            url = new URL(URLEncoder.encode(uriStr, "UTF-8"));
+            uri = URLs.uri(url.toString());
             is = IO.read(url);
         } catch (MalformedURLException e) {
             // do nothing
-        } catch (URISyntaxException e) {
-            // do nothing
         }
     }
 

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
 Wed Jan  9 21:24:31 2013
@@ -17,6 +17,7 @@
 package org.apache.openejb.persistence;
 
 
+import org.apache.openejb.util.URLs;
 import org.apache.openejb.util.classloader.URLClassLoaderFirst;
 
 import javax.persistence.SharedCacheMode;
@@ -220,7 +221,7 @@ public class PersistenceUnitInfoImpl imp
     public void setRootUrlAndJarUrls(String persistenceUnitRootUrl, 
List<String> jarFiles) throws MalformedURLException {
         File root;
         try{
-            final URI rootUri = URI.create(persistenceUnitRootUrl);
+            final URI rootUri = URLs.uri(persistenceUnitRootUrl);
             root = new File(rootUri);
         } catch (IllegalArgumentException e) {
             root = new File(persistenceUnitRootUrl);

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
 Wed Jan  9 21:24:31 2013
@@ -24,6 +24,7 @@ import org.apache.activemq.store.memory.
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.URLs;
 
 import javax.naming.Context;
 import javax.naming.NamingException;
@@ -57,7 +58,7 @@ public class ActiveMQ5Factory implements
         if (null == broker || !broker.isStarted()) {
 
             final Properties properties = getLowerCaseProperties();
-            final URI uri = new URI(brokerURI.getRawSchemeSpecificPart());
+            final URI uri = URLs.uri(brokerURI.getRawSchemeSpecificPart());
             broker = BrokerFactory.createBroker(uri);
             brokers.put(brokerURI, broker);
 

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
 Wed Jan  9 21:24:31 2013
@@ -20,11 +20,11 @@ import org.apache.activemq.broker.Broker
 import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.URISupport;
+import org.apache.openejb.util.URLs;
 
 import javax.resource.spi.BootstrapContext;
 import javax.resource.spi.ResourceAdapterInternalException;
 import java.lang.reflect.Method;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collection;
 import java.util.Iterator;
@@ -96,7 +96,7 @@ public class ActiveMQResourceAdapter ext
 
                 if (brokerXmlConfig.startsWith("broker:")) {
 
-                    final URISupport.CompositeData compositeData = 
URISupport.parseComposite(new URI(brokerXmlConfig));
+                    final URISupport.CompositeData compositeData = 
URISupport.parseComposite(URLs.uri(brokerXmlConfig));
 
                     if 
(!compositeData.getParameters().containsKey("persistent")) {
                         //Override default - Which is 'true'
@@ -123,7 +123,7 @@ public class ActiveMQResourceAdapter ext
         try {
             //The returned broker should be started, but calling start is 
harmless.
             //We do not need to track the instance as the factory takes care 
of this.
-            
ActiveMQFactory.createBroker(URI.create(getBrokerXmlConfig())).start();
+            
ActiveMQFactory.createBroker(URLs.uri(getBrokerXmlConfig())).start();
         } catch (Exception e) {
             
org.apache.openejb.util.Logger.getInstance(LogCategory.OPENEJB_STARTUP, 
ActiveMQResourceAdapter.class).getChildLogger("service").fatal("Failed to start 
ActiveMQ", e);
         } finally {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/IntrospectionSupport.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/IntrospectionSupport.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/IntrospectionSupport.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/IntrospectionSupport.java
 Wed Jan  9 21:24:31 2013
@@ -29,8 +29,8 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.Set;
 import java.util.Map.Entry;
+import java.util.Set;
 
 public class IntrospectionSupport {
     
@@ -171,7 +171,7 @@ public class IntrospectionSupport {
             return editor.getValue();
         }
         if (type == URI.class) {
-            return new URI(value.toString());
+            return URLs.uri(value.toString());
         }
         return null;
     }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java
 Wed Jan  9 21:24:31 2013
@@ -16,8 +16,6 @@
  */
 package org.apache.openejb.util;
 
-import org.apache.xbean.finder.archive.FileArchive;
-
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -31,7 +29,7 @@ public class LinkResolver<E> {
     private final Map<String, Collection<E>> byShortName = new TreeMap<String, 
Collection<E>>();
 
     public boolean add(String modulePackageName, String name, E value) {
-        return add(URI.create(modulePackageName), name, value);
+        return add(URLs.uri(modulePackageName), name, value);
     }
 
     public boolean add(URI moduleURI, String name, E value) {
@@ -71,7 +69,7 @@ public class LinkResolver<E> {
     }
 
     public E resolveLink(String link, String modulePackageName) {
-        URI moduleURI = URI.create(modulePackageName);
+        URI moduleURI = URLs.uri(modulePackageName);
         return resolveLink(link, moduleURI);
     }
 

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java
 Wed Jan  9 21:24:31 2013
@@ -146,7 +146,7 @@ public class URISupport {
                 sb.append("#");
                 sb.append(fragment);
             }
-            return new URI(sb.toString());
+            return URLs.uri(sb.toString());
         }
     }
 
@@ -286,7 +286,7 @@ public class URISupport {
     }
 
     public static URI stripScheme(URI uri) throws URISyntaxException {
-        return new URI(stripPrefix(uri.getRawSchemeSpecificPart().trim(), 
"//"));
+        return URLs.uri(stripPrefix(uri.getRawSchemeSpecificPart().trim(), 
"//"));
     }
 
     public static String createQueryString(Map options) throws 
URISyntaxException {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java
 Wed Jan  9 21:24:31 2013
@@ -21,8 +21,11 @@ import static org.apache.openejb.loader.
 
 import java.io.File;
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
+import java.net.URLEncoder;
 
 import org.apache.xbean.finder.UrlSet;
 
@@ -104,5 +107,13 @@ public class URLs {
         return urls;
     }
 
+    public static URI uri(final String uri) {
+        try {
+            return URI.create(URLEncoder.encode(uri, "UTF-8"));
+        } catch (UnsupportedEncodingException e) {
+            return URI.create(URLEncoder.encode(uri)); // will not occur 
normally
+        }
+    }
+
     private URLs() { }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java?rev=1431091&r1=1431090&r2=1431091&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
 Wed Jan  9 21:24:31 2013
@@ -54,6 +54,7 @@ import org.apache.openejb.persistence.Jt
 import org.apache.openejb.persistence.JtaEntityManagerRegistry;
 import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.Contexts;
+import org.apache.openejb.util.URLs;
 import org.apache.tomee.common.EjbFactory;
 import org.apache.tomee.common.EnumFactory;
 import org.apache.tomee.common.LookupFactory;
@@ -80,7 +81,6 @@ import javax.transaction.TransactionSync
 import javax.transaction.UserTransaction;
 import java.net.MalformedURLException;
 import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -135,14 +135,8 @@ public class TomcatJndiBuilder {
 
     public void mergeJndi() throws OpenEJBException {
 
-        NamingResources naming = standardContext.getNamingResources();
-
-        URI moduleUri;
-        try {
-            moduleUri = new URI(webAppInfo.moduleId);
-        } catch (URISyntaxException e) {
-            throw new OpenEJBException(e);
-        }
+        final NamingResources naming = standardContext.getNamingResources();
+        final URI moduleUri = URLs.uri(webAppInfo.moduleId);
 
         for (EnvEntryInfo ref : webAppInfo.jndiEnc.envEntries) {
             mergeRef(naming, ref);


Reply via email to