TOMEE-2013 trying to use security manager to access system properties when 
needed


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/7cf6e4fe
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/7cf6e4fe
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/7cf6e4fe

Branch: refs/heads/master
Commit: 7cf6e4fe147aaf76d8984361a84798aa67041e93
Parents: 274ff56
Author: rmannibucau <[email protected]>
Authored: Wed Feb 8 10:07:59 2017 +0100
Committer: rmannibucau <[email protected]>
Committed: Wed Feb 8 10:07:59 2017 +0100

----------------------------------------------------------------------
 .../org/apache/openejb/OpenEjbContainer.java    |  7 +-
 .../apache/openejb/assembler/DeployerEjb.java   | 15 +--
 .../openejb/assembler/classic/Assembler.java    |  3 +-
 .../assembler/classic/AssemblerTool.java        |  9 +-
 .../classic/JaccPermissionsBuilder.java         |  3 +-
 .../assembler/classic/cmd/Info2Properties.java  |  7 +-
 .../java/org/apache/openejb/cli/Bootstrap.java  | 11 ++-
 .../java/org/apache/openejb/cli/MainImpl.java   |  5 +-
 .../ActivationConfigPropertyOverride.java       |  3 +-
 .../apache/openejb/config/AppInfoBuilder.java   |  3 +-
 .../openejb/config/ConfigurationFactory.java    | 16 ++--
 .../java/org/apache/openejb/config/Deploy.java  |  3 +-
 .../apache/openejb/config/DeploymentLoader.java |  4 +-
 .../openejb/config/DeploymentsResolver.java     |  3 +-
 .../openejb/config/EffectiveTomEEXml.java       |  7 +-
 .../openejb/config/QuickServerXmlParser.java    |  7 +-
 .../org/apache/openejb/config/RemoteServer.java | 26 ++---
 .../org/apache/openejb/config/Undeploy.java     |  3 +-
 .../openejb/config/VmDeploymentManager.java     |  9 +-
 .../openejb/config/sys/JSonConfigReader.java    |  5 +-
 .../openejb/config/sys/PropertiesAdapter.java   |  3 +-
 .../openejb/core/ivm/naming/IvmContext.java     |  5 +-
 .../openejb/core/managed/RAFPassivater.java     |  7 +-
 .../openejb/core/managed/SimplePassivater.java  |  3 +-
 .../core/rmi/BlacklistClassResolver.java        |  6 +-
 .../core/security/AbstractSecurityService.java  |  9 +-
 .../core/security/SecurityServiceImpl.java      |  3 +-
 .../core/security/jaas/ScriptLoginModule.java   |  7 +-
 .../openejb/core/stateful/RAFPassivater.java    |  7 +-
 .../openejb/core/stateful/SimplePassivater.java |  3 +-
 .../core/webservices/ProviderWrapper.java       | 19 ++--
 .../openejb/core/webservices/UriResolver.java   |  9 +-
 .../apache/openejb/log/SingleLineFormatter.java |  4 +-
 .../persistence/PersistenceBootstrap.java       |  3 +-
 .../resource/jdbc/dbcp/BasicDataSource.java     |  3 +-
 .../jdbc/dbcp/BasicManagedDataSource.java       |  3 +-
 .../jdbc/plugin/DerbyDataSourcePlugin.java      |  3 +-
 .../resource/quartz/QuartzResourceAdapter.java  | 21 +++--
 .../ri/sp/PseudoPolicyConfigurationFactory.java |  4 +-
 .../java/org/apache/openejb/table/Line.java     |  4 +-
 .../java/org/apache/openejb/table/Lines.java    |  4 +-
 .../openejb/testing/ApplicationComposers.java   |  9 +-
 .../SingleApplicationComposerRunner.java        |  3 +-
 .../openejb/util/JavaSecurityManagers.java      | 99 ++++++++++++++++++++
 .../openejb/util/JuliLogStreamFactory.java      | 14 +--
 .../openejb/util/Log4j2LogStreamFactory.java    |  2 +-
 .../openejb/util/Log4jLogStreamFactory.java     |  8 +-
 .../java/org/apache/openejb/util/Logger.java    | 12 +--
 .../org/apache/openejb/util/OpenEjbVersion.java |  4 +-
 .../apache/openejb/util/PropertiesService.java  |  4 +-
 .../openejb/util/PropertyPlaceHolderHelper.java |  2 +-
 .../openejb/util/Slf4jLogStreamFactory.java     |  6 +-
 .../apache/openejb/util/SuperProperties.java    |  2 +-
 .../main/java/org/apache/openejb/util/URLs.java |  2 +-
 .../org/apache/openejb/util/UpdateChecker.java  | 20 ++--
 .../util/classloader/URLClassLoaderFirst.java   |  3 +-
 .../openejb/util/helper/CommandHelper.java      |  3 +-
 57 files changed, 315 insertions(+), 157 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java 
b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
index 8039dce..722b1de 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
@@ -43,6 +43,7 @@ import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.apache.openejb.loader.Options;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.Exceptions;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Join;
 import org.apache.openejb.util.JuliLogStreamFactory;
 import org.apache.openejb.util.LogCategory;
