http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
----------------------------------------------------------------------
diff --git 
a/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
 
b/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
index e4a71f5..9515459 100644
--- 
a/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
+++ 
b/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
@@ -1,169 +1,169 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.openejb.tck.impl;
-
-import org.apache.openejb.assembler.Deployer;
-import org.apache.openejb.assembler.classic.AppInfo;
-import org.apache.openejb.client.RemoteInitialContextFactory;
-import org.apache.openejb.config.RemoteServer;
-import org.apache.openejb.config.ValidationException;
-import org.apache.openejb.loader.Options;
-import org.apache.openejb.tck.OpenEJBTCKRuntimeException;
-import org.apache.openejb.tck.util.ServerLocal;
-import org.jboss.testharness.api.DeploymentException;
-import org.jboss.testharness.spi.Containers;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Properties;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ContainersImplTomEE extends AbstractContainers implements 
Containers {
-    private static int count = 0;
-    private final RemoteServer server;
-    private Deployer deployer = null;
-    private Exception exception;
-    private AppInfo appInfo;
-    private File currentFile = null;
-    private final int port = ServerLocal.getPort(8080);
-
-    private Deployer lookup() {
-        final Options options = new Options(System.getProperties());
-        final Properties props = new Properties();
-        props.put(Context.INITIAL_CONTEXT_FACTORY, 
RemoteInitialContextFactory.class.getName());
-        props.put(Context.PROVIDER_URL, options.get(Context.PROVIDER_URL, 
"http://localhost:"; + port + "/tomee/ejb"));
-
-        final String deployerJndi = 
System.getProperty("openejb.deployer.jndiname", 
"openejb/DeployerBusinessRemote");
-
-        try {
-            final InitialContext context = new InitialContext(props);
-            return (Deployer) context.lookup(deployerJndi);
-        } catch (final Exception e) {
-            throw new OpenEJBTCKRuntimeException(e);
-        }
-    }
-
-    public ContainersImplTomEE() {
-        System.out.println("ContainersImpl=" + 
ContainersImplTomEE.class.getName());
-        System.out.println("Initialized ContainersImplTomEE " + (++count));
-        server = new RemoteServer();
-        server.setPortStartup(this.port);
-    }
-
-    @Override
-    public boolean deploy(final InputStream archive, final String name) throws 
IOException {
-        exception = null;
-        appInfo = null;
-
-        System.out.println("Deploying " + archive + " with name " + name);
-
-        currentFile = getFile(name);
-        System.out.println(currentFile);
-        writeToFile(currentFile, archive);
-        try {
-            if (deployer == null) {
-                deployer = lookup();
-            }
-            appInfo = deployer.deploy(currentFile.getAbsolutePath());
-        } catch (final Exception ex) {
-            Exception e = ex;
-            if (e.getCause() instanceof ValidationException) {
-                e = (Exception) e.getCause();
-            }
-
-            if (name.contains(".broken.")) {
-                // Tests that contain the name '.broken.' are expected to fail 
deployment
-                // This is how the TCK verifies the container is doing the 
required error checking
-                exception = (DeploymentException) new 
DeploymentException("deploy failed").initCause(e);
-            } else {
-                // This on the other hand is not good ....
-                System.out.println("FIX Deployment of " + name);
-                e.printStackTrace();
-                exception = e;
-            }
-
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public DeploymentException getDeploymentException() {
-        try {
-            return (DeploymentException) exception;
-        } catch (final Exception e) {
-            System.out.println("BADCAST");
-            return new DeploymentException("", exception);
-        }
-    }
-
-    @Override
-    public void undeploy(final String name) throws IOException {
-        if (appInfo == null) {
-            if (!(exception instanceof DeploymentException)) {
-                System.out.println("Nothing to undeploy" + name);
-            }
-            return;
-        }
-
-        System.out.println("Undeploying " + name);
-        try {
-            deployer.undeploy(appInfo.path);
-        } catch (final Exception e) {
-            e.printStackTrace();
-            throw new OpenEJBTCKRuntimeException(e);
-        }
-
-        final File toDelete;
-        if (currentFile != null && (toDelete = 
currentFile.getParentFile()).exists()) {
-            System.out.println("deleting " + toDelete.getAbsolutePath());
-            delete(toDelete);
-        }
-    }
-
-    protected File getFile(final String name) {
-        final File dir = new File(tmpDir, Math.random() + "");
-        if (!dir.exists() && !dir.mkdir()) {
-            throw new RuntimeException("Failed to create directory: " + dir);
-        }
-        dir.deleteOnExit();
-        return new File(dir, name);
-    }
-
-    @Override
-    public void setup() throws IOException {
-        System.out.println("Setup called");
-        try {
-            
server.start(Arrays.asList("-Dopenejb.classloader.forced-load=org.apache.openejb.tck"),
 "start", true);
-        } catch (final Exception e) {
-            cleanup();
-            e.printStackTrace();
-        }
-    }
-
-    @Override
-    public void cleanup() throws IOException {
-        System.out.println("Cleanup called");
-        server.destroy();
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.tck.impl;
+
+import org.apache.openejb.assembler.Deployer;
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.client.RemoteInitialContextFactory;
+import org.apache.openejb.config.RemoteServer;
+import org.apache.openejb.config.ValidationException;
+import org.apache.openejb.loader.Options;
+import org.apache.openejb.tck.OpenEJBTCKRuntimeException;
+import org.apache.openejb.tck.util.ServerLocal;
+import org.jboss.testharness.api.DeploymentException;
+import org.jboss.testharness.spi.Containers;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Properties;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ContainersImplTomEE extends AbstractContainers implements 
Containers {
+    private static int count = 0;
+    private final RemoteServer server;
+    private Deployer deployer = null;
+    private Exception exception;
+    private AppInfo appInfo;
+    private File currentFile = null;
+    private final int port = ServerLocal.getPort(8080);
+
+    private Deployer lookup() {
+        final Options options = new Options(System.getProperties());
+        final Properties props = new Properties();
+        props.put(Context.INITIAL_CONTEXT_FACTORY, 
RemoteInitialContextFactory.class.getName());
+        props.put(Context.PROVIDER_URL, options.get(Context.PROVIDER_URL, 
"http://localhost:"; + port + "/tomee/ejb"));
+
+        final String deployerJndi = 
System.getProperty("openejb.deployer.jndiname", 
"openejb/DeployerBusinessRemote");
+
+        try {
+            final InitialContext context = new InitialContext(props);
+            return (Deployer) context.lookup(deployerJndi);
+        } catch (final Exception e) {
+            throw new OpenEJBTCKRuntimeException(e);
+        }
+    }
+
+    public ContainersImplTomEE() {
+        System.out.println("ContainersImpl=" + 
ContainersImplTomEE.class.getName());
+        System.out.println("Initialized ContainersImplTomEE " + (++count));
+        server = new RemoteServer();
+        server.setPortStartup(this.port);
+    }
+
+    @Override
+    public boolean deploy(final InputStream archive, final String name) throws 
IOException {
+        exception = null;
+        appInfo = null;
+
+        System.out.println("Deploying " + archive + " with name " + name);
+
+        currentFile = getFile(name);
+        System.out.println(currentFile);
+        writeToFile(currentFile, archive);
+        try {
+            if (deployer == null) {
+                deployer = lookup();
+            }
+            appInfo = deployer.deploy(currentFile.getAbsolutePath());
+        } catch (final Exception ex) {
+            Exception e = ex;
+            if (e.getCause() instanceof ValidationException) {
+                e = (Exception) e.getCause();
+            }
+
+            if (name.contains(".broken.")) {
+                // Tests that contain the name '.broken.' are expected to fail 
deployment
+                // This is how the TCK verifies the container is doing the 
required error checking
+                exception = (DeploymentException) new 
DeploymentException("deploy failed").initCause(e);
+            } else {
+                // This on the other hand is not good ....
+                System.out.println("FIX Deployment of " + name);
+                e.printStackTrace();
+                exception = e;
+            }
+
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public DeploymentException getDeploymentException() {
+        try {
+            return (DeploymentException) exception;
+        } catch (final Exception e) {
+            System.out.println("BADCAST");
+            return new DeploymentException("", exception);
+        }
+    }
+
+    @Override
+    public void undeploy(final String name) throws IOException {
+        if (appInfo == null) {
+            if (!(exception instanceof DeploymentException)) {
+                System.out.println("Nothing to undeploy" + name);
+            }
+            return;
+        }
+
+        System.out.println("Undeploying " + name);
+        try {
+            deployer.undeploy(appInfo.path);
+        } catch (final Exception e) {
+            e.printStackTrace();
+            throw new OpenEJBTCKRuntimeException(e);
+        }
+
+        final File toDelete;
+        if (currentFile != null && (toDelete = 
currentFile.getParentFile()).exists()) {
+            System.out.println("deleting " + toDelete.getAbsolutePath());
+            delete(toDelete);
+        }
+    }
+
+    protected File getFile(final String name) {
+        final File dir = new File(tmpDir, Math.random() + "");
+        if (!dir.exists() && !dir.mkdir()) {
+            throw new RuntimeException("Failed to create directory: " + dir);
+        }
+        dir.deleteOnExit();
+        return new File(dir, name);
+    }
+
+    @Override
+    public void setup() throws IOException {
+        System.out.println("Setup called");
+        try {
+            
server.start(Arrays.asList("-Dopenejb.classloader.forced-load=org.apache.openejb.tck"),
 "start", true);
+        } catch (final Exception e) {
+            cleanup();
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void cleanup() throws IOException {
+        System.out.println("Cleanup called");
+        server.destroy();
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
----------------------------------------------------------------------
diff --git 
a/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
 
b/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
index f4d5cd1..7dab768 100644
--- 
a/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
+++ 
b/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
@@ -1,137 +1,137 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.openejb.tck.impl;
-
-import org.apache.openejb.client.RemoteInitialContextFactory;
-import org.apache.openejb.config.RemoteServer;
-import org.apache.openejb.loader.Options;
-import org.apache.openejb.tck.OpenEJBTCKRuntimeException;
-import org.apache.openejb.tck.util.ServerLocal;
-import org.apache.tomee.catalina.facade.ExceptionManagerFacade;
-import org.jboss.testharness.api.DeploymentException;
-import org.jboss.testharness.spi.Containers;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-/**
- * flow:
- * - copy file
- * - start the server
- * - stop the server
- * - remove the file
- */
-public class FullRestartContainer extends AbstractContainers implements 
Containers {
-    private static final File WEBAPP_DIR = new 
File(System.getProperty("openejb.home"), "webapps/");
-    private static final File APPS_DIR = new 
File(System.getProperty("openejb.home"), "apps/");
-
-    private RemoteServer server;
-    private Exception exception;
-    private File currentFile;
-
-    public FullRestartContainer() {
-        System.out.println("ContainersImpl=" + 
FullRestartContainer.class.getName());
-    }
-
-    @Override
-    public DeploymentException getDeploymentException() {
-        if (exception instanceof DeploymentException) {
-            return (DeploymentException) exception;
-        }
-        System.out.println("BADCAST");
-        return new DeploymentException("", exception);
-    }
-
-    @Override
-    public boolean deploy(final InputStream archive, final String name) throws 
IOException {
-        if (name.endsWith("war")) {
-            currentFile = new File(WEBAPP_DIR, name);
-        } else {
-            currentFile = new File(APPS_DIR, name);
-        }
-
-        System.out.println(currentFile);
-        writeToFile(currentFile, archive);
-
-        final int port = ServerLocal.getPort(-1);
-        if (port > 0) {
-            server = new RemoteServer(100, true);
-            server.setPortStartup(port);
-        } else {
-            throw new OpenEJBTCKRuntimeException("Please set the tomee port 
using the system property 'server.http.port'");
-        }
-
-        try {
-            server.start();
-        } catch (final Exception e) {
-            server.destroy();
-            e.printStackTrace();
-            throw new RuntimeException(e);
-        }
-
-        return (exception = lookup().exception()) == null;
-    }
-
-    @Override
-    public void undeploy(final String name) throws IOException {
-
-        if (null != server) {
-            server.destroy();
-        }
-
-        final File folder = new File(currentFile.getParentFile(), 
currentFile.getName().substring(0, currentFile.getName().length() - 4));
-        if (folder.exists()) {
-            delete(folder);
-        }
-        delete(currentFile);
-    }
-
-    @Override
-    public void setup() throws IOException {
-        // no-op
-    }
-
-    @Override
-    public void cleanup() throws IOException {
-        // no-op
-    }
-
-    private ExceptionManagerFacade lookup() {
-        final Options options = new Options(System.getProperties());
-        final Properties props = new Properties();
-        props.put(Context.INITIAL_CONTEXT_FACTORY, 
RemoteInitialContextFactory.class.getName());
-        final int port = ServerLocal.getPort(-1);
-        if (port > 0) {
-            System.out.println("provider url = " + "http://localhost:"; + port 
+ "/tomee/ejb");
-            props.put(Context.PROVIDER_URL, options.get(Context.PROVIDER_URL, 
"http://localhost:"; + port + "/tomee/ejb"));
-        } else {
-            throw new OpenEJBTCKRuntimeException("Please set the tomee port 
using the system property 'server.http.port'");
-        }
-
-        try {
-            final InitialContext context = new InitialContext(props);
-            return (ExceptionManagerFacade) 
context.lookup("openejb/ExceptionManagerFacadeBusinessRemote");
-        } catch (final Exception e) {
-            throw new OpenEJBTCKRuntimeException(e);
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.tck.impl;
+
+import org.apache.openejb.client.RemoteInitialContextFactory;
+import org.apache.openejb.config.RemoteServer;
+import org.apache.openejb.loader.Options;
+import org.apache.openejb.tck.OpenEJBTCKRuntimeException;
+import org.apache.openejb.tck.util.ServerLocal;
+import org.apache.tomee.catalina.facade.ExceptionManagerFacade;
+import org.jboss.testharness.api.DeploymentException;
+import org.jboss.testharness.spi.Containers;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+/**
+ * flow:
+ * - copy file
+ * - start the server
+ * - stop the server
+ * - remove the file
+ */
+public class FullRestartContainer extends AbstractContainers implements 
Containers {
+    private static final File WEBAPP_DIR = new 
File(System.getProperty("openejb.home"), "webapps/");
+    private static final File APPS_DIR = new 
File(System.getProperty("openejb.home"), "apps/");
+
+    private RemoteServer server;
+    private Exception exception;
+    private File currentFile;
+
+    public FullRestartContainer() {
+        System.out.println("ContainersImpl=" + 
FullRestartContainer.class.getName());
+    }
+
+    @Override
+    public DeploymentException getDeploymentException() {
+        if (exception instanceof DeploymentException) {
+            return (DeploymentException) exception;
+        }
+        System.out.println("BADCAST");
+        return new DeploymentException("", exception);
+    }
+
+    @Override
+    public boolean deploy(final InputStream archive, final String name) throws 
IOException {
+        if (name.endsWith("war")) {
+            currentFile = new File(WEBAPP_DIR, name);
+        } else {
+            currentFile = new File(APPS_DIR, name);
+        }
+
+        System.out.println(currentFile);
+        writeToFile(currentFile, archive);
+
+        final int port = ServerLocal.getPort(-1);
+        if (port > 0) {
+            server = new RemoteServer(100, true);
+            server.setPortStartup(port);
+        } else {
+            throw new OpenEJBTCKRuntimeException("Please set the tomee port 
using the system property 'server.http.port'");
+        }
+
+        try {
+            server.start();
+        } catch (final Exception e) {
+            server.destroy();
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+
+        return (exception = lookup().exception()) == null;
+    }
+
+    @Override
+    public void undeploy(final String name) throws IOException {
+
+        if (null != server) {
+            server.destroy();
+        }
+
+        final File folder = new File(currentFile.getParentFile(), 
currentFile.getName().substring(0, currentFile.getName().length() - 4));
+        if (folder.exists()) {
+            delete(folder);
+        }
+        delete(currentFile);
+    }
+
+    @Override
+    public void setup() throws IOException {
+        // no-op
+    }
+
+    @Override
+    public void cleanup() throws IOException {
+        // no-op
+    }
+
+    private ExceptionManagerFacade lookup() {
+        final Options options = new Options(System.getProperties());
+        final Properties props = new Properties();
+        props.put(Context.INITIAL_CONTEXT_FACTORY, 
RemoteInitialContextFactory.class.getName());
+        final int port = ServerLocal.getPort(-1);
+        if (port > 0) {
+            System.out.println("provider url = " + "http://localhost:"; + port 
+ "/tomee/ejb");
+            props.put(Context.PROVIDER_URL, options.get(Context.PROVIDER_URL, 
"http://localhost:"; + port + "/tomee/ejb"));
+        } else {
+            throw new OpenEJBTCKRuntimeException("Please set the tomee port 
using the system property 'server.http.port'");
+        }
+
+        try {
+            final InitialContext context = new InitialContext(props);
+            return (ExceptionManagerFacade) 
context.lookup("openejb/ExceptionManagerFacadeBusinessRemote");
+        } catch (final Exception e) {
+            throw new OpenEJBTCKRuntimeException(e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tomee/apache-tomee/src/main/resources/service.bat
----------------------------------------------------------------------
diff --git a/tomee/apache-tomee/src/main/resources/service.bat 
b/tomee/apache-tomee/src/main/resources/service.bat
index b061f3f..457b4c0 100644
--- a/tomee/apache-tomee/src/main/resources/service.bat
+++ b/tomee/apache-tomee/src/main/resources/service.bat
@@ -1,226 +1,226 @@
-@echo off
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements.  See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License.  You may obtain a copy of the License at
-rem
-rem     http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-
-rem The following line can be used to define a specific jre or jdk path
-rem set "JAVA_HOME=C:/JDK"
-
-REM Prefer a local JRE if we find one in the current bin directory
-IF EXIST "%~dp0jre" (
-  SET "JRE_HOME=%~dp0jre"
-) 
-
-REM Prefer a local JDK if we find one in the current bin directory
-IF EXIST "%~dp0jdk" (
-  SET "JAVA_HOME=%~dp0jdk"
-)
-
-@IF NOT "%ECHO%" == ""  ECHO %ECHO%
-@IF "%OS%" == "Windows_NT" setlocal
-
-IF "%OS%" == "Windows_NT" (
-  SET "DIRNAME=%~dp0%"
-) ELSE (
-  SET DIRNAME=.\
-)
-
-pushd %DIRNAME%
-
-rem ---------------------------------------------------------------------------
-rem NT Service Install/Uninstall script
-rem
-rem Options
-rem install                Install the service using TomEE as service name.
-rem                        Service is installed using default settings.
-rem remove                 Remove the service from the System.
-rem
-rem name        (optional) If the second argument is present it is considered
-rem                        to be new service name
-rem
-rem $Id: service.bat 1000718 2010-09-24 06:00:00Z mturk $
-rem ---------------------------------------------------------------------------
-
-SET proc=undefined
-
-IF /i %PROCESSOR_ARCHITECTURE% EQU X86 SET "proc=%~dp0TomEE.x86.exe"
-IF /i %PROCESSOR_ARCHITECTURE% EQU AMD64 SET "proc=%~dp0TomEE.amd64.exe"
-IF /i %PROCESSOR_ARCHITECTURE% EQU IA64 SET "proc=%~dp0TomEE.ia64.exe"
-
-IF /i "%proc%" EQU undefined (
-       ECHO Failed to determine OS architecture
-       GOTO end
-)
-
-set "SELF=%~dp0%service.bat"
-rem Guess CATALINA_HOME if not defined
-set "CURRENT_DIR=%cd%"
-if not "%CATALINA_HOME%" == "" goto gotHome
-set "CATALINA_HOME=%cd%"
-if exist "%CATALINA_HOME%\bin\service.bat" goto okHome
-rem CD to the upper dir
-cd ..
-set "CATALINA_HOME=%cd%"
-:gotHome
-if exist "%CATALINA_HOME%\bin\service.bat" goto okHome
-echo The service exe was not found...
-echo The CATALINA_HOME environment variable is not defined correctly.
-echo This environment variable is needed to run this program
-goto end
-:okHome
-rem Make sure prerequisite environment variables are set
-if not "%JAVA_HOME%" == "" goto gotJdkHome
-if not "%JRE_HOME%" == "" goto gotJreHome
-echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
-echo Service will try to guess them from the registry.
-goto okJavaHome
-:gotJreHome
-if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome
-if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome
-goto okJavaHome
-:gotJdkHome
-if not exist "%JAVA_HOME%\jre\bin\java.exe" goto noJavaHome
-if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome
-if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
-if not "%JRE_HOME%" == "" goto okJavaHome
-set "JRE_HOME=%JAVA_HOME%\jre"
-goto okJavaHome
-:noJavaHome
-echo The JAVA_HOME environment variable is not defined correctly
-echo This environment variable is needed to run this program
-echo NB: JAVA_HOME should point to a JDK not a JRE
-goto end
-:okJavaHome
-if not "%CATALINA_BASE%" == "" goto gotBase
-set "CATALINA_BASE=%CATALINA_HOME%"
-:gotBase
-
-set "EXECUTABLE=%proc%"
-
-rem Set default Service name (If you change this then rename also TomEE.exe to 
the same name)
-set SERVICE_NAME=TomEE
-set PR_DISPLAYNAME=Apache TomEE
-
-if "x%1x" == "xx" goto displayUsage
-set SERVICE_CMD=%1
-shift
-if "x%1x" == "xx" goto checkServiceCmd
-:checkUser
-if "x%1x" == "x/userx" goto runAsUser
-if "x%1x" == "x--userx" goto runAsUser
-set SERVICE_NAME=%1
-set PR_DISPLAYNAME=Apache TomEE (%1)
-shift
-if "x%1x" == "xx" goto checkServiceCmd
-goto checkUser
-:runAsUser
-shift
-if "x%1x" == "xx" goto displayUsage
-set SERVICE_USER=%1
-shift
-runas /env /savecred /user:%SERVICE_USER% "%COMSPEC% /K \"%SELF%\" 
%SERVICE_CMD% %SERVICE_NAME%"
-goto end
-:checkServiceCmd
-if /i %SERVICE_CMD% == install goto doInstall
-if /i %SERVICE_CMD% == remove goto doRemove
-if /i %SERVICE_CMD% == uninstall goto doRemove
-echo Unknown parameter "%1"
-:displayUsage
-echo.
-echo Usage: service.bat install/remove [service_name] [/user username]
-goto end
-
-:doRemove
-rem Remove the service
-"%EXECUTABLE%" //DS//%SERVICE_NAME%
-if not errorlevel 1 goto removed
-echo Failed removing '%SERVICE_NAME%' service
-goto end
-:removed
-echo The service '%SERVICE_NAME%' has been removed
-goto end
-
-:doInstall
-rem Install the service
-echo Installing the service '%SERVICE_NAME%' ...
-echo Using CATALINA_HOME:    "%CATALINA_HOME%"
-echo Using CATALINA_BASE:    "%CATALINA_BASE%"
-echo Using JAVA_HOME:        "%JAVA_HOME%"
-echo Using JRE_HOME:         "%JRE_HOME%"
-
-rem Use the environment variables as an example
-rem Each command line option is prefixed with PR_
-
-set "PR_DESCRIPTION=Apache TomEE - http://tomee.apache.org/";
-set "PR_INSTALL=%EXECUTABLE%"
-set "PR_LOGPATH=%CATALINA_BASE%\logs"
-set 
"PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;%CATALINA_HOME%\bin\tomcat-juli.jar"
-rem Set the server jvm from JAVA_HOME
-set "PR_JVM=%JRE_HOME%\bin\server\jvm.dll"
-if exist "%PR_JVM%" goto foundJvm
-rem Set the client jvm from JAVA_HOME
-set "PR_JVM=%JRE_HOME%\bin\client\jvm.dll"
-if exist "%PR_JVM%" goto foundJvm
-set PR_JVM=auto
-:foundJvm
-echo Using JVM:              "%PR_JVM%"
-
-"%EXECUTABLE%" //IS//%SERVICE_NAME% ^
-    --DisplayName=%SERVICE_NAME% ^
-    --StartClass org.apache.catalina.startup.Bootstrap ^
-    --StopClass org.apache.catalina.startup.Bootstrap ^
-    --StartParams start ^
-    --StopParams stop ^
-    --Startup auto ^
-    --JvmMs=512 ^
-    --JvmMx=1024 ^
-    --JvmSs=2048 ^
-    --StartMode jvm ^
-    --StopMode jvm ^
-    --LogLevel Info ^
-    --LogPrefix TomEE
-    
-echo Installed, will now configure TomEE
-    
-if not errorlevel 1 goto installed
-echo Failed installing '%SERVICE_NAME%' service
-goto end
-
-:installed
-rem Clear the environment variables. They are not needed any more.
-set PR_DISPLAYNAME=
-set PR_DESCRIPTION=
-set PR_INSTALL=
-set PR_LOGPATH=
-set PR_CLASSPATH=
-set PR_JVM=
-
-rem Set extra parameters
-"%EXECUTABLE%" //US//%SERVICE_NAME% ^
-       ++JvmOptions 
"-javaagent:%CATALINA_HOME%\lib\openejb-javaagent.jar;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed"
-
-rem More extra parameters
-set "PR_LOGPATH=%CATALINA_BASE%\logs"
-set PR_STDOUTPUT=auto
-set PR_STDERROR=auto
-
-rem before this option was added: 
"++JvmOptions=-Djava.library.path="%CATALINA_BASE%\bin" ^"
-rem the drawback was it was preventing custom native lib to be loaded even if 
added to Path
-"%EXECUTABLE%" //US//%SERVICE_NAME% ^
-       ++JvmOptions 
"-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-Djava.awt.headless=true;-XX:+UseParallelGC;-XX:MaxPermSize=256M"
-
-echo The service '%SERVICE_NAME%' has been installed.
-
-:end
-cd "%CURRENT_DIR%"
+@echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+rem The following line can be used to define a specific jre or jdk path
+rem set "JAVA_HOME=C:/JDK"
+
+REM Prefer a local JRE if we find one in the current bin directory
+IF EXIST "%~dp0jre" (
+  SET "JRE_HOME=%~dp0jre"
+) 
+
+REM Prefer a local JDK if we find one in the current bin directory
+IF EXIST "%~dp0jdk" (
+  SET "JAVA_HOME=%~dp0jdk"
+)
+
+@IF NOT "%ECHO%" == ""  ECHO %ECHO%
+@IF "%OS%" == "Windows_NT" setlocal
+
+IF "%OS%" == "Windows_NT" (
+  SET "DIRNAME=%~dp0%"
+) ELSE (
+  SET DIRNAME=.\
+)
+
+pushd %DIRNAME%
+
+rem ---------------------------------------------------------------------------
+rem NT Service Install/Uninstall script
+rem
+rem Options
+rem install                Install the service using TomEE as service name.
+rem                        Service is installed using default settings.
+rem remove                 Remove the service from the System.
+rem
+rem name        (optional) If the second argument is present it is considered
+rem                        to be new service name
+rem
+rem $Id: service.bat 1000718 2010-09-24 06:00:00Z mturk $
+rem ---------------------------------------------------------------------------
+
+SET proc=undefined
+
+IF /i %PROCESSOR_ARCHITECTURE% EQU X86 SET "proc=%~dp0TomEE.x86.exe"
+IF /i %PROCESSOR_ARCHITECTURE% EQU AMD64 SET "proc=%~dp0TomEE.amd64.exe"
+IF /i %PROCESSOR_ARCHITECTURE% EQU IA64 SET "proc=%~dp0TomEE.ia64.exe"
+
+IF /i "%proc%" EQU undefined (
+       ECHO Failed to determine OS architecture
+       GOTO end
+)
+
+set "SELF=%~dp0%service.bat"
+rem Guess CATALINA_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%CATALINA_HOME%" == "" goto gotHome
+set "CATALINA_HOME=%cd%"
+if exist "%CATALINA_HOME%\bin\service.bat" goto okHome
+rem CD to the upper dir
+cd ..
+set "CATALINA_HOME=%cd%"
+:gotHome
+if exist "%CATALINA_HOME%\bin\service.bat" goto okHome
+echo The service exe was not found...
+echo The CATALINA_HOME environment variable is not defined correctly.
+echo This environment variable is needed to run this program
+goto end
+:okHome
+rem Make sure prerequisite environment variables are set
+if not "%JAVA_HOME%" == "" goto gotJdkHome
+if not "%JRE_HOME%" == "" goto gotJreHome
+echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
+echo Service will try to guess them from the registry.
+goto okJavaHome
+:gotJreHome
+if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome
+if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome
+goto okJavaHome
+:gotJdkHome
+if not exist "%JAVA_HOME%\jre\bin\java.exe" goto noJavaHome
+if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome
+if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
+if not "%JRE_HOME%" == "" goto okJavaHome
+set "JRE_HOME=%JAVA_HOME%\jre"
+goto okJavaHome
+:noJavaHome
+echo The JAVA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+echo NB: JAVA_HOME should point to a JDK not a JRE
+goto end
+:okJavaHome
+if not "%CATALINA_BASE%" == "" goto gotBase
+set "CATALINA_BASE=%CATALINA_HOME%"
+:gotBase
+
+set "EXECUTABLE=%proc%"
+
+rem Set default Service name (If you change this then rename also TomEE.exe to 
the same name)
+set SERVICE_NAME=TomEE
+set PR_DISPLAYNAME=Apache TomEE
+
+if "x%1x" == "xx" goto displayUsage
+set SERVICE_CMD=%1
+shift
+if "x%1x" == "xx" goto checkServiceCmd
+:checkUser
+if "x%1x" == "x/userx" goto runAsUser
+if "x%1x" == "x--userx" goto runAsUser
+set SERVICE_NAME=%1
+set PR_DISPLAYNAME=Apache TomEE (%1)
+shift
+if "x%1x" == "xx" goto checkServiceCmd
+goto checkUser
+:runAsUser
+shift
+if "x%1x" == "xx" goto displayUsage
+set SERVICE_USER=%1
+shift
+runas /env /savecred /user:%SERVICE_USER% "%COMSPEC% /K \"%SELF%\" 
%SERVICE_CMD% %SERVICE_NAME%"
+goto end
+:checkServiceCmd
+if /i %SERVICE_CMD% == install goto doInstall
+if /i %SERVICE_CMD% == remove goto doRemove
+if /i %SERVICE_CMD% == uninstall goto doRemove
+echo Unknown parameter "%1"
+:displayUsage
+echo.
+echo Usage: service.bat install/remove [service_name] [/user username]
+goto end
+
+:doRemove
+rem Remove the service
+"%EXECUTABLE%" //DS//%SERVICE_NAME%
+if not errorlevel 1 goto removed
+echo Failed removing '%SERVICE_NAME%' service
+goto end
+:removed
+echo The service '%SERVICE_NAME%' has been removed
+goto end
+
+:doInstall
+rem Install the service
+echo Installing the service '%SERVICE_NAME%' ...
+echo Using CATALINA_HOME:    "%CATALINA_HOME%"
+echo Using CATALINA_BASE:    "%CATALINA_BASE%"
+echo Using JAVA_HOME:        "%JAVA_HOME%"
+echo Using JRE_HOME:         "%JRE_HOME%"
+
+rem Use the environment variables as an example
+rem Each command line option is prefixed with PR_
+
+set "PR_DESCRIPTION=Apache TomEE - http://tomee.apache.org/";
+set "PR_INSTALL=%EXECUTABLE%"
+set "PR_LOGPATH=%CATALINA_BASE%\logs"
+set 
"PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;%CATALINA_HOME%\bin\tomcat-juli.jar"
+rem Set the server jvm from JAVA_HOME
+set "PR_JVM=%JRE_HOME%\bin\server\jvm.dll"
+if exist "%PR_JVM%" goto foundJvm
+rem Set the client jvm from JAVA_HOME
+set "PR_JVM=%JRE_HOME%\bin\client\jvm.dll"
+if exist "%PR_JVM%" goto foundJvm
+set PR_JVM=auto
+:foundJvm
+echo Using JVM:              "%PR_JVM%"
+
+"%EXECUTABLE%" //IS//%SERVICE_NAME% ^
+    --DisplayName=%SERVICE_NAME% ^
+    --StartClass org.apache.catalina.startup.Bootstrap ^
+    --StopClass org.apache.catalina.startup.Bootstrap ^
+    --StartParams start ^
+    --StopParams stop ^
+    --Startup auto ^
+    --JvmMs=512 ^
+    --JvmMx=1024 ^
+    --JvmSs=2048 ^
+    --StartMode jvm ^
+    --StopMode jvm ^
+    --LogLevel Info ^
+    --LogPrefix TomEE
+    
+echo Installed, will now configure TomEE
+    
+if not errorlevel 1 goto installed
+echo Failed installing '%SERVICE_NAME%' service
+goto end
+
+:installed
+rem Clear the environment variables. They are not needed any more.
+set PR_DISPLAYNAME=
+set PR_DESCRIPTION=
+set PR_INSTALL=
+set PR_LOGPATH=
+set PR_CLASSPATH=
+set PR_JVM=
+
+rem Set extra parameters
+"%EXECUTABLE%" //US//%SERVICE_NAME% ^
+       ++JvmOptions 
"-javaagent:%CATALINA_HOME%\lib\openejb-javaagent.jar;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed"
+
+rem More extra parameters
+set "PR_LOGPATH=%CATALINA_BASE%\logs"
+set PR_STDOUTPUT=auto
+set PR_STDERROR=auto
+
+rem before this option was added: 
"++JvmOptions=-Djava.library.path="%CATALINA_BASE%\bin" ^"
+rem the drawback was it was preventing custom native lib to be loaded even if 
added to Path
+"%EXECUTABLE%" //US//%SERVICE_NAME% ^
+       ++JvmOptions 
"-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-Djava.awt.headless=true;-XX:+UseParallelGC;-XX:MaxPermSize=256M"
+
+echo The service '%SERVICE_NAME%' has been installed.
+
+:end
+cd "%CURRENT_DIR%"

http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tomee/apache-tomee/src/main/resources/tomee.bat
----------------------------------------------------------------------
diff --git a/tomee/apache-tomee/src/main/resources/tomee.bat 
b/tomee/apache-tomee/src/main/resources/tomee.bat
index a945bbd..6c6045e 100644
--- a/tomee/apache-tomee/src/main/resources/tomee.bat
+++ b/tomee/apache-tomee/src/main/resources/tomee.bat
@@ -1,85 +1,85 @@
-@echo off
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements.  See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License.  You may obtain a copy of the License at
-rem
-rem     http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-
-if "%OS%" == "Windows_NT" setlocal
-
-set port=8080
-
-rem Guess CATALINA_HOME if not defined
-set "CURRENT_DIR=%cd%"
-if not "%CATALINA_HOME%" == "" goto gotHome
-set "CATALINA_HOME=%CURRENT_DIR%"
-if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
-cd ..
-set "CATALINA_HOME=%cd%"
-cd "%CURRENT_DIR%"
-:gotHome
-
-if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
-echo The CATALINA_HOME environment variable is not defined correctly
-echo This environment variable is needed to run this program
-goto end
-:okHome
-
-rem Copy CATALINA_BASE from CATALINA_HOME if not defined
-if not "%CATALINA_BASE%" == "" goto gotBase
-set "CATALINA_BASE=%CATALINA_HOME%"
-:gotBase
-
-rem Ensure that any user defined CLASSPATH variables are not used on startup,
-rem but allow them to be specified in setenv.bat, in rare case when it is 
needed.
-set CLASSPATH=
-
-rem Get standard Java environment variables
-if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
-echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"
-echo This file is needed to run this program
-goto end
-:okSetclasspath
-call "%CATALINA_HOME%\bin\setclasspath.bat" %1
-if errorlevel 1 goto end
-
-
-if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
-set "CATALINA_TMPDIR=%CATALINA_BASE%\temp"
-:gotTmpdir
-
-
-rem create classpath
-setlocal enabledelayedexpansion
-
-set cp="%CATALINA_HOME%\bin\tomcat-juli.jar"
-set lib="%CATALINA_HOME%\lib\"
-echo %lib%
-for %%F in (%lib%/*.jar) do (
-  set cp=!cp!;%%F%
-)
-
-if ""%1"" == ""deploy"" goto doDeploy
-if ""%1"" == ""undeploy"" goto doUndeploy
-goto doExec
-
-:doDeploy
-:doUndeploy
-%_RUNJAVA% -cp "%cp%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" 
org.apache.openejb.cli.Bootstrap %1 -s http://localhost:%port%/tomee/ejb %2
-goto end
-
-:doExec
-%_RUNJAVA% -cp "%cp%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" 
org.apache.openejb.cli.Bootstrap %*
-goto end
-
-:end
-
+@echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+if "%OS%" == "Windows_NT" setlocal
+
+set port=8080
+
+rem Guess CATALINA_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%CATALINA_HOME%" == "" goto gotHome
+set "CATALINA_HOME=%CURRENT_DIR%"
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+cd ..
+set "CATALINA_HOME=%cd%"
+cd "%CURRENT_DIR%"
+:gotHome
+
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+rem Copy CATALINA_BASE from CATALINA_HOME if not defined
+if not "%CATALINA_BASE%" == "" goto gotBase
+set "CATALINA_BASE=%CATALINA_HOME%"
+:gotBase
+
+rem Ensure that any user defined CLASSPATH variables are not used on startup,
+rem but allow them to be specified in setenv.bat, in rare case when it is 
needed.
+set CLASSPATH=
+
+rem Get standard Java environment variables
+if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
+echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"
+echo This file is needed to run this program
+goto end
+:okSetclasspath
+call "%CATALINA_HOME%\bin\setclasspath.bat" %1
+if errorlevel 1 goto end
+
+
+if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
+set "CATALINA_TMPDIR=%CATALINA_BASE%\temp"
+:gotTmpdir
+
+
+rem create classpath
+setlocal enabledelayedexpansion
+
+set cp="%CATALINA_HOME%\bin\tomcat-juli.jar"
+set lib="%CATALINA_HOME%\lib\"
+echo %lib%
+for %%F in (%lib%/*.jar) do (
+  set cp=!cp!;%%F%
+)
+
+if ""%1"" == ""deploy"" goto doDeploy
+if ""%1"" == ""undeploy"" goto doUndeploy
+goto doExec
+
+:doDeploy
+:doUndeploy
+%_RUNJAVA% -cp "%cp%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" 
org.apache.openejb.cli.Bootstrap %1 -s http://localhost:%port%/tomee/ejb %2
+goto end
+
+:doExec
+%_RUNJAVA% -cp "%cp%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" 
org.apache.openejb.cli.Bootstrap %*
+goto end
+
+:end
+

http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java
----------------------------------------------------------------------
diff --git 
a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java 
b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java
index 78434d0..dd8a6b1 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java
@@ -1,148 +1,148 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomee.catalina;
-
-import org.apache.catalina.Container;
-import org.apache.catalina.Context;
-import org.apache.catalina.Globals;
-import org.apache.catalina.Host;
-import org.apache.catalina.core.StandardContext;
-import org.apache.catalina.core.StandardEngine;
-import org.apache.catalina.core.StandardHost;
-import org.apache.catalina.util.ContextName;
-
-import java.io.File;
-
-public class Contexts {
-    public static String getHostname(final StandardContext ctx) {
-        String hostName = null;
-        final Container parentHost = ctx.getParent();
-        if (parentHost != null) {
-            hostName = parentHost.getName();
-        }
-        if ((hostName == null) || (hostName.length() < 1)) {
-            hostName = "_";
-        }
-        return hostName;
-    }
-
-    public static File warPath(final Context standardContext) {
-        final File file = realWarPath(standardContext);
-        if (file == null) {
-            return null;
-        }
-
-        final String name = file.getName();
-        if (!file.isDirectory() && name.endsWith(".war")) {
-            final File extracted = new File(file.getParentFile(), 
name.substring(0, name.length() - ".war".length()));
-            if (extracted.exists()) {
-                return extracted;
-            }
-        }
-        return file;
-    }
-
-    public static File realWarPath(final Context standardContext) {
-        if (standardContext == null) {
-            return null;
-        }
-
-        final File docBase;
-        Container container = standardContext;
-        while (container != null) {
-            if (container instanceof Host) {
-                break;
-            }
-            container = container.getParent();
-        }
-
-        if (standardContext.getDocBase() != null) {
-            File file = new File(standardContext.getDocBase());
-            if (!file.isAbsolute()) {
-                if (container == null) {
-                    docBase = new File(engineBase(standardContext), 
standardContext.getDocBase());
-                } else {
-                    final String appBase = ((Host) container).getAppBase();
-                    file = new File(appBase);
-                    if (!file.isAbsolute()) {
-                        file = new File(engineBase(standardContext), appBase);
-                    }
-                    docBase = new File(file, standardContext.getDocBase());
-                }
-            } else {
-                docBase = file;
-            }
-        } else {
-            final String path = standardContext.getPath();
-            if (path == null) {
-                throw new IllegalStateException("Can't find docBase");
-            } else {
-                docBase = new File(new ContextName(path, 
standardContext.getWebappVersion()).getBaseName());
-            }
-        }
-
-        if (!docBase.exists()) { // for old compatibility, will be removed soon
-            return oldRealWarPath(standardContext);
-        }
-
-        final String name = docBase.getName();
-        if (name.endsWith(".war")) {
-            final File extracted = new File(docBase.getParentFile(), 
name.substring(0, name.length() - ".war".length()));
-            if (extracted.exists()) {
-                return extracted;
-            }
-        }
-
-        return docBase;
-    }
-
-    private static File engineBase(final Context standardContext) {
-        String base=System.getProperty(Globals.CATALINA_BASE_PROP);
-        if( base == null ) {
-            final StandardEngine eng = (StandardEngine) 
standardContext.getParent().getParent();
-            base = eng.getBaseDir();
-        }
-        return new File(base);
-    }
-
-    @Deprecated
-    private static File oldRealWarPath(final Context standardContext) {
-        String doc = standardContext.getDocBase();
-        // handle ROOT case
-        if (doc == null || doc.length() == 0) {
-            doc = "ROOT";
-        }
-
-        File war = new File(doc);
-        if (war.exists()) {
-            return war;
-        }
-
-        final StandardHost host = (StandardHost) standardContext.getParent();
-        final String base = host.getAppBase();
-        war = new File(base, doc);
-        if (war.exists()) {
-            return war;
-        }
-
-        war = new File(new File(System.getProperty("catalina.home"), base), 
doc);
-        if (war.exists()) {
-            return war;
-        }
-        return new File(new File(System.getProperty("catalina.base"), base), 
doc); // shouldn't occur
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomee.catalina;
+
+import org.apache.catalina.Container;
+import org.apache.catalina.Context;
+import org.apache.catalina.Globals;
+import org.apache.catalina.Host;
+import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.core.StandardEngine;
+import org.apache.catalina.core.StandardHost;
+import org.apache.catalina.util.ContextName;
+
+import java.io.File;
+
+public class Contexts {
+    public static String getHostname(final StandardContext ctx) {
+        String hostName = null;
+        final Container parentHost = ctx.getParent();
+        if (parentHost != null) {
+            hostName = parentHost.getName();
+        }
+        if ((hostName == null) || (hostName.length() < 1)) {
+            hostName = "_";
+        }
+        return hostName;
+    }
+
+    public static File warPath(final Context standardContext) {
+        final File file = realWarPath(standardContext);
+        if (file == null) {
+            return null;
+        }
+
+        final String name = file.getName();
+        if (!file.isDirectory() && name.endsWith(".war")) {
+            final File extracted = new File(file.getParentFile(), 
name.substring(0, name.length() - ".war".length()));
+            if (extracted.exists()) {
+                return extracted;
+            }
+        }
+        return file;
+    }
+
+    public static File realWarPath(final Context standardContext) {
+        if (standardContext == null) {
+            return null;
+        }
+
+        final File docBase;
+        Container container = standardContext;
+        while (container != null) {
+            if (container instanceof Host) {
+                break;
+            }
+            container = container.getParent();
+        }
+
+        if (standardContext.getDocBase() != null) {
+            File file = new File(standardContext.getDocBase());
+            if (!file.isAbsolute()) {
+                if (container == null) {
+                    docBase = new File(engineBase(standardContext), 
standardContext.getDocBase());
+                } else {
+                    final String appBase = ((Host) container).getAppBase();
+                    file = new File(appBase);
+                    if (!file.isAbsolute()) {
+                        file = new File(engineBase(standardContext), appBase);
+                    }
+                    docBase = new File(file, standardContext.getDocBase());
+                }
+            } else {
+                docBase = file;
+            }
+        } else {
+            final String path = standardContext.getPath();
+            if (path == null) {
+                throw new IllegalStateException("Can't find docBase");
+            } else {
+                docBase = new File(new ContextName(path, 
standardContext.getWebappVersion()).getBaseName());
+            }
+        }
+
+        if (!docBase.exists()) { // for old compatibility, will be removed soon
+            return oldRealWarPath(standardContext);
+        }
+
+        final String name = docBase.getName();
+        if (name.endsWith(".war")) {
+            final File extracted = new File(docBase.getParentFile(), 
name.substring(0, name.length() - ".war".length()));
+            if (extracted.exists()) {
+                return extracted;
+            }
+        }
+
+        return docBase;
+    }
+
+    private static File engineBase(final Context standardContext) {
+        String base=System.getProperty(Globals.CATALINA_BASE_PROP);
+        if( base == null ) {
+            final StandardEngine eng = (StandardEngine) 
standardContext.getParent().getParent();
+            base = eng.getBaseDir();
+        }
+        return new File(base);
+    }
+
+    @Deprecated
+    private static File oldRealWarPath(final Context standardContext) {
+        String doc = standardContext.getDocBase();
+        // handle ROOT case
+        if (doc == null || doc.length() == 0) {
+            doc = "ROOT";
+        }
+
+        File war = new File(doc);
+        if (war.exists()) {
+            return war;
+        }
+
+        final StandardHost host = (StandardHost) standardContext.getParent();
+        final String base = host.getAppBase();
+        war = new File(base, doc);
+        if (war.exists()) {
+            return war;
+        }
+
+        war = new File(new File(System.getProperty("catalina.home"), base), 
doc);
+        if (war.exists()) {
+            return war;
+        }
+        return new File(new File(System.getProperty("catalina.base"), base), 
doc); // shouldn't occur
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ProvisioningWebappLoader.java
----------------------------------------------------------------------
diff --git 
a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ProvisioningWebappLoader.java
 
b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ProvisioningWebappLoader.java
index 1357bcc..ab6fc11 100644
--- 
a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ProvisioningWebappLoader.java
+++ 
b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ProvisioningWebappLoader.java
@@ -1,119 +1,119 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomee.catalina;
-
-import org.apache.catalina.Context;
-import org.apache.catalina.LifecycleException;
-import org.apache.catalina.loader.VirtualWebappLoader;
-import org.apache.openejb.ClassLoaderUtil;
-import org.apache.openejb.classloader.ClassLoaderConfigurer;
-import org.apache.openejb.classloader.CompositeClassLoaderConfigurer;
-import org.apache.openejb.config.QuickJarsTxtParser;
-import org.apache.openejb.loader.ProvisioningUtil;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.util.reflection.Reflections;
-
-import java.io.File;
-
-/**
- * Usage example in META-INF/context.xml
- * <p/>
- * <p/>
- * <Context antiJARLocking="true" >
- * <Loader
- * className="org.apache.tomee.catalina.ProvisioningWebappLoader"
- * searchExternalFirst="true"
- * 
virtualClasspath="mvn:commons-el:commons-el:1.0;mvn:commons-el:commons-el:1.0"
- * searchVirtualFirst="true"
- * />
- * </Context>
- */
-public class ProvisioningWebappLoader extends VirtualWebappLoader {
-    public static final boolean SKIP_BACKGROUND_PROCESS = 
"true".equals(SystemInstance.get().getProperty("tomee.classloader.skip-background-process",
 "false"));
-
-    @Override
-    public void backgroundProcess() {
-        if (SKIP_BACKGROUND_PROCESS) {
-            return;
-        }
-
-        final ClassLoader classloader = super.getClassLoader();
-        if (classloader instanceof LazyStopWebappClassLoader) {
-            final LazyStopWebappClassLoader lazyStopWebappClassLoader = 
(LazyStopWebappClassLoader) classloader;
-            lazyStopWebappClassLoader.restarting();
-            try {
-                super.backgroundProcess();
-            } finally {
-                lazyStopWebappClassLoader.restarted();
-            }
-        } else {
-            super.backgroundProcess();
-        }
-    }
-
-    @Override
-    public boolean modified() {
-        if (SKIP_BACKGROUND_PROCESS) {
-            return false;
-        }
-        return super.modified();
-    }
-
-    @Override
-    protected void startInternal() throws LifecycleException {
-        // standard tomcat part
-        final StringBuilder builder = new StringBuilder();
-        final String classpath = String.class.cast(Reflections.get(this, 
"virtualClasspath"));
-        if (classpath != null && !classpath.isEmpty()) {
-            for (final String s : String.class.cast(classpath).split(";")) {
-                builder.append(ProvisioningUtil.realLocation(s)).append(";");
-            }
-        }
-
-        ClassLoaderConfigurer configurer = 
ClassLoaderUtil.configurer(getContainer().getName());
-
-        // WEB-INF/jars.xml
-        if (Context.class.isInstance(getContainer())) {
-            final File war = 
Contexts.warPath(Context.class.cast(getContainer()));
-            final File jarsXml = new File(war, "WEB-INF/" + 
QuickJarsTxtParser.FILE_NAME);
-            final ClassLoaderConfigurer configurerTxt = 
QuickJarsTxtParser.parse(jarsXml);
-            if (configurerTxt != null) {
-                configurer = new CompositeClassLoaderConfigurer(configurer, 
configurerTxt);
-            }
-        }
-
-        // clean up builder and set classpath to delegate to parent init
-        String cp = builder.toString();
-        if (cp.endsWith(";")) {
-            cp = cp.substring(0, cp.length() - 1);
-        }
-        Reflections.set(this, "virtualClasspath", cp);
-
-        LazyStopWebappClassLoader.initContext(configurer);
-        
LazyStopWebappClassLoader.initContext(Context.class.cast(getContainer()));
-        try {
-            super.startInternal();
-        } finally {
-            LazyStopWebappClassLoader.cleanContext();
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "Provisioning" + super.toString();
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomee.catalina;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.loader.VirtualWebappLoader;
+import org.apache.openejb.ClassLoaderUtil;
+import org.apache.openejb.classloader.ClassLoaderConfigurer;
+import org.apache.openejb.classloader.CompositeClassLoaderConfigurer;
+import org.apache.openejb.config.QuickJarsTxtParser;
+import org.apache.openejb.loader.ProvisioningUtil;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.reflection.Reflections;
+
+import java.io.File;
+
+/**
+ * Usage example in META-INF/context.xml
+ * <p/>
+ * <p/>
+ * <Context antiJARLocking="true" >
+ * <Loader
+ * className="org.apache.tomee.catalina.ProvisioningWebappLoader"
+ * searchExternalFirst="true"
+ * 
virtualClasspath="mvn:commons-el:commons-el:1.0;mvn:commons-el:commons-el:1.0"
+ * searchVirtualFirst="true"
+ * />
+ * </Context>
+ */
+public class ProvisioningWebappLoader extends VirtualWebappLoader {
+    public static final boolean SKIP_BACKGROUND_PROCESS = 
"true".equals(SystemInstance.get().getProperty("tomee.classloader.skip-background-process",
 "false"));
+
+    @Override
+    public void backgroundProcess() {
+        if (SKIP_BACKGROUND_PROCESS) {
+            return;
+        }
+
+        final ClassLoader classloader = super.getClassLoader();
+        if (classloader instanceof LazyStopWebappClassLoader) {
+            final LazyStopWebappClassLoader lazyStopWebappClassLoader = 
(LazyStopWebappClassLoader) classloader;
+            lazyStopWebappClassLoader.restarting();
+            try {
+                super.backgroundProcess();
+            } finally {
+                lazyStopWebappClassLoader.restarted();
+            }
+        } else {
+            super.backgroundProcess();
+        }
+    }
+
+    @Override
+    public boolean modified() {
+        if (SKIP_BACKGROUND_PROCESS) {
+            return false;
+        }
+        return super.modified();
+    }
+
+    @Override
+    protected void startInternal() throws LifecycleException {
+        // standard tomcat part
+        final StringBuilder builder = new StringBuilder();
+        final String classpath = String.class.cast(Reflections.get(this, 
"virtualClasspath"));
+        if (classpath != null && !classpath.isEmpty()) {
+            for (final String s : String.class.cast(classpath).split(";")) {
+                builder.append(ProvisioningUtil.realLocation(s)).append(";");
+            }
+        }
+
+        ClassLoaderConfigurer configurer = 
ClassLoaderUtil.configurer(getContainer().getName());
+
+        // WEB-INF/jars.xml
+        if (Context.class.isInstance(getContainer())) {
+            final File war = 
Contexts.warPath(Context.class.cast(getContainer()));
+            final File jarsXml = new File(war, "WEB-INF/" + 
QuickJarsTxtParser.FILE_NAME);
+            final ClassLoaderConfigurer configurerTxt = 
QuickJarsTxtParser.parse(jarsXml);
+            if (configurerTxt != null) {
+                configurer = new CompositeClassLoaderConfigurer(configurer, 
configurerTxt);
+            }
+        }
+
+        // clean up builder and set classpath to delegate to parent init
+        String cp = builder.toString();
+        if (cp.endsWith(";")) {
+            cp = cp.substring(0, cp.length() - 1);
+        }
+        Reflections.set(this, "virtualClasspath", cp);
+
+        LazyStopWebappClassLoader.initContext(configurer);
+        
LazyStopWebappClassLoader.initContext(Context.class.cast(getContainer()));
+        try {
+            super.startInternal();
+        } finally {
+            LazyStopWebappClassLoader.cleanContext();
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "Provisioning" + super.toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/5dd70c83/tomee/tomee-common/src/main/java/org/apache/tomee/common/NamingUtil.java
----------------------------------------------------------------------
diff --git 
a/tomee/tomee-common/src/main/java/org/apache/tomee/common/NamingUtil.java 
b/tomee/tomee-common/src/main/java/org/apache/tomee/common/NamingUtil.java
index 0bdceff..b452c3e 100644
--- a/tomee/tomee-common/src/main/java/org/apache/tomee/common/NamingUtil.java
+++ b/tomee/tomee-common/src/main/java/org/apache/tomee/common/NamingUtil.java
@@ -1,149 +1,149 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.tomee.common;
-
-import org.apache.catalina.core.StandardContext;
-import org.apache.naming.EjbRef;
-
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class NamingUtil {
-    public static final String NAME = "name";
-    public static final String DEPLOYMENT_ID = "deploymentid";
-    public static final String EXTERNAL = "external";
-    public static final String LOCAL = "local";
-    public static final String LOCALBEAN = "localbean";
-    public static final String REMOTE = EjbRef.REMOTE;
-    public static final String JNDI_NAME = "jndiname";
-    public static final String JNDI_PROVIDER_ID = "jndiproviderid";
-    public static final String UNIT = "unit";
-    public static final String EXTENDED = "extended";
-    public static final String PROPERTIES = "properties";
-    public static final String RESOURCE_ID = "resourceid";
-    public static final String COMPONENT_TYPE = "componenttype";
-    public static final String WS_ID = "wsid";
-    public static final String WS_CLASS = "wsclass";
-    public static final String WS_QNAME = "wsqname";
-    public static final String WS_PORT_QNAME = "wsportqname";
-    public static final String WSDL_URL = "wsdlurl";
-
-    private static final AtomicInteger id = new AtomicInteger(31);
-    private static final Map<String,Object> registry = new 
ConcurrentHashMap<String, Object>();
-
-    // these two attributes are used to be able to cleanup quickly the 
registry (otherwise we need to duplicate a lot of logic)
-    private static StandardContext currentContext;
-    private static final Map<StandardContext, Collection<String>> 
ID_BY_CONTEXT = new HashMap<StandardContext, Collection<String>>();
-
-    public static String getProperty(final Reference ref, final String name) {
-        final RefAddr addr = ref.get(name);
-        if (addr == null) {
-            return null;
-        }
-        final Object value = addr.getContent();
-        return (String) value;
-    }
-
-    public static boolean isPropertyTrue(final Reference ref, final String 
name) {
-        final RefAddr addr = ref.get(name);
-        if (addr == null) {
-            return false;
-        }
-        final Object value = addr.getContent();
-        return Boolean.parseBoolean(String.valueOf(value));
-    }
-
-    public static void setStaticValue(final Resource resource, final Object 
value) {
-        setStaticValue(resource, null, value);
-    }
-
-    public static void setStaticValue(final Resource resource, final String 
name, final Object value) {
-        final String token = String.valueOf(id.incrementAndGet());
-        registry.put(token, value);
-        resource.setProperty("static-token" + (name != null ? "-" + name : 
""), token);
-        if (currentContext != null) {
-            Collection<String> ids = ID_BY_CONTEXT.get(currentContext);
-            if (ids == null) {
-                ids = new ArrayList<String>();
-                ID_BY_CONTEXT.put(currentContext, ids);
-            }
-            ids.add(token);
-        }
-    }
-
-    @SuppressWarnings({"unchecked"})
-    public static<T> T getStaticValue(final Reference ref) {
-        return (T) getStaticValue(ref, null);
-    }
-
-    @SuppressWarnings({"unchecked"})
-    public static <T> T getStaticValue(final Reference ref, String name) {
-        name = name != null ? "-" + name : "";
-        final String token = getProperty(ref, "static-token" + name);
-        if (token == null) {
-            return null;
-        }
-        return (T) registry.get(token);
-    }
-
-    public static Class<?> loadClass(final String className) {
-        if (className == null) {
-            return null;
-        }
-        try {
-            final ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
-            if (classLoader != null) {
-                try {
-                    return classLoader.loadClass(className);
-                } catch(final ClassNotFoundException e) {
-                    // no-op
-                }
-            }
-            return Class.forName(className);
-        } catch (final ClassNotFoundException e) {
-            return null;
-        }
-    }
-
-    /**
-     * This interface exists because the class 
org.apache.catalina.deploy.ContextResource
-     * is not available in the common classloader in tomcat 55
-     */
-    public interface Resource {
-        void setProperty(String name, Object value);
-    }
-
-    public static void setCurrentContext(final StandardContext currentContext) 
{
-        NamingUtil.currentContext = currentContext;
-    }
-
-    public static void cleanUpContextResource(final StandardContext context) {
-        final Collection<String> keys = ID_BY_CONTEXT.remove(context);
-        if (keys != null) {
-            for (final String k : keys) {
-                registry.remove(k);
-            }
-        }
-    }
-}
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tomee.common;
+
+import org.apache.catalina.core.StandardContext;
+import org.apache.naming.EjbRef;
+
+import javax.naming.RefAddr;
+import javax.naming.Reference;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class NamingUtil {
+    public static final String NAME = "name";
+    public static final String DEPLOYMENT_ID = "deploymentid";
+    public static final String EXTERNAL = "external";
+    public static final String LOCAL = "local";
+    public static final String LOCALBEAN = "localbean";
+    public static final String REMOTE = EjbRef.REMOTE;
+    public static final String JNDI_NAME = "jndiname";
+    public static final String JNDI_PROVIDER_ID = "jndiproviderid";
+    public static final String UNIT = "unit";
+    public static final String EXTENDED = "extended";
+    public static final String PROPERTIES = "properties";
+    public static final String RESOURCE_ID = "resourceid";
+    public static final String COMPONENT_TYPE = "componenttype";
+    public static final String WS_ID = "wsid";
+    public static final String WS_CLASS = "wsclass";
+    public static final String WS_QNAME = "wsqname";
+    public static final String WS_PORT_QNAME = "wsportqname";
+    public static final String WSDL_URL = "wsdlurl";
+
+    private static final AtomicInteger id = new AtomicInteger(31);
+    private static final Map<String,Object> registry = new 
ConcurrentHashMap<String, Object>();
+
+    // these two attributes are used to be able to cleanup quickly the 
registry (otherwise we need to duplicate a lot of logic)
+    private static StandardContext currentContext;
+    private static final Map<StandardContext, Collection<String>> 
ID_BY_CONTEXT = new HashMap<StandardContext, Collection<String>>();
+
+    public static String getProperty(final Reference ref, final String name) {
+        final RefAddr addr = ref.get(name);
+        if (addr == null) {
+            return null;
+        }
+        final Object value = addr.getContent();
+        return (String) value;
+    }
+
+    public static boolean isPropertyTrue(final Reference ref, final String 
name) {
+        final RefAddr addr = ref.get(name);
+        if (addr == null) {
+            return false;
+        }
+        final Object value = addr.getContent();
+        return Boolean.parseBoolean(String.valueOf(value));
+    }
+
+    public static void setStaticValue(final Resource resource, final Object 
value) {
+        setStaticValue(resource, null, value);
+    }
+
+    public static void setStaticValue(final Resource resource, final String 
name, final Object value) {
+        final String token = String.valueOf(id.incrementAndGet());
+        registry.put(token, value);
+        resource.setProperty("static-token" + (name != null ? "-" + name : 
""), token);
+        if (currentContext != null) {
+            Collection<String> ids = ID_BY_CONTEXT.get(currentContext);
+            if (ids == null) {
+                ids = new ArrayList<String>();
+                ID_BY_CONTEXT.put(currentContext, ids);
+            }
+            ids.add(token);
+        }
+    }
+
+    @SuppressWarnings({"unchecked"})
+    public static<T> T getStaticValue(final Reference ref) {
+        return (T) getStaticValue(ref, null);
+    }
+
+    @SuppressWarnings({"unchecked"})
+    public static <T> T getStaticValue(final Reference ref, String name) {
+        name = name != null ? "-" + name : "";
+        final String token = getProperty(ref, "static-token" + name);
+        if (token == null) {
+            return null;
+        }
+        return (T) registry.get(token);
+    }
+
+    public static Class<?> loadClass(final String className) {
+        if (className == null) {
+            return null;
+        }
+        try {
+            final ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
+            if (classLoader != null) {
+                try {
+                    return classLoader.loadClass(className);
+                } catch(final ClassNotFoundException e) {
+                    // no-op
+                }
+            }
+            return Class.forName(className);
+        } catch (final ClassNotFoundException e) {
+            return null;
+        }
+    }
+
+    /**
+     * This interface exists because the class 
org.apache.catalina.deploy.ContextResource
+     * is not available in the common classloader in tomcat 55
+     */
+    public interface Resource {
+        void setProperty(String name, Object value);
+    }
+
+    public static void setCurrentContext(final StandardContext currentContext) 
{
+        NamingUtil.currentContext = currentContext;
+    }
+
+    public static void cleanUpContextResource(final StandardContext context) {
+        final Collection<String> keys = ID_BY_CONTEXT.remove(context);
+        if (keys != null) {
+            for (final String k : keys) {
+                registry.remove(k);
+            }
+        }
+    }
+}

Reply via email to