@@ -90,7 +91,7 @@ import static org.apache.openejb.cdi.ScopeHelper.stopContexts;
 public final class OpenEjbContainer extends EJBContainer {
     static {
         // if tomee embedded was ran we'll lost log otherwise
-        final String logManger = 
System.getProperty("java.util.logging.manager");
+        final String logManger = 
JavaSecurityManagers.getSystemProperty("java.util.logging.manager");
         if (logManger != null) {
             try {
                 
Thread.currentThread().getContextClassLoader().loadClass(logManger);
@@ -242,8 +243,8 @@ public final class OpenEjbContainer extends EJBContainer {
 
             try {
                 // reset to be able to run this container then tomee one etc...
-                if 
(System.getProperties().containsKey(Context.URL_PKG_PREFIXES)) {
-                    System.getProperties().remove(Context.URL_PKG_PREFIXES);
+                if 
(JavaSecurityManagers.getSystemProperty(Context.URL_PKG_PREFIXES) != null) {
+                    
JavaSecurityManagers.removeSystemProperty(Context.URL_PKG_PREFIXES);
                 }
 
                 final Properties properties = new Properties();

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
index 1825095..1af4d55 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
@@ -37,9 +37,16 @@ import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.loader.provisining.ProvisioningResolver;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
+import javax.ejb.Lock;
+import javax.ejb.Remote;
+import javax.ejb.Singleton;
+import javax.ejb.TransactionManagement;
+import javax.enterprise.inject.Alternative;
+import javax.validation.ValidationException;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -51,12 +58,6 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import java.util.TreeMap;
-import javax.ejb.Lock;
-import javax.ejb.Remote;
-import javax.ejb.Singleton;
-import javax.ejb.TransactionManagement;
-import javax.enterprise.inject.Alternative;
-import javax.validation.ValidationException;
 
 import static javax.ejb.LockType.READ;
 import static javax.ejb.TransactionManagementType.BEAN;
@@ -90,7 +91,7 @@ public class DeployerEjb implements Deployer {
 
     static {
         final String uniqueName = "OpenEJB-" + new BigInteger(128, new 
SecureRandom()).toString(Character.MAX_RADIX);
-        final String tempDir = System.getProperty("java.io.tmpdir");
+        final String tempDir = 
JavaSecurityManagers.getSystemProperty("java.io.tmpdir");
         File unique;
         try {
             unique = new File(tempDir, uniqueName).getCanonicalFile();

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index 08eb1a3..cdf7ed2 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -124,6 +124,7 @@ import org.apache.openejb.util.Contexts;
 import org.apache.openejb.util.DaemonThreadFactory;
 import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.ExecutorBuilder;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Join;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
@@ -446,7 +447,7 @@ public class Assembler extends AssemblerTool implements 
org.apache.openejb.spi.A
         l.lock();
 
         try {
-            final Properties systemProperties = System.getProperties();
+            final Properties systemProperties = 
JavaSecurityManagers.getSystemProperties();
 
             String str = 
systemProperties.getProperty(Context.URL_PKG_PREFIXES);
             if (str == null || clean) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java
index 4b684b4..728584d 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java
@@ -20,17 +20,18 @@ package org.apache.openejb.assembler.classic;
 import org.apache.openejb.Container;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.spi.SecurityService;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.SafeToolkit;
 import org.apache.openejb.util.proxy.ProxyFactory;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
 import javax.resource.spi.ConnectionManager;
 import javax.resource.spi.ManagedConnectionFactory;
 import javax.resource.spi.ResourceAdapter;
 import javax.transaction.TransactionManager;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
 
 public class AssemblerTool {
 
@@ -51,7 +52,7 @@ public class AssemblerTool {
     protected Properties props = new Properties();
 
     static {
-        System.setProperty("noBanner", "true");
+        JavaSecurityManagers.setSystemProperty("noBanner", "true");
     }
 
     protected static void checkImplementation(final Class intrfce, final Class 
factory, final String serviceType, final String serviceName) throws 
OpenEJBException {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java
index fc5c1f4..0276ec9 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java
@@ -21,6 +21,7 @@ import org.apache.openejb.BeanContext;
 import org.apache.openejb.InterfaceType;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
@@ -46,7 +47,7 @@ import static 
org.apache.openejb.assembler.classic.MethodInfoUtil.resolveAttribu
 public class JaccPermissionsBuilder {
 
     static {
-        
System.setProperty("org.apache.security.jacc.EJBMethodPermission.methodInterfaces",
 "BusinessLocalHome,BusinessRemoteHome,BusinessRemote,BusinessLocal");
+        
JavaSecurityManagers.setSystemProperty("org.apache.security.jacc.EJBMethodPermission.methodInterfaces",
 "BusinessLocalHome,BusinessRemoteHome,BusinessRemote,BusinessLocal");
     }
 
     public void install(final PolicyContext policyContext) throws 
OpenEJBException {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java
index 5c201f6..9717a4f 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java
@@ -28,6 +28,7 @@ import org.apache.commons.cli.PosixParser;
 import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
 import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.OpenEjbVersion;
 import org.apache.openejb.util.SuperProperties;
@@ -143,7 +144,7 @@ public class Info2Properties {
     }
 
     public static void printConfig(final OpenEjbConfiguration configuration) {
-        printConfig(configuration, System.out, 
System.getProperty("line.separator"));
+        printConfig(configuration, System.out, 
JavaSecurityManagers.getSystemProperty("line.separator"));
     }
 
     public static void printConfig(final OpenEjbConfiguration configuration, 
final PrintStream out, final String cr) {
@@ -205,12 +206,12 @@ public class Info2Properties {
             p.setSpaceBetweenProperties(false);
             p.setKeyValueSeparator(" = ");
             p.setLineSeparator(cr);
-            copyOpenEjbProperties(System.getProperties(), p);
+            copyOpenEjbProperties(JavaSecurityManagers.getSystemProperties(), 
p);
             copyOpenEjbProperties(SystemInstance.get().getProperties(), p);
             p.store(out, null);
 
 
-            final Properties p2 = System.getProperties();
+            final Properties p2 = JavaSecurityManagers.getSystemProperties();
             final String[] misc = {"os.version", "os.name", "os.arch", 
"java.version", "java.vendor"};
             for (final String prop : misc) {
                 comment(out, cr, prop + "=" + p2.get(prop));

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java 
b/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
index 4330f90..912f7d1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java
@@ -19,6 +19,7 @@ package org.apache.openejb.cli;
 
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemClassPath;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.PropertyPlaceHolderHelper;
 import org.apache.openejb.util.URLs;
 
@@ -46,7 +47,7 @@ public class Bootstrap {
             }
         }
 
-        final String homeProperty = 
System.getProperty(OPENEJB_HOME_PROPERTY_NAME);
+        final String homeProperty = 
JavaSecurityManagers.getSystemProperty(OPENEJB_HOME_PROPERTY_NAME);
         if (homeProperty != null) {
             if (new File(homeProperty).exists()) {
                 return;
@@ -69,7 +70,7 @@ public class Bootstrap {
                     final File lib = jarFile.getParentFile();
                     final File home = lib.getParentFile().getCanonicalFile();
 
-                    System.setProperty(OPENEJB_HOME_PROPERTY_NAME, 
home.getAbsolutePath());
+                    
JavaSecurityManagers.setSystemProperty(OPENEJB_HOME_PROPERTY_NAME, 
home.getAbsolutePath());
                 }
             }
         } catch (final Exception e) {
@@ -81,12 +82,12 @@ public class Bootstrap {
         final String prop = arg.substring(arg.indexOf("-D") + 2, 
arg.indexOf("="));
         final String val = arg.substring(arg.indexOf("=") + 1);
 
-        System.setProperty(prop, val);
+        JavaSecurityManagers.setSystemProperty(prop, val);
     }
 
     private static void setupClasspath() {
-        final String base = System.getProperty(OPENEJB_BASE_PROPERTY_NAME, "");
-        final String home = System.getProperty("catalina.home", 
System.getProperty(OPENEJB_HOME_PROPERTY_NAME, base));
+        final String base = 
JavaSecurityManagers.getSystemProperty(OPENEJB_BASE_PROPERTY_NAME, "");
+        final String home = 
JavaSecurityManagers.getSystemProperty("catalina.home", 
JavaSecurityManagers.getSystemProperty(OPENEJB_HOME_PROPERTY_NAME, base));
         try {
             final File lib = new File(home + File.separator + "lib");
             final SystemClassPath systemCP = new SystemClassPath();

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java 
b/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
index 2764d34..9b18139 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
@@ -24,6 +24,7 @@ import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.OpenEjbVersion;
 import org.apache.openejb.util.OptionsLog;
 import org.apache.xbean.finder.ResourceFinder;
@@ -168,7 +169,7 @@ public class MainImpl implements Main {
                 final String prop = arg.substring(arg.indexOf("-D") + 2, 
arg.indexOf("="));
                 final String val = arg.substring(arg.indexOf("=") + 1);
 
-                System.setProperty(prop, val);
+                JavaSecurityManagers.setSystemProperty(prop, val);
             }
         }
 
@@ -192,7 +193,7 @@ public class MainImpl implements Main {
                 final String prop = arg.substring(idx + 2, eq);
                 final String val = arg.substring(eq + 1);
 
-                System.setProperty(prop, val);
+                JavaSecurityManagers.setSystemProperty(prop, val);
                 systemInstance.setProperty(prop, val);
             } else {
                 argsList.add(arg);

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java
index 73afb18..597c13b 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java
@@ -26,6 +26,7 @@ import org.apache.openejb.jee.MessageDrivenBean;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.PropertyPlaceHolderHelper;
@@ -47,7 +48,7 @@ public class ActivationConfigPropertyOverride implements 
DynamicDeployer {
         final Properties system = new Properties();
         system.putAll(SystemInstance.get().getProperties());
         system.putAll(appModule.getProperties());
-        system.putAll(System.getProperties());
+        system.putAll(JavaSecurityManagers.getSystemProperties());
 
         for (final EjbModule ejbModule : appModule.getEjbModules()) {
             final EjbJar ejbJar = ejbModule.getEjbJar();

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
index 5933362..80d1b73 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
@@ -79,6 +79,7 @@ import org.apache.openejb.jpa.integration.MakeTxLookup;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.persistence.PersistenceBootstrap;
 import org.apache.openejb.util.CircularReferencesException;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
@@ -962,7 +963,7 @@ class AppInfoBuilder {
         private static void override(final Properties appProperties, final 
PersistenceUnitInfo info, final String prefix) {
             final Properties propertiesToCheckForOverridings = new 
Properties();
             propertiesToCheckForOverridings.putAll(appProperties);
-            propertiesToCheckForOverridings.putAll(System.getProperties());
+            
propertiesToCheckForOverridings.putAll(JavaSecurityManagers.getSystemProperties());
             
propertiesToCheckForOverridings.putAll(SystemInstance.get().getProperties());
             final Properties overrides = 
ConfigurationFactory.getOverrides(propertiesToCheckForOverridings, prefix, 
"PersistenceUnit");
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
index a348da3..9a2b8b4 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
@@ -86,6 +86,7 @@ import org.apache.openejb.monitoring.LocalMBeanServer;
 import org.apache.openejb.resource.jdbc.DataSourceFactory;
 import org.apache.openejb.resource.jdbc.pool.DataSourceCreator;
 import org.apache.openejb.resource.jdbc.pool.DefaultDataSourceCreator;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
@@ -155,16 +156,13 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
 
     public ConfigurationFactory() {
         this(!shouldAutoDeploy());
-        System.setProperty("bval.in-container", "true");
     }
 
     private static boolean exists(final String s) {
         try {
             ConfigurationFactory.class.getClassLoader().loadClass(s);
             return true;
-        } catch (final ClassNotFoundException e) {
-            return false;
-        } catch (final NoClassDefFoundError e) {
+        } catch (final ClassNotFoundException | NoClassDefFoundError e) {
             return false;
         }
     }
@@ -180,6 +178,8 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
     }
 
     public ConfigurationFactory(final boolean offline, final DynamicDeployer 
preAutoConfigDeployer) {
+        JavaSecurityManagers.setSystemProperty("bval.in-container", 
JavaSecurityManagers.getSystemProperty("bval.in-container","true"));
+
         this.offline = offline;
         this.serviceTypeIsAdjustable = 
SystemInstance.get().getOptions().get("openejb.service-type-adjustement", true);
         this.deploymentLoader = new DeploymentLoader();
@@ -494,7 +494,7 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
             final String name = sp.getName();
             final String value = sp.getValue();
             SystemInstance.get().setProperty(name, value);
-            System.setProperty(name, value);
+            JavaSecurityManagers.setSystemProperty(name, value);
         }
 
         loadPropertiesDeclaredConfiguration(openejb);
@@ -728,7 +728,7 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
 
     public static void loadPropertiesDeclaredConfiguration(final Openejb 
openejb) {
 
-        final Properties sysProps = new Properties(System.getProperties());
+        final Properties sysProps = new 
Properties(JavaSecurityManagers.getSystemProperties());
         sysProps.putAll(SystemInstance.get().getProperties());
         fillOpenEjb(openejb, sysProps);
     }
@@ -1319,7 +1319,7 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
                         continue;
                     }
                     types.add(type);
-                    sb.append(System.getProperty("line.separator"));
+                    
sb.append(JavaSecurityManagers.getSystemProperty("line.separator"));
                     sb.append("  <").append(p.getService());
                     sb.append(" id=\"").append(service.getId()).append('"');
                     sb.append(" type=\"").append(type).append("\"/>");
@@ -1533,7 +1533,7 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
 
     protected static Properties getSystemProperties(final String serviceId, 
final String serviceType) {
         // Override with system properties
-        final Properties sysProps = new Properties(System.getProperties());
+        final Properties sysProps = new 
Properties(JavaSecurityManagers.getSystemProperties());
         sysProps.putAll(SystemInstance.get().getProperties());
 
         return getOverrides(sysProps, serviceId, serviceType);

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java 
b/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
index 67ae90d..52a7fea 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
@@ -41,6 +41,7 @@ import org.apache.openejb.cli.SystemExitException;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.JarExtractor;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.OpenEjbVersion;
 
@@ -139,7 +140,7 @@ public class Deploy {
             String serverUrl = line.getOptionValue("server-url", 
defaultServerUrl);
             if ("auto".equalsIgnoreCase(serverUrl.trim())) {
                 try {
-                    final File sXml = new 
File(System.getProperty("openejb.base", "conf/server.xml"));
+                    final File sXml = new 
File(JavaSecurityManagers.getSystemProperty("openejb.base", "conf/server.xml"));
                     if (sXml.exists()) {
                         final QuickServerXmlParser result = 
QuickServerXmlParser.parse(sXml);
                         serverUrl = "http://"; + result.host() + ":" + 
result.http() + "/tomee/ejb";

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
index 2d2f22a..1135c07 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
@@ -50,6 +50,7 @@ import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.sxc.ApplicationXml;
 import org.apache.openejb.util.AnnotationFinder;
 import org.apache.openejb.util.JarExtractor;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.URLs;
@@ -1117,7 +1118,8 @@ public class DeploymentLoader implements 
DeploymentFilterable {
                                         || 
name.endsWith("tomcat-websocket.jar")
                                         || name.startsWith("commons-jcs-")
                                         || 
name.startsWith("xx-arquillian-tomee")
-                                        || ("lib".equals(name) && 
file.isDirectory() && new File(System.getProperty("openejb.base", 
"-")).equals(file.getParentFile()))) {
+                                        || ("lib".equals(name) && 
file.isDirectory() &&
+                                            new 
File(JavaSecurityManagers.getSystemProperty("openejb.base", 
"-")).equals(file.getParentFile()))) {
                                     it.remove();
                                 }
                             }

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
index d95d72b..8ae340b 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
@@ -22,6 +22,7 @@ import org.apache.openejb.loader.FileUtils;
 import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.Options;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.URLs;
 import org.apache.xbean.finder.UrlSet;
@@ -462,7 +463,7 @@ public class DeploymentsResolver implements 
DeploymentFilterable {
                     }
                 }
 
-                final boolean isWindows = System.getProperty("os.name", 
"unknown").toLowerCase(Locale.ENGLISH).startsWith("windows");
+                final boolean isWindows = 
JavaSecurityManagers.getSystemProperty("os.name", 
"unknown").toLowerCase(Locale.ENGLISH).startsWith("windows");
                 if (!isWindows) {
                     urls = urlSet.getUrls();
                 } else {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java
index 958b5ca..2104df7 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java
@@ -27,9 +27,10 @@ import org.apache.openejb.cli.SystemExitException;
 import org.apache.openejb.config.sys.JaxbOpenejb;
 import org.apache.openejb.config.sys.Openejb;
 import org.apache.openejb.config.sys.Resource;
+import org.apache.openejb.util.JavaSecurityManagers;
 
-import java.io.File;
 import javax.xml.bind.Marshaller;
+import java.io.File;
 
 import static java.util.Arrays.asList;
 
@@ -90,7 +91,9 @@ public final class EffectiveTomEEXml {
         } else {
             for(final String config : asList("tomee.xml", "openejb.xml")) {
                 xml = new File( // we shouldnt go to catalina.base, just a 
fallback
-                        System.getProperty("openejb.base", 
System.getProperty("openejb.home", System.getProperty("catalina.base", 
"missing"))),
+                        JavaSecurityManagers.getSystemProperty("openejb.base",
+                                
JavaSecurityManagers.getSystemProperty("openejb.home",
+                                        
JavaSecurityManagers.getSystemProperty("catalina.base", "missing"))),
                         config);
                 if (xml.isFile()) {
                     break;

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java
index cee93f7..3184721 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java
@@ -16,16 +16,17 @@
  */
 package org.apache.openejb.config;
 
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
 
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.util.Map;
 import java.util.TreeMap;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
 
 public class QuickServerXmlParser extends DefaultHandler {
     private static final SAXParserFactory FACTORY = 
SAXParserFactory.newInstance();
@@ -49,7 +50,7 @@ public class QuickServerXmlParser extends DefaultHandler {
     public static final String DEFAULT_AJP_PORT = "8009";
     public static final String DEFAULT_HOST = "localhost";
     public static final String DEFAULT_APP_BASE = "webapps";
-    public static final String DEFAULT_KEYSTORE = new 
File(System.getProperty("user.home"), ".keystore").getAbsolutePath();
+    public static final String DEFAULT_KEYSTORE = new 
File(JavaSecurityManagers.getSystemProperty("user.home"), 
".keystore").getAbsolutePath();
 
     private final Map<String, String> values = new TreeMap<String, 
String>(String.CASE_INSENSITIVE_ORDER);
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
index 1a0a0b6..8fad3ff 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
@@ -20,6 +20,7 @@ package org.apache.openejb.config;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.Options;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Join;
 
 import java.io.File;
@@ -51,7 +52,7 @@ import java.util.Locale;
 @SuppressWarnings("UseOfSystemOutOrSystemErr")
 public class RemoteServer {
 
-    private static final Options options = new Options(System.getProperties());
+    private static final Options options = new 
Options(JavaSecurityManagers.getSystemProperties());
     public static final String SERVER_DEBUG_PORT = "server.debug.port";
     public static final String SERVER_SHUTDOWN_PORT = "server.shutdown.port";
     public static final String SERVER_SHUTDOWN_HOST = "server.shutdown.host";
@@ -64,7 +65,7 @@ public class RemoteServer {
     private boolean debug = options.get(OPENEJB_SERVER_DEBUG, false);
     private final boolean profile = options.get("openejb.server.profile", 
false);
     private final boolean tomcat;
-    private final String javaOpts = System.getProperty("java.opts");
+    private final String javaOpts = 
JavaSecurityManagers.getSystemProperty("java.opts");
     private String additionalClasspath;
 
     /**
@@ -187,10 +188,11 @@ public class RemoteServer {
                 }
 
                 final File home = getHome();
-                final String javaVersion = System.getProperty("java.version");
+                final String javaVersion = 
JavaSecurityManagers.getSystemProperty("java.version");
                 if (verbose) {
                     System.out.println("OPENEJB_HOME = " + 
home.getAbsolutePath());
-                    final String systemInfo = "Java " + javaVersion + "; " + 
System.getProperty("os.name") + "/" + System.getProperty("os.version");
+                    final String systemInfo = "Java " + javaVersion + "; " +
+                            JavaSecurityManagers.getSystemProperty("os.name") 
+ "/" + JavaSecurityManagers.getSystemProperty("os.version");
                     System.out.println("SYSTEM_INFO  = " + systemInfo);
                 }
 
@@ -212,12 +214,13 @@ public class RemoteServer {
                 //File openejbJar = new File(lib, "openejb-core-" + version + 
".jar");
 
                 final String java;
-                final boolean isWindows = System.getProperty("os.name", 
"unknown").toLowerCase(Locale.ENGLISH).startsWith("windows");
+                final boolean isWindows = 
JavaSecurityManagers.getSystemProperty("os.name", "unknown")
+                        .toLowerCase(Locale.ENGLISH).startsWith("windows");
                 if (isWindows && START.equals(cmd) && 
options.get("server.windows.fork", false)) {
                     // run and forget
-                    java = new File(System.getProperty("java.home"), 
"bin/javaw").getAbsolutePath();
+                    java = new 
File(JavaSecurityManagers.getSystemProperty("java.home"), 
"bin/javaw").getAbsolutePath();
                 } else {
-                    java = new File(System.getProperty("java.home"), 
"bin/java").getAbsolutePath();
+                    java = new 
File(JavaSecurityManagers.getSystemProperty("java.home"), 
"bin/java").getAbsolutePath();
                 }
 
                 final List<String> argsList = new ArrayList<String>(20);
@@ -423,7 +426,7 @@ public class RemoteServer {
     }
 
     public void kill3UNIX() { // debug purpose only
-        if (System.getProperty("os.name", 
"unknown").toLowerCase(Locale.ENGLISH).startsWith("windows")) {
+        if (JavaSecurityManagers.getSystemProperty("os.name", 
"unknown").toLowerCase(Locale.ENGLISH).startsWith("windows")) {
             return;
         }
 
@@ -485,8 +488,9 @@ public class RemoteServer {
     }
 
     private void addIfSet(final List<String> argsList, final String key) {
-        if (System.getProperties().containsKey(key)) {
-            argsList.add("-D" + key + "=" + System.getProperty(key));
+        final String systemProperty = 
JavaSecurityManagers.getSystemProperty(key);
+        if (systemProperty != null) {
+            argsList.add("-D" + key + "=" + systemProperty);
         }
     }
 
@@ -495,7 +499,7 @@ public class RemoteServer {
             return home;
         }
 
-        final String openejbHome = System.getProperty("openejb.home");
+        final String openejbHome = 
JavaSecurityManagers.getSystemProperty("openejb.home");
 
         if (openejbHome != null) {
             home = new File(openejbHome);

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java 
b/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java
index cfb1990..aea69cf 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java
@@ -29,6 +29,7 @@ import org.apache.openejb.NoSuchApplicationException;
 import org.apache.openejb.UndeployException;
 import org.apache.openejb.assembler.Deployer;
 import org.apache.openejb.cli.SystemExitException;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.OpenEjbVersion;
 
@@ -90,7 +91,7 @@ public class Undeploy {
         String serverUrl = line.getOptionValue("server-url", defaultServerUrl);
         if ("auto".equalsIgnoreCase(serverUrl.trim())) {
             try {
-                final File sXml = new File(System.getProperty("openejb.base", 
"conf/server.xml"));
+                final File sXml = new 
File(JavaSecurityManagers.getSystemProperty("openejb.base", "conf/server.xml"));
                 if (sXml.exists()) {
                     final QuickServerXmlParser result = 
QuickServerXmlParser.parse(sXml);
                     serverUrl = "http://"; + result.host() + ":" + 
result.http() + "/tomee/ejb";

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
index 849a9a8..337ac8a 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
@@ -29,6 +29,7 @@ import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.InfoObject;
 import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.loader.IO;
+import org.apache.openejb.util.JavaSecurityManagers;
 
 import javax.enterprise.deploy.model.DeployableObject;
 import javax.enterprise.deploy.shared.ActionType;
@@ -84,7 +85,7 @@ public class VmDeploymentManager implements DeploymentManager 
{
     private boolean deployerLocal;
 
     public VmDeploymentManager() {
-        final String openejbHome = System.getProperty("openejb.home");
+        final String openejbHome = 
JavaSecurityManagers.getSystemProperty("openejb.home");
         final File openejbHomeDir = new File(openejbHome);
         if (!openejbHomeDir.exists()) {
             throw new IllegalArgumentException("OpenEJB home dir does not 
exist: " + openejbHomeDir);
@@ -93,7 +94,7 @@ public class VmDeploymentManager implements DeploymentManager 
{
             throw new IllegalArgumentException("OpenEJB home dir is not a 
directory: " + openejbHomeDir);
         }
 
-        String openejbUri = System.getProperty("openejb.server.uri");
+        String openejbUri = 
JavaSecurityManagers.getSystemProperty("openejb.server.uri");
         if (openejbUri == null) {
             try {
                 openejbUri = new URI("ejbd", null, "localhost", 4201, null, 
null, null).toString();
@@ -106,7 +107,7 @@ public class VmDeploymentManager implements 
DeploymentManager {
     }
 
     private Deployer getDeployer() {
-        final String deployerJndi = 
System.getProperty("openejb.deployer.jndiname", 
"openejb/DeployerBusinessRemote");
+        final String deployerJndi = 
JavaSecurityManagers.getSystemProperty("openejb.deployer.jndiname", 
"openejb/DeployerBusinessRemote");
 
         if (deployer == null) {
             try {
@@ -354,7 +355,7 @@ public class VmDeploymentManager implements 
DeploymentManager {
 
             return new ProgressObjectImpl(CommandType.DISTRIBUTE, 
Collections.singleton(targetModuleId));
         } catch (ValidationFailedException e) {
-            final String s = 
System.getProperty(ReportValidationResults.VALIDATION_LEVEL, "3");
+            final String s = 
JavaSecurityManagers.getSystemProperty(ReportValidationResults.VALIDATION_LEVEL,
 "3");
             final int level = Integer.parseInt(s);
 
             final ByteArrayOutputStream baos = new ByteArrayOutputStream();

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java
index 6a30240..5130d26 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java
@@ -19,6 +19,7 @@ package org.apache.openejb.config.sys;
 
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.SimpleJSonParser;
 import org.xml.sax.helpers.AttributesImpl;
 import org.xml.sax.helpers.DefaultHandler;
@@ -28,9 +29,9 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
-import java.util.Locale;
 
 public class JSonConfigReader {
     private static final String COMMENT_KEY = "__";
@@ -141,7 +142,7 @@ public class JSonConfigReader {
 
                 // set it for openejb AND the JVM since that's probably too 
late to let it be done automatically
                 SystemInstance.get().setProperty(key, str);
-                System.setProperty(key, str);
+                JavaSecurityManagers.setSystemProperty(key, str);
             } else {
                 setProperties(key + '.', map(value));
             }

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
index 3cded7b..358b68a 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
@@ -18,6 +18,7 @@
 package org.apache.openejb.config.sys;
 
 import org.apache.openejb.loader.IO;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.SuperProperties;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
@@ -44,7 +45,7 @@ public class PropertiesAdapter extends XmlAdapter<String, 
Properties> {
 
         if (!(properties instanceof SuperProperties)) {
             // First comment is added by properties.store()
-            string = string.replaceFirst("#.*?" + 
System.getProperty("line.separator"), "");
+            string = string.replaceFirst("#.*?" + 
JavaSecurityManagers.getSystemProperty("line.separator"), "");
         }
 
         return string;

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
index 0669b0d..f6175d4 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
@@ -23,6 +23,7 @@ import org.apache.openejb.core.ivm.IntraVmProxy;
 import org.apache.openejb.core.ivm.naming.java.javaURLContextFactory;
 import org.apache.openejb.core.ivm.naming.openejb.openejbURLContextFactory;
 import org.apache.openejb.loader.IO;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.xbean.naming.context.ContextUtil;
 
 import javax.naming.Binding;
@@ -237,7 +238,7 @@ public class IvmContext implements Context, Serializable {
 
     private static String getUrlPackagePrefixes() {
         // 1. System.getProperty
-        String urlPackagePrefixes = 
System.getProperty(Context.URL_PKG_PREFIXES);
+        String urlPackagePrefixes = 
JavaSecurityManagers.getSystemProperty(Context.URL_PKG_PREFIXES);
 
         // 2. 
Thread.currentThread().getContextClassLoader().getResources("jndi.properties")
         if (urlPackagePrefixes == null) {
@@ -260,7 +261,7 @@ public class IvmContext implements Context, Serializable {
 
         // 3. ${java.home}/lib/jndi.properties
         if (urlPackagePrefixes == null) {
-            final String javahome = System.getProperty("java.home");
+            final String javahome = 
JavaSecurityManagers.getSystemProperty("java.home");
             if (javahome != null) {
                 InputStream in = null;
                 try {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java
index 0827dcc..4d1b026 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java
@@ -19,6 +19,7 @@ package org.apache.openejb.core.managed;
 
 import org.apache.openejb.SystemException;
 import org.apache.openejb.spi.Serializer;
+import org.apache.openejb.util.JavaSecurityManagers;
 
 import java.io.File;
 import java.io.RandomAccessFile;
@@ -52,7 +53,8 @@ public class RAFPassivater implements PassivationStrategy {
     public synchronized void passivate(final Map stateTable)
         throws SystemException {
         try (final RandomAccessFile ras =
-                     new RandomAccessFile(System.getProperty("java.io.tmpdir", 
File.separator + "tmp") + File.separator + "passivation" + fileID + ".ser", 
"rw")) {
+                     new 
RandomAccessFile(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", 
File.separator + "tmp") +
+                             File.separator + "passivation" + fileID + ".ser", 
"rw")) {
             fileID++;
 
             final Iterator iterator = stateTable.keySet().iterator();
@@ -86,7 +88,8 @@ public class RAFPassivater implements PassivationStrategy {
         }
 
         try (final RandomAccessFile ras =
-                     new RandomAccessFile(System.getProperty("java.io.tmpdir", 
File.separator + "tmp") + File.separator + "passivation" + pointer.fileid + 
".ser", "r")) {
+                     new 
RandomAccessFile(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", 
File.separator + "tmp") +
+                             File.separator + "passivation" + pointer.fileid + 
".ser", "r")) {
             final byte[] bytes = new byte[pointer.bytesize];
             ras.seek(pointer.filepointer);
             ras.readFully(bytes);

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java
index 40be8de..aa84b03 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java
@@ -22,6 +22,7 @@ import org.apache.openejb.core.EnvProps;
 import org.apache.openejb.core.ObjectInputStreamFiltered;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
@@ -56,7 +57,7 @@ public class SimplePassivater implements PassivationStrategy {
             if (dir != null) {
                 sessionDirectory = 
SystemInstance.get().getBase().getDirectory(dir).getAbsoluteFile();
             } else {
-                sessionDirectory = new 
File(System.getProperty("java.io.tmpdir", File.separator + 
"tmp")).getAbsoluteFile();
+                sessionDirectory = new 
File(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + 
"tmp")).getAbsoluteFile();
             }
 
             if (!sessionDirectory.exists() && !sessionDirectory.mkdirs()) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java
index 55065de..8638e7c 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java
@@ -16,15 +16,17 @@
  */
 package org.apache.openejb.core.rmi;
 
+import org.apache.openejb.util.JavaSecurityManagers;
+
 import java.io.ObjectStreamClass;
 import java.util.regex.Pattern;
 
 public class BlacklistClassResolver {
     public static final BlacklistClassResolver DEFAULT = new 
BlacklistClassResolver(
-        toArray(System.getProperty(
+        toArray(JavaSecurityManagers.getSystemProperty(
             "tomee.serialization.class.blacklist",
             
"org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process")),
-        toArray(System.getProperty("tomee.serialization.class.whitelist")));
+        
toArray(JavaSecurityManagers.getSystemProperty("tomee.serialization.class.whitelist")));
 
 
     public static final Pattern PRIMITIVE_ARRAY = 
Pattern.compile("^\\[+[BCDFIJSVZ]$");

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
index 17b2585..fe89ef1 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
@@ -28,6 +28,7 @@ import 
org.apache.openejb.core.security.jacc.BasicPolicyConfiguration;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.spi.CallerPrincipal;
 import org.apache.openejb.spi.SecurityService;
+import org.apache.openejb.util.JavaSecurityManagers;
 
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginException;
@@ -73,7 +74,7 @@ public abstract class AbstractSecurityService implements 
DestroyableResource, Se
     }
 
     public AbstractSecurityService(final String jaccProvider) {
-        System.setProperty(JaccProvider.class.getName(), jaccProvider);
+        JavaSecurityManagers.setSystemProperty(JaccProvider.class.getName(), 
jaccProvider);
 
         installJacc();
 
@@ -340,8 +341,8 @@ public abstract class AbstractSecurityService implements 
DestroyableResource, Se
 
         final String providerKey = 
"javax.security.jacc.PolicyConfigurationFactory.provider";
         try {
-            if (System.getProperty(providerKey) == null) {
-                System.setProperty(providerKey, 
JaccProvider.Factory.class.getName());
+            if (JavaSecurityManagers.getSystemProperty(providerKey) == null) {
+                JavaSecurityManagers.setSystemProperty(providerKey, 
JaccProvider.Factory.class.getName());
                 final ClassLoader cl = 
JaccProvider.Factory.class.getClassLoader();
                 Thread.currentThread().setContextClassLoader(cl);
             }
@@ -351,7 +352,7 @@ public abstract class AbstractSecurityService implements 
DestroyableResource, Se
             // from the equivalent call in JaccPermissionsBuilder can be 
avoided.
             PolicyConfigurationFactory.getPolicyConfigurationFactory();
         } catch (final Exception e) {
-            throw new IllegalStateException("Could not install JACC Policy 
Configuration Factory: " + System.getProperty(providerKey), e);
+            throw new IllegalStateException("Could not install JACC Policy 
Configuration Factory: " + JavaSecurityManagers.getSystemProperty(providerKey), 
e);
         } finally {
             Thread.currentThread().setContextClassLoader(contextClassLoader);
         }

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
index 12bdd79..4f91480 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
@@ -20,6 +20,7 @@ package org.apache.openejb.core.security;
 import org.apache.openejb.core.security.jaas.UsernamePasswordCallbackHandler;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.ConfUtils;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.xbean.finder.archive.FileArchive;
 
 import javax.security.auth.Subject;
@@ -66,7 +67,7 @@ public class SecurityServiceImpl extends 
AbstractSecurityService {
         }
 
         final URL loginConfig = ConfUtils.getConfResource("login.config");
-        System.setProperty("java.security.auth.login.config", 
FileArchive.decode(loginConfig.toExternalForm()));
+        
JavaSecurityManagers.setSystemProperty("java.security.auth.login.config", 
FileArchive.decode(loginConfig.toExternalForm()));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
index 869e669..de13545 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java
@@ -17,6 +17,7 @@
 
 package org.apache.openejb.core.security.jaas;
 
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.URLs;
@@ -104,7 +105,7 @@ public class ScriptLoginModule implements LoginModule {
 
     private File getScriptFile(final String path) {
         if (path == null || "".equals(path)) {
-            final File result = new File(System.getProperty("openejb.home"), 
"conf/loginscript.js");
+            final File result = new 
File(JavaSecurityManagers.getSystemProperty("openejb.home"), 
"conf/loginscript.js");
             if (result.exists()) {
                 return result;
             } else {
@@ -130,7 +131,7 @@ public class ScriptLoginModule implements LoginModule {
         }
 
         {
-            final File openEjbConf = new 
File(System.getProperty("openejb.home"), "conf");
+            final File openEjbConf = new 
File(JavaSecurityManagers.getSystemProperty("openejb.home"), "conf");
             final File result = new File(openEjbConf, path);
             if (result.exists()) {
                 return result;
@@ -144,7 +145,7 @@ public class ScriptLoginModule implements LoginModule {
     public boolean login() throws LoginException {
         File script = getScriptFile((String) this.options.get("scriptURI"));
         if (script == null) {
-            script = 
getScriptFile(System.getProperty("openejb.ScriptLoginModule.scriptURI"));
+            script = 
getScriptFile(JavaSecurityManagers.getSystemProperty("openejb.ScriptLoginModule.scriptURI"));
             if (script == null) {
                 script = getScriptFile(null);
             }

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java
index 601fc7c..5058663 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java
@@ -19,6 +19,7 @@ package org.apache.openejb.core.stateful;
 
 import org.apache.openejb.SystemException;
 import org.apache.openejb.spi.Serializer;
+import org.apache.openejb.util.JavaSecurityManagers;
 
 import java.io.File;
 import java.io.RandomAccessFile;
@@ -53,7 +54,8 @@ public class RAFPassivater implements PassivationStrategy {
     public synchronized void passivate(final Map stateTable)
         throws SystemException {
         try(final RandomAccessFile ras = new RandomAccessFile(
-                System.getProperty("java.io.tmpdir", File.separator + "tmp") + 
File.separator + "passivation" + fileID + ".ser", "rw")) {
+                JavaSecurityManagers.getSystemProperty("java.io.tmpdir", 
File.separator + "tmp") +
+                        File.separator + "passivation" + fileID + ".ser", 
"rw")) {
             fileID++;
 
             final Iterator iterator = stateTable.keySet().iterator();
@@ -88,7 +90,8 @@ public class RAFPassivater implements PassivationStrategy {
         }
 
         try (final RandomAccessFile ras =
-                     new RandomAccessFile(System.getProperty("java.io.tmpdir", 
File.separator + "tmp") + File.separator + "passivation" + pointer.fileid + 
".ser", "r")) {
+                     new 
RandomAccessFile(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", 
File.separator + "tmp") +
+                             File.separator + "passivation" + pointer.fileid + 
".ser", "r")) {
             final byte[] bytes = new byte[pointer.bytesize];
             ras.seek(pointer.filepointer);
             ras.readFully(bytes);

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java
index fdc7ebc..e49766f 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java
@@ -22,6 +22,7 @@ import org.apache.openejb.core.EnvProps;
 import org.apache.openejb.core.ivm.EjbObjectInputStream;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
@@ -56,7 +57,7 @@ public class SimplePassivater implements PassivationStrategy {
             if (dir != null) {
                 sessionDirectory = 
SystemInstance.get().getBase().getDirectory(dir);
             } else {
-                sessionDirectory = new 
File(System.getProperty("java.io.tmpdir", File.separator + "tmp"));
+                sessionDirectory = new 
File(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + 
"tmp"));
             }
 
             if (!sessionDirectory.exists() && !sessionDirectory.mkdirs()) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java
index b467092..9ab14ad 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java
@@ -20,6 +20,7 @@ package org.apache.openejb.core.webservices;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.core.ivm.naming.JaxWsServiceReference;
 import org.apache.openejb.loader.IO;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.w3c.dom.Element;
@@ -70,13 +71,13 @@ public class ProviderWrapper extends Provider {
         // Axis JAXWS api is non compliant and checks system property before 
classloader
         // so we replace system property so this wrapper is selected.  The 
original value
         // is saved into an openejb property so we can load the class in the 
find method
-        final String oldProperty = System.getProperty(JAXWSPROVIDER_PROPERTY);
+        final String oldProperty = 
JavaSecurityManagers.getSystemProperty(JAXWSPROVIDER_PROPERTY);
         if (oldProperty != null && 
!oldProperty.equals(ProviderWrapper.class.getName())) {
-            System.setProperty("openejb." + JAXWSPROVIDER_PROPERTY, 
oldProperty);
-            System.setProperty(JAXWSPROVIDER_PROPERTY, 
ProviderWrapper.class.getName());
+            JavaSecurityManagers.setSystemProperty("openejb." + 
JAXWSPROVIDER_PROPERTY, oldProperty);
+            JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, 
ProviderWrapper.class.getName());
         }
 
-        System.setProperty(JAXWSPROVIDER_PROPERTY, 
ProviderWrapper.class.getName());
+        JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, 
ProviderWrapper.class.getName());
 
         final ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
         if (oldClassLoader != null) {
@@ -360,7 +361,7 @@ public class ProviderWrapper extends Provider {
 
         // 0. System.getProperty("openejb.javax.xml.ws.spi.Provider")
         // This is so those using old axis rules still work as expected
-        String providerClass = System.getProperty("openejb." + 
JAXWSPROVIDER_PROPERTY);
+        String providerClass = 
JavaSecurityManagers.getSystemProperty("openejb." + JAXWSPROVIDER_PROPERTY);
         Provider provider = createProviderInstance(providerClass, classLoader);
         if (provider != null) {
             return provider;
@@ -395,7 +396,7 @@ public class ProviderWrapper extends Provider {
         }
 
         // 2. $java.home/lib/jaxws.properties
-        final String javaHome = System.getProperty("java.home");
+        final String javaHome = 
JavaSecurityManagers.getSystemProperty("java.home");
         final File jaxrpcPropertiesFile = new File(new File(javaHome, "lib"), 
"jaxrpc.properties");
         if (jaxrpcPropertiesFile.exists()) {
             try {
@@ -412,7 +413,7 @@ public class ProviderWrapper extends Provider {
         }
 
         // 3. System.getProperty("javax.xml.ws.spi.Provider")
-        providerClass = System.getProperty(JAXWSPROVIDER_PROPERTY);
+        providerClass = 
JavaSecurityManagers.getSystemProperty(JAXWSPROVIDER_PROPERTY);
         provider = createProviderInstance(providerClass, classLoader);
         if (provider != null) {
             return provider;
@@ -421,14 +422,14 @@ public class ProviderWrapper extends Provider {
 
         // 4. Use javax.xml.ws.spi.Provider default
         try {
-            System.getProperties().remove(JAXWSPROVIDER_PROPERTY);
+            JavaSecurityManagers.removeSystemProperty(JAXWSPROVIDER_PROPERTY);
             provider = Provider.provider();
             if (provider != null && 
!provider.getClass().getName().equals(ProviderWrapper.class.getName())) {
                 return provider;
             }
         } finally {
             // restore original jax provider property
-            System.setProperty(JAXWSPROVIDER_PROPERTY, providerClass);
+            JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, 
providerClass);
         }
 
         throw new WebServiceException("No " + JAXWSPROVIDER_PROPERTY + " 
implementation found");

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
index b1a8692..cdb1388 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
@@ -20,6 +20,7 @@ package org.apache.openejb.core.webservices;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.util.Base64;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.URLs;
 
 import java.io.File;
@@ -112,17 +113,17 @@ public class UriResolver {
             try {
                 final HttpURLConnection huc = (HttpURLConnection) 
url.openConnection();
 
-                final String host = System.getProperty("http.proxyHost");
+                final String host = 
JavaSecurityManagers.getSystemProperty("http.proxyHost");
                 if (host != null) {
                     //comment out unused port to pass pmd check
-                    /*String ports = System.getProperty("http.proxyPort");
+                    /*String ports = 
JavaSecurityManagers.getSystemProperty("http.proxyPort");
                     int port = 80;
                     if (ports != null) {
                         port = Integer.parseInt(ports);
                     }*/
 
-                    final String username = 
System.getProperty("http.proxy.user");
-                    final String password = 
System.getProperty("http.proxy.password");
+                    final String username = 
JavaSecurityManagers.getSystemProperty("http.proxy.user");
+                    final String password = 
JavaSecurityManagers.getSystemProperty("http.proxy.password");
 
                     if (username != null && password != null) {
                         final String encoded = new 
String(Base64.encodeBase64((username + ":" + password).getBytes()));

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java
index 1abb9b3..bc3b76f 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java
@@ -17,13 +17,15 @@
 
 package org.apache.openejb.log;
 
+import org.apache.openejb.util.JavaSecurityManagers;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.logging.Formatter;
 import java.util.logging.LogRecord;
 
 public class SingleLineFormatter extends Formatter {
-    private static final String SEP = System.getProperty("line.separator", 
"\n");
+    private static final String SEP = 
JavaSecurityManagers.getSystemProperty("line.separator", "\n");
 
     @Override
     public synchronized String format(final LogRecord record) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
index 9b61623..c074b5a 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
@@ -22,6 +22,7 @@ import org.apache.openejb.core.TempClassLoader;
 import org.apache.openejb.javaagent.Agent;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.Saxs;
 import org.apache.xbean.finder.ClassLoaders;
 import org.apache.xbean.finder.UrlSet;
@@ -264,7 +265,7 @@ public class PersistenceBootstrap {
         if (SystemInstance.isInitialized()) {
             return SystemInstance.get().getOptions().get(property, (String) 
null);
         }
-        return System.getProperty(property);
+        return JavaSecurityManagers.getSystemProperty(property);
     }
 
     private static void debug(final String x) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
index 6255394..38a5097 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
@@ -27,6 +27,7 @@ import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.resource.jdbc.BasicDataSourceUtil;
 import org.apache.openejb.resource.jdbc.IsolationLevels;
 import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.reflection.Reflections;
 
 import javax.management.MBeanServer;
@@ -205,7 +206,7 @@ public class BasicDataSource extends 
org.apache.commons.dbcp2.BasicDataSource im
                 }
             } else {
                 // wrap super call with code that sets user.dir to 
openejb.base and then resets it
-                final Properties systemProperties = System.getProperties();
+                final Properties systemProperties = 
JavaSecurityManagers.getSystemProperties();
 
                 final String userDir = 
systemProperties.getProperty("user.dir");
                 try {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
index 67c06fb..c3d92e5 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
@@ -31,6 +31,7 @@ import org.apache.openejb.resource.jdbc.BasicDataSourceUtil;
 import org.apache.openejb.resource.jdbc.IsolationLevels;
 import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin;
 import org.apache.openejb.resource.jdbc.pool.XADataSourceResource;
+import org.apache.openejb.util.JavaSecurityManagers;
 import org.apache.openejb.util.reflection.Reflections;
 
 import javax.management.MBeanServer;
@@ -321,7 +322,7 @@ public class BasicManagedDataSource extends 
org.apache.commons.dbcp2.managed.Bas
                 }
             } else {
                 // wrap super call with code that sets user.dir to 
openejb.base and then resets it
-                final Properties systemProperties = System.getProperties();
+                final Properties systemProperties = 
JavaSecurityManagers.getSystemProperties();
 
                 final String userDir = 
systemProperties.getProperty("user.dir");
                 try {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
index e99da49..6f779e1 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
@@ -18,12 +18,13 @@
 package org.apache.openejb.resource.jdbc.plugin;
 
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.JavaSecurityManagers;
 
 public class DerbyDataSourcePlugin extends AbstractDataSourcePlugin {
     @Override
     public String updatedUrl(final String dataSourceUrl) {
 
-        System.setProperty("derby.system.home"
+        JavaSecurityManagers.setSystemProperty("derby.system.home"
             , SystemInstance.get().getProperty("derby.system.home", 
SystemInstance.get().getBase().getDirectory().getAbsolutePath()));
         return dataSourceUrl;
     }

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java
index df16c18..a5d1086 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java
@@ -18,8 +18,6 @@
 package org.apache.openejb.resource.quartz;
 
 import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.Logger;
 import org.apache.openejb.quartz.Job;
 import org.apache.openejb.quartz.JobDataMap;
 import org.apache.openejb.quartz.JobExecutionContext;
@@ -28,6 +26,9 @@ import org.apache.openejb.quartz.Scheduler;
 import org.apache.openejb.quartz.SchedulerException;
 import org.apache.openejb.quartz.impl.StdSchedulerFactory;
 import org.apache.openejb.quartz.listeners.SchedulerListenerSupport;
+import org.apache.openejb.util.JavaSecurityManagers;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
 
 import javax.resource.ResourceException;
 import javax.resource.spi.ActivationSpec;
@@ -75,16 +76,16 @@ public class QuartzResourceAdapter implements 
ResourceAdapter {
         }
 
         //Allow org.apache.openejb.quartz.InterruptableJob implementors to be 
interrupted on shutdown
-        
System.setProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN
-            , 
System.getProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN, 
"true"));
-        
System.setProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT
-            , 
System.getProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT,
 "true"));
+        
JavaSecurityManagers.setSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN
+            , 
JavaSecurityManagers.getSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN,
 "true"));
+        
JavaSecurityManagers.setSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT
+            , 
JavaSecurityManagers.getSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT,
 "true"));
 
         //Let the user enable this if they really want it
-        System.setProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK
-            , 
System.getProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK, "true"));
-        System.setProperty("org.terracotta.quartz.skipUpdateCheck"
-            , System.getProperty("org.terracotta.quartz.skipUpdateCheck", 
"true"));
+        
JavaSecurityManagers.setSystemProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK
+            , 
JavaSecurityManagers.getSystemProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK,
 "true"));
+        
JavaSecurityManagers.setSystemProperty("org.terracotta.quartz.skipUpdateCheck"
+            , 
JavaSecurityManagers.getSystemProperty("org.terracotta.quartz.skipUpdateCheck", 
"true"));
 
         startThread.set(new Thread("Quartz Scheduler Start") {
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java
index 95a0717..fb3711e 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java
@@ -17,6 +17,8 @@
 
 package org.apache.openejb.ri.sp;
 
+import org.apache.openejb.util.JavaSecurityManagers;
+
 import javax.security.jacc.PolicyConfiguration;
 import javax.security.jacc.PolicyConfigurationFactory;
 import javax.security.jacc.PolicyContextException;
@@ -29,7 +31,7 @@ import java.security.PermissionCollection;
 public class PseudoPolicyConfigurationFactory extends 
PolicyConfigurationFactory {
 
     public static void install() {
-        
System.setProperty("javax.security.jacc.PolicyConfigurationFactory.provider", 
PseudoPolicyConfigurationFactory.class.getName());
+        
JavaSecurityManagers.setSystemProperty("javax.security.jacc.PolicyConfigurationFactory.provider",
 PseudoPolicyConfigurationFactory.class.getName());
     }
 
     public PolicyConfiguration getPolicyConfiguration(final String contextID, 
final boolean remove) throws PolicyContextException {

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java 
b/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java
index 781bd1a..1178032 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java
@@ -17,6 +17,8 @@
 
 package org.apache.openejb.table;
 
+import org.apache.openejb.util.JavaSecurityManagers;
+
 import java.io.PrintStream;
 
 public class Line {
@@ -26,7 +28,7 @@ public class Line {
     public static final char EMPTY_CHAR = ' ';
 
     private final String[] columns;
-    private String cr = System.getProperty("line.separator");
+    private String cr = 
JavaSecurityManagers.getSystemProperty("line.separator");
 
     public Line(final String... columns) {
         this.columns = columns;

http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java 
b/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java
index 2fb73b3..2c04f85 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java
@@ -17,6 +17,8 @@
 
 package org.apache.openejb.table;
 
+import org.apache.openejb.util.JavaSecurityManagers;
+
 import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -27,7 +29,7 @@ public class Lines {
     private final String cr;
 
     public Lines() {
-        this(System.getProperty("line.separator"));
+        this(JavaSecurityManagers.getSystemProperty("line.separator"));
     }
 
     public Lines(final String cr) {

Reply via email to