You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2017/03/24 17:37:02 UTC

[1/4] cxf git commit: CXF-7292 additional privileged blocks required when Security Manager is enabled This closes #248

Repository: cxf
Updated Branches:
  refs/heads/master e70c78ead -> 10ed38c6d


CXF-7292 additional privileged blocks required when Security Manager is enabled
This closes #248


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/10ed38c6
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/10ed38c6
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/10ed38c6

Branch: refs/heads/master
Commit: 10ed38c6d1f74f75ae231e8b91b7198b4e162ab3
Parents: 8172db9
Author: Ivo Studensky <is...@redhat.com>
Authored: Thu Feb 18 14:00:29 2016 +0100
Committer: Daniel Kulp <dk...@apache.org>
Committed: Fri Mar 24 13:36:49 2017 -0400

----------------------------------------------------------------------
 .../apache/cxf/catalog/OASISCatalogManager.java | 38 +++++++++++++++--
 .../common/classloader/ClassLoaderUtils.java    | 41 +++++++++++++++---
 .../org/apache/cxf/common/i18n/BundleUtils.java | 35 +++++++++++++--
 .../cxf/common/injection/ResourceInjector.java  |  2 +-
 .../org/apache/cxf/common/jaxb/JAXBUtils.java   | 23 +++++++---
 .../org/apache/cxf/common/logging/LogUtils.java | 45 ++++++++++++++++----
 .../org/apache/cxf/common/util/ProxyHelper.java | 31 ++++++++++++--
 .../java/org/apache/cxf/helpers/DOMUtils.java   | 30 ++++++++++++-
 .../java/org/apache/cxf/helpers/XPathUtils.java | 16 ++++++-
 .../org/apache/cxf/resource/URIResolver.java    | 12 ++++--
 .../cxf/binding/soap/SOAPBindingUtil.java       | 35 +++++++++++++--
 .../handler/AnnotationHandlerChainBuilder.java  | 16 ++++++-
 .../cxf/frontend/ClientProxyFactoryBean.java    | 17 +++++++-
 .../cxf/transport/http/CXFAuthenticator.java    |  8 ++--
 .../http/URLConnectionHTTPConduit.java          | 19 ++++++++-
 15 files changed, 319 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java b/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
index 6950ac2..d971c1a 100644
--- a/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
+++ b/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
@@ -24,6 +24,10 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.Enumeration;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
@@ -133,7 +137,7 @@ public class OASISCatalogManager {
     }
     public final void loadContextCatalogs(String name) {
         try {
-            loadCatalogs(Thread.currentThread().getContextClassLoader(), name);
+            loadCatalogs(getContextClassLoader(), name);
         } catch (IOException e) {
             LOG.log(Level.WARNING, "Error loading " + name + " catalog files", e);
         }
@@ -146,12 +150,27 @@ public class OASISCatalogManager {
 
         Enumeration<URL> catalogs = classLoader.getResources(name);
         while (catalogs.hasMoreElements()) {
-            URL catalogURL = catalogs.nextElement();
+            final URL catalogURL = catalogs.nextElement();
             if (catalog == null) {
                 LOG.log(Level.WARNING, "Catalog found at {0} but no org.apache.xml.resolver.CatalogManager was found."
                         + "  Check the classpatch for an xmlresolver jar.", catalogURL.toString());
             } else if (!loadedCatalogs.contains(catalogURL.toString())) {
-                ((Catalog)catalog).parseCatalog(catalogURL);
+                final SecurityManager sm = System.getSecurityManager();
+                if (sm == null) {
+                    ((Catalog)catalog).parseCatalog(catalogURL);
+                } else {
+                    try {
+                        AccessController.doPrivileged(new PrivilegedExceptionAction<Void>() {
+                            @Override
+                            public Void run() throws Exception {
+                                ((Catalog)catalog).parseCatalog(catalogURL);
+                                return null;
+                            }
+                        });
+                    } catch (PrivilegedActionException e) {
+                        throw (IOException) e.getException();
+                    }
+                }
                 loadedCatalogs.add(catalogURL.toString());
             }
         }
@@ -230,4 +249,17 @@ public class OASISCatalogManager {
         return resolver;
     }
 
+    private static ClassLoader getContextClassLoader() {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                @Override
+                public ClassLoader run() {
+                    return Thread.currentThread().getContextClassLoader();
+                }
+            });
+        }
+        return Thread.currentThread().getContextClassLoader();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java b/core/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java
index 971045f..df7d30e 100644
--- a/core/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java
@@ -250,7 +250,7 @@ public final class ClassLoaderUtils {
     public static Class<?> loadClass(String className, Class<?> callingClass)
         throws ClassNotFoundException {
         try {
-            ClassLoader cl = Thread.currentThread().getContextClassLoader();
+            ClassLoader cl = getContextClassLoader();
 
             if (cl != null) {
                 return cl.loadClass(className);
@@ -263,7 +263,7 @@ public final class ClassLoaderUtils {
     public static <T> Class<? extends T> loadClass(String className, Class<?> callingClass, Class<T> type)
         throws ClassNotFoundException {
         try {
-            ClassLoader cl = Thread.currentThread().getContextClassLoader();
+            ClassLoader cl = getContextClassLoader();
 
             if (cl != null) {
                 return cl.loadClass(className).asSubclass(type);
@@ -279,15 +279,44 @@ public final class ClassLoaderUtils {
             return Class.forName(className);
         } catch (ClassNotFoundException ex) {
             try {
-                if (ClassLoaderUtils.class.getClassLoader() != null) {
-                    return ClassLoaderUtils.class.getClassLoader().loadClass(className);
+                final ClassLoader loader = getClassLoader(ClassLoaderUtils.class);
+                if (loader != null) {
+                    return loader.loadClass(className);
                 }
             } catch (ClassNotFoundException exc) {
-                if (callingClass != null && callingClass.getClassLoader() != null) {
-                    return callingClass.getClassLoader().loadClass(className);
+                if (callingClass != null) {
+                    final ClassLoader callingClassLoader = getClassLoader(callingClass);
+                    if (callingClassLoader != null) {
+                        return callingClassLoader.loadClass(className);
+                    }
                 }
             }
             throw ex;
         }
     }
+
+    private static ClassLoader getContextClassLoader() {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return Thread.currentThread().getContextClassLoader();
+                }
+            });
+        }
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/common/i18n/BundleUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/i18n/BundleUtils.java b/core/src/main/java/org/apache/cxf/common/i18n/BundleUtils.java
index 011d00e..24ecca4 100644
--- a/core/src/main/java/org/apache/cxf/common/i18n/BundleUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/i18n/BundleUtils.java
@@ -19,6 +19,8 @@
 
 package org.apache.cxf.common.i18n;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.text.MessageFormat;
 import java.util.Locale;
 import java.util.MissingResourceException;
@@ -77,7 +79,7 @@ public final class BundleUtils {
     public static ResourceBundle getBundle(Class<?> cls) {
 
         try {
-            ClassLoader loader = cls.getClassLoader();
+            ClassLoader loader = getClassLoader(cls);
             if (loader == null) {
                 return ResourceBundle.getBundle(getBundleName(cls), Locale.getDefault());
             }
@@ -85,7 +87,7 @@ public final class BundleUtils {
                                         Locale.getDefault(),
                                         loader);
         } catch (MissingResourceException ex) {
-            ClassLoader loader = Thread.currentThread().getContextClassLoader();
+            ClassLoader loader = getContextClassLoader();
             if (loader == null) {
                 return ResourceBundle.getBundle(getBundleName(cls), Locale.getDefault());
             }
@@ -106,7 +108,7 @@ public final class BundleUtils {
      */
     public static ResourceBundle getBundle(Class<?> cls, String name) {
         try {
-            ClassLoader loader = cls.getClassLoader();
+            ClassLoader loader = getClassLoader(cls);
             if (loader == null) {
                 return ResourceBundle.getBundle(getBundleName(cls, name), Locale.getDefault());
             }
@@ -114,7 +116,7 @@ public final class BundleUtils {
                                             Locale.getDefault(),
                                             loader);
         } catch (MissingResourceException ex) {
-            ClassLoader loader = Thread.currentThread().getContextClassLoader();
+            ClassLoader loader = getContextClassLoader();
             if (loader == null) {
                 return ResourceBundle.getBundle(getBundleName(cls, name), Locale.getDefault());
             }
@@ -136,4 +138,29 @@ public final class BundleUtils {
     public static String getFormattedString(ResourceBundle b, String key, Object ... params) {
         return MessageFormat.format(b.getString(key), params);
     }
+
+    private static ClassLoader getContextClassLoader() {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return Thread.currentThread().getContextClassLoader();
+                }
+            });
+        }
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java b/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
index 27efdcc..4be7d04 100644
--- a/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
+++ b/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
@@ -79,7 +79,7 @@ public class ResourceInjector extends AbstractAnnotationVisitor {
             return null;
         }
         try {
-            return cls.getDeclaredField(name);
+            return ReflectionUtil.getDeclaredField(cls, name);
         } catch (Exception ex) {
             return getField(cls.getSuperclass(), name);
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
index 24d749a..76d2f38 100644
--- a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
@@ -38,6 +38,8 @@ import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.nio.charset.StandardCharsets;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -874,7 +876,7 @@ public final class JAXBUtils {
                 Package pkg = jcls.getPackage();
 
                 packages.put(pkgName, jcls.getResourceAsStream("jaxb.index"));
-                packageLoaders.put(pkgName, jcls.getClassLoader());
+                packageLoaders.put(pkgName, getClassLoader(jcls));
                 String objectFactoryClassName = pkgName + "." + "ObjectFactory";
                 Class<?> ofactory = null;
                 CachedClass cachedFactory = null;
@@ -888,8 +890,7 @@ public final class JAXBUtils {
                 }
                 if (ofactory == null) {
                     try {
-                        ofactory = Class.forName(objectFactoryClassName, false, jcls
-                                                 .getClassLoader());
+                        ofactory = Class.forName(objectFactoryClassName, false, getClassLoader(jcls));
                         objectFactories.add(ofactory);
                         addToObjectFactoryCache(pkg, ofactory, objectFactoryCache);
                     } catch (ClassNotFoundException e) {
@@ -944,8 +945,20 @@ public final class JAXBUtils {
         classes.addAll(objectFactories);
     }
 
-
-    private static void addToObjectFactoryCache(Package objectFactoryPkg,
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                @Override
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+       
+    private static void addToObjectFactoryCache(Package objectFactoryPkg, 
                                          Class<?> ofactory,
                                          Map<Package, CachedClass> objectFactoryCache) {
         if (objectFactoryPkg == null || objectFactoryCache == null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/common/logging/LogUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/logging/LogUtils.java b/core/src/main/java/org/apache/cxf/common/logging/LogUtils.java
index c4f0742..2c59d4f 100644
--- a/core/src/main/java/org/apache/cxf/common/logging/LogUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/logging/LogUtils.java
@@ -229,8 +229,8 @@ public final class LogUtils {
     protected static Logger createLogger(Class<?> cls,
                                          String name,
                                          String loggerName) {
-        ClassLoader orig = Thread.currentThread().getContextClassLoader();
-        ClassLoader n = cls.getClassLoader();
+        ClassLoader orig = getContextClassLoader();
+        ClassLoader n = getClassLoader(cls);
         if (n != null) {
             setContextClassLoader(n);
         }
@@ -307,12 +307,41 @@ public final class LogUtils {
     }
 
     private static void setContextClassLoader(final ClassLoader classLoader) {
-        AccessController.doPrivileged(new PrivilegedAction<Object>() {
-            public Object run() {
-                Thread.currentThread().setContextClassLoader(classLoader);
-                return null;
-            }
-        });
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(classLoader);
+                    return null;
+                }
+            });
+        } else {
+            Thread.currentThread().setContextClassLoader(classLoader);
+        }
+    }
+
+    private static ClassLoader getContextClassLoader() {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return Thread.currentThread().getContextClassLoader();
+                }
+            });
+        }
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/common/util/ProxyHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/util/ProxyHelper.java b/core/src/main/java/org/apache/cxf/common/util/ProxyHelper.java
index 931d3ac..803ad39 100644
--- a/core/src/main/java/org/apache/cxf/common/util/ProxyHelper.java
+++ b/core/src/main/java/org/apache/cxf/common/util/ProxyHelper.java
@@ -22,6 +22,8 @@ package org.apache.cxf.common.util;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 
 /**
  *
@@ -55,17 +57,40 @@ public class ProxyHelper {
      * @param interfaces
      * @return classloader that sees all interfaces
      */
-    private ClassLoader getClassLoaderForInterfaces(ClassLoader loader, Class<?>[] interfaces) {
+    private ClassLoader getClassLoaderForInterfaces(final ClassLoader loader, final Class<?>[] interfaces) {
         if (canSeeAllInterfaces(loader, interfaces)) {
             return loader;
         }
-        ProxyClassLoader combined = new ProxyClassLoader(loader, interfaces);
+        ProxyClassLoader combined;
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm == null) {
+            combined = new ProxyClassLoader(loader, interfaces);
+        } else {
+            combined = AccessController.doPrivileged(new PrivilegedAction<ProxyClassLoader>() {
+                @Override
+                public ProxyClassLoader run() {
+                    return new ProxyClassLoader(loader, interfaces);
+                }
+            });
+        }
         for (Class<?> currentInterface : interfaces) {
-            combined.addLoader(currentInterface.getClassLoader());
+            combined.addLoader(getClassLoader(currentInterface));
         }
         return combined;
     }
 
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
     private boolean canSeeAllInterfaces(ClassLoader loader, Class<?>[] interfaces) {
         for (Class<?> currentInterface : interfaces) {
             String ifName = currentInterface.getName();

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java b/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
index 0c48392..11cbee9 100644
--- a/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
+++ b/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
@@ -21,6 +21,8 @@ package org.apache.cxf.helpers;
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedHashSet;
@@ -62,9 +64,9 @@ public final class DOMUtils {
     }
 
     private static DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+        ClassLoader loader = getContextClassLoader();
         if (loader == null) {
-            loader = DOMUtils.class.getClassLoader();
+            loader = getClassLoader(DOMUtils.class);
         }
         if (loader == null) {
             return DocumentBuilderFactory.newInstance().newDocumentBuilder();
@@ -79,6 +81,30 @@ public final class DOMUtils {
         return factory;
     }
 
+    private static ClassLoader getContextClassLoader() {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return Thread.currentThread().getContextClassLoader();
+                }
+            });
+        }
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
     /**
      * Creates a new Document object
      * @throws ParserConfigurationException

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/helpers/XPathUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/helpers/XPathUtils.java b/core/src/main/java/org/apache/cxf/helpers/XPathUtils.java
index 802a175..c5012bb 100644
--- a/core/src/main/java/org/apache/cxf/helpers/XPathUtils.java
+++ b/core/src/main/java/org/apache/cxf/helpers/XPathUtils.java
@@ -19,6 +19,8 @@
 
 package org.apache.cxf.helpers;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Map;
 
 import javax.xml.namespace.NamespaceContext;
@@ -59,7 +61,7 @@ public class XPathUtils {
 
     public Object getValue(String xpathExpression, Node node, QName type) {
         ClassLoaderHolder loader
-            = ClassLoaderUtils.setThreadContextClassloader(xpath.getClass().getClassLoader());
+            = ClassLoaderUtils.setThreadContextClassloader(getClassLoader(xpath.getClass()));
         try {
             return xpath.evaluate(xpathExpression, node, type);
         } catch (Exception e) {
@@ -84,4 +86,16 @@ public class XPathUtils {
         return getValue(xpathExpression, node, type) != null;
     }
 
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/core/src/main/java/org/apache/cxf/resource/URIResolver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/resource/URIResolver.java b/core/src/main/java/org/apache/cxf/resource/URIResolver.java
index a3a65e5..60ae0fe 100644
--- a/core/src/main/java/org/apache/cxf/resource/URIResolver.java
+++ b/core/src/main/java/org/apache/cxf/resource/URIResolver.java
@@ -30,6 +30,8 @@ import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLDecoder;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.logging.Level;
@@ -132,10 +134,14 @@ public class URIResolver {
             // It is possible that spaces have been encoded.  We should decode them first.
             uriStr = uriStr.replaceAll("%20", " ");
 
-            File uriFile = new File(uriStr);
+            final File uriFileTemp = new File(uriStr);
 
-
-            uriFile = new File(uriFile.getAbsolutePath());
+            File uriFile = new File(AccessController.doPrivileged(new PrivilegedAction<String>() {
+                @Override
+                public String run() {
+                    return uriFileTemp.getAbsolutePath();
+                }
+            }));
             if (!SecurityActions.fileExists(uriFile, CXFPermissions.RESOLVE_URI)) {
                 try {
                     URI urif = new URI(URLDecoder.decode(orig, "ASCII"));

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SOAPBindingUtil.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SOAPBindingUtil.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SOAPBindingUtil.java
index 779bfd4..c0ff8f2 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SOAPBindingUtil.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SOAPBindingUtil.java
@@ -21,6 +21,8 @@ package org.apache.cxf.binding.soap;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -87,13 +89,14 @@ public final class SOAPBindingUtil {
          */
         Object proxy = null;
         try {
-            proxy = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
+            proxy = Proxy.newProxyInstance(getContextClassLoader(),
                                               new Class[] {cls}, ih);
         } catch (Throwable ex) {
             // Using cls classloader as a fallback to make it work within OSGi
-            ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
-            if (contextLoader != cls.getClassLoader()) {
-                proxy = Proxy.newProxyInstance(cls.getClassLoader(),
+            ClassLoader contextLoader = getContextClassLoader();
+            final ClassLoader clsClassLoader = getClassLoader(cls);
+            if (contextLoader != clsClassLoader) {
+                proxy = Proxy.newProxyInstance(clsClassLoader,
                                               new Class[] {cls}, ih);
             } else {
                 if (ex instanceof RuntimeException) {
@@ -105,6 +108,30 @@ public final class SOAPBindingUtil {
         return cls.cast(proxy);
     }
 
+    private static ClassLoader getContextClassLoader() {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return Thread.currentThread().getContextClassLoader();
+                }
+            });
+        }
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
     public static boolean isSOAPBinding(Binding binding) {
         for (Object obj : binding.getExtensibilityElements()) {
             if (isSOAPBinding(obj)) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
index fda81cb..df4f605 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
@@ -20,6 +20,8 @@
 package org.apache.cxf.jaxws.handler;
 
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.ResourceBundle;
@@ -74,7 +76,7 @@ public class AnnotationHandlerChainBuilder extends HandlerChainBuilder {
     public List<Handler> buildHandlerChainFromClass(Class<?> clz, List<Handler> existingHandlers,
                                                     QName portQName, QName serviceQName, String bindingID) {
         LOG.fine("building handler chain");
-        classLoader = clz.getClassLoader();
+        classLoader = getClassLoader(clz);
         HandlerChainAnnotation hcAnn = findHandlerChainAnnotation(clz, true);
         List<Handler> chain = null;
         if (hcAnn == null) {
@@ -139,6 +141,18 @@ public class AnnotationHandlerChainBuilder extends HandlerChainBuilder {
         return sortHandlers(chain);
     }
 
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
     private void processHandlerChainElement(Element el, List<Handler> chain,
                                             QName portQName, QName serviceQName, String bindingID) {
         Node node = el.getFirstChild();

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
----------------------------------------------------------------------
diff --git a/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java b/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
index bfac3fc..34ebab5 100644
--- a/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
+++ b/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
@@ -19,6 +19,8 @@
 package org.apache.cxf.frontend;
 
 import java.io.Closeable;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -171,8 +173,7 @@ public class ClientProxyFactoryBean extends AbstractBasicInterceptorProvider {
             ClientProxy handler = clientClientProxy(c);
 
             Class<?> classes[] = getImplementingClasses();
-
-            Object obj = ProxyHelper.getProxy(clientFactoryBean.getServiceClass().getClassLoader(),
+            Object obj = ProxyHelper.getProxy(getClassLoader(clientFactoryBean.getServiceClass()),
                                               classes,
                                               handler);
 
@@ -186,6 +187,18 @@ public class ClientProxyFactoryBean extends AbstractBasicInterceptorProvider {
         }
     }
 
+    private static ClassLoader getClassLoader(final Class<?> clazz) {
+        final SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
+                    return clazz.getClassLoader();
+                }
+            });
+        }
+        return clazz.getClassLoader();
+    }
+
     protected Class<?>[] getImplementingClasses() {
         Class<?> cls = clientFactoryBean.getServiceClass();
         return new Class[] {cls, Closeable.class, Client.class};

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
index fad7b53..7729c79 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
@@ -50,7 +50,7 @@ public class CXFAuthenticator extends Authenticator {
         if (instance == null) {
             instance = new CXFAuthenticator();
             Authenticator wrapped = null;
-            for (final Field f : Authenticator.class.getDeclaredFields()) {
+            for (final Field f : ReflectionUtil.getDeclaredFields(Authenticator.class)) {
                 if (f.getType().equals(Authenticator.class)) {
                     ReflectionUtil.setAccessible(f);
                     try {
@@ -74,9 +74,7 @@ public class CXFAuthenticator extends Authenticator {
                             return new URLClassLoader(new URL[0], ClassLoader.getSystemClassLoader());
                         }
                     }, null);
-
-
-                Method m = ClassLoader.class.getDeclaredMethod("defineClass", String.class,
+                Method m = ReflectionUtil.getDeclaredMethod(ClassLoader.class, "defineClass", String.class,
                                                                byte[].class, Integer.TYPE, Integer.TYPE);
 
                 InputStream ins = ReferencingAuthenticator.class
@@ -102,7 +100,7 @@ public class CXFAuthenticator extends Authenticator {
                 }
                 try {
                     //clear the acc field that can hold onto the webapp classloader
-                    Field f = loader.getClass().getDeclaredField("acc");
+                    Field f = ReflectionUtil.getDeclaredField(loader.getClass(), "acc");
                     ReflectionUtil.setAccessible(f).set(loader, null);
                 } catch (Throwable t) {
                     //ignore

http://git-wip-us.apache.org/repos/asf/cxf/blob/10ed38c6/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
index b7b6b74..0ed4b71 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
@@ -30,6 +30,9 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLConnection;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.logging.Level;
 
 import javax.net.ssl.HttpsURLConnection;
@@ -254,7 +257,21 @@ public class URLConnectionHTTPConduit extends HTTPConduit {
             OutputStream cout = null;
             try {
                 try {
-                    cout = connection.getOutputStream();
+//                    cout = connection.getOutputStream();
+                    if (System.getSecurityManager() != null) {
+                        try {
+                            cout = AccessController.doPrivileged(new PrivilegedExceptionAction<OutputStream>() {
+                                @Override
+                                public OutputStream run() throws IOException {
+                                    return connection.getOutputStream();
+                                }
+                            });
+                        } catch (PrivilegedActionException e) {
+                            throw (IOException) e.getException();
+                        }
+                    } else {
+                        cout = connection.getOutputStream();
+                    }
                 } catch (ProtocolException pe) {
                     Boolean b = (Boolean)outMessage.get(HTTPURL_CONNECTION_METHOD_REFLECTION);
                     cout = connectAndGetOutputStream(b);


[3/4] cxf git commit: [CXF-4778] Increase memory given to command line tools

Posted by dk...@apache.org.
[CXF-4778] Increase memory given to command line tools


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/8172db9f
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/8172db9f
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/8172db9f

Branch: refs/heads/master
Commit: 8172db9fcfd3472731fdd9e26704bcdd7f63cd76
Parents: 1f888b8
Author: Daniel Kulp <dk...@apache.org>
Authored: Fri Mar 24 11:28:17 2017 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Fri Mar 24 13:36:49 2017 -0400

----------------------------------------------------------------------
 distribution/src/main/release/bin/idl2wsdl          | 7 ++++++-
 distribution/src/main/release/bin/idl2wsdl.bat      | 8 ++++++--
 distribution/src/main/release/bin/java2js           | 7 ++++++-
 distribution/src/main/release/bin/java2js.bat       | 9 +++++++--
 distribution/src/main/release/bin/java2ws           | 7 ++++++-
 distribution/src/main/release/bin/java2ws.bat       | 6 +++++-
 distribution/src/main/release/bin/mc                | 7 ++++++-
 distribution/src/main/release/bin/mc.bat            | 7 ++++++-
 distribution/src/main/release/bin/wadl2java         | 7 ++++++-
 distribution/src/main/release/bin/wadl2java.bat     | 6 +++++-
 distribution/src/main/release/bin/wsdl2corba        | 7 ++++++-
 distribution/src/main/release/bin/wsdl2corba.bat    | 5 ++++-
 distribution/src/main/release/bin/wsdl2java         | 6 +++++-
 distribution/src/main/release/bin/wsdl2java.bat     | 6 +++++-
 distribution/src/main/release/bin/wsdl2js           | 7 ++++++-
 distribution/src/main/release/bin/wsdl2js.bat       | 5 ++++-
 distribution/src/main/release/bin/wsdl2service      | 7 ++++++-
 distribution/src/main/release/bin/wsdl2service.bat  | 7 ++++++-
 distribution/src/main/release/bin/wsdl2soap         | 7 ++++++-
 distribution/src/main/release/bin/wsdl2soap.bat     | 6 +++++-
 distribution/src/main/release/bin/wsdl2xml          | 7 ++++++-
 distribution/src/main/release/bin/wsdl2xml.bat      | 6 +++++-
 distribution/src/main/release/bin/wsdlvalidator     | 7 ++++++-
 distribution/src/main/release/bin/wsdlvalidator.bat | 6 +++++-
 distribution/src/main/release/bin/xsd2wsdl          | 8 +++++++-
 distribution/src/main/release/bin/xsd2wsdl.bat      | 7 ++++++-
 26 files changed, 147 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/idl2wsdl
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/idl2wsdl b/distribution/src/main/release/bin/idl2wsdl
index 8c4c5f8..ed6e264 100755
--- a/distribution/src/main/release/bin/idl2wsdl
+++ b/distribution/src/main/release/bin/idl2wsdl
@@ -67,7 +67,12 @@ else
    cxf_classpath=${cxf_jar}:${CLASSPATH}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.corba.IDLToWSDL "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.corba.IDLToWSDL "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/idl2wsdl.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/idl2wsdl.bat b/distribution/src/main/release/bin/idl2wsdl.bat
index c3e8465..38b4e31 100644
--- a/distribution/src/main/release/bin/idl2wsdl.bat
+++ b/distribution/src/main/release/bin/idl2wsdl.bat
@@ -36,7 +36,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.corba.IDLToWSDL %*
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.corba.IDLToWSDL %*
 
 @endlocal
 
@@ -54,4 +58,4 @@ goto end
 set CXF_HOME=%~dp0..
 goto cont
 
-:end
\ No newline at end of file
+:end

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/java2js
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/java2js b/distribution/src/main/release/bin/java2js
index 493c471..4778cb0 100755
--- a/distribution/src/main/release/bin/java2js
+++ b/distribution/src/main/release/bin/java2js
@@ -93,4 +93,9 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.java2js.JavaToJS "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.java2js.JavaToJS "$@"

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/java2js.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/java2js.bat b/distribution/src/main/release/bin/java2js.bat
index bf1b489..cf9b1ce 100644
--- a/distribution/src/main/release/bin/java2js.bat
+++ b/distribution/src/main/release/bin/java2js.bat
@@ -36,7 +36,12 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.java2js.JavaToJS %*
+if "%JAVA_MAX_MEM%" == "" (
+     set JAVA_MAX_MEM=512M
+)
+
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.java2js.JavaToJS %*
 
 @endlocal
 
@@ -54,4 +59,4 @@ goto end
 set CXF_HOME=%~dp0..
 goto cont
 
-:end
\ No newline at end of file
+:end

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/java2ws
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/java2ws b/distribution/src/main/release/bin/java2ws
index 282ca37..991f180 100755
--- a/distribution/src/main/release/bin/java2ws
+++ b/distribution/src/main/release/bin/java2ws
@@ -93,4 +93,9 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.java2ws.JavaToWS "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.java2ws.JavaToWS "$@"

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/java2ws.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/java2ws.bat b/distribution/src/main/release/bin/java2ws.bat
index 9f108ac..defc303 100644
--- a/distribution/src/main/release/bin/java2ws.bat
+++ b/distribution/src/main/release/bin/java2ws.bat
@@ -36,7 +36,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.java2ws.JavaToWS %*
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.java2ws.JavaToWS %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/mc
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/mc b/distribution/src/main/release/bin/mc
index 3e58acf..137c1f9 100755
--- a/distribution/src/main/release/bin/mc
+++ b/distribution/src/main/release/bin/mc
@@ -91,7 +91,12 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.management.utils.ManagementConsole "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.management.utils.ManagementConsole "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/mc.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/mc.bat b/distribution/src/main/release/bin/mc.bat
index 3488810..0ee9dcf 100644
--- a/distribution/src/main/release/bin/mc.bat
+++ b/distribution/src/main/release/bin/mc.bat
@@ -34,7 +34,12 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.management.utils.ManagementConsole %*
+if "%JAVA_MAX_MEM%" == "" (
+   set JAVA_MAX_MEM=512M
+)
+
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.management.utils.ManagementConsole %*
 
 rem @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wadl2java
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wadl2java b/distribution/src/main/release/bin/wadl2java
index 04b8077..29fc970 100755
--- a/distribution/src/main/release/bin/wadl2java
+++ b/distribution/src/main/release/bin/wadl2java
@@ -74,7 +74,12 @@ else
    cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Xmx128M -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.wadlto.WADLToJava "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.wadlto.WADLToJava "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wadl2java.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wadl2java.bat b/distribution/src/main/release/bin/wadl2java.bat
index 2f34884..bee6bf3 100644
--- a/distribution/src/main/release/bin/wadl2java.bat
+++ b/distribution/src/main/release/bin/wadl2java.bat
@@ -36,8 +36,12 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
+if "%JAVA_MAX_MEM%" == "" (
+     set JAVA_MAX_MEM=512M
+)
 
-"%JAVA_HOME%\bin\java" -Xmx128M -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wadlto.WADLToJava %*
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wadlto.WADLToJava %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2corba
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2corba b/distribution/src/main/release/bin/wsdl2corba
index 4587b77..87c5c1e 100755
--- a/distribution/src/main/release/bin/wsdl2corba
+++ b/distribution/src/main/release/bin/wsdl2corba
@@ -67,7 +67,12 @@ else
    cxf_classpath=${cxf_jar}:${CLASSPATH}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.corba.WSDLToIDL "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.corba.WSDLToIDL "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2corba.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2corba.bat b/distribution/src/main/release/bin/wsdl2corba.bat
index 73a61a3..f2862fb 100644
--- a/distribution/src/main/release/bin/wsdl2corba.bat
+++ b/distribution/src/main/release/bin/wsdl2corba.bat
@@ -36,8 +36,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.corba.WSDLToIDL %*
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.corba.WSDLToIDL %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2java
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2java b/distribution/src/main/release/bin/wsdl2java
index bfebacf..67fbb8f6 100755
--- a/distribution/src/main/release/bin/wsdl2java
+++ b/distribution/src/main/release/bin/wsdl2java
@@ -74,7 +74,11 @@ else
    cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Xmx128M -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.wsdlto.WSDLToJava "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.wsdlto.WSDLToJava "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2java.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2java.bat b/distribution/src/main/release/bin/wsdl2java.bat
index 0ead7d4..eb569e0 100644
--- a/distribution/src/main/release/bin/wsdl2java.bat
+++ b/distribution/src/main/release/bin/wsdl2java.bat
@@ -36,8 +36,12 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
 
-"%JAVA_HOME%\bin\java" -Xmx128M -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wsdlto.WSDLToJava %*
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM%  -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wsdlto.WSDLToJava %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2js
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2js b/distribution/src/main/release/bin/wsdl2js
index aa884e1..596e058 100755
--- a/distribution/src/main/release/bin/wsdl2js
+++ b/distribution/src/main/release/bin/wsdl2js
@@ -67,7 +67,12 @@ else
    cxf_classpath=${cxf_jar}:${CLASSPATH}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.wsdlto.javascript.WSDLToJavaScript "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.wsdlto.javascript.WSDLToJavaScript "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2js.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2js.bat b/distribution/src/main/release/bin/wsdl2js.bat
index 96d74a5..85c0642 100644
--- a/distribution/src/main/release/bin/wsdl2js.bat
+++ b/distribution/src/main/release/bin/wsdl2js.bat
@@ -34,8 +34,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wsdlto.javascript.WSDLToJavaScript %*
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wsdlto.javascript.WSDLToJavaScript %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2service
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2service b/distribution/src/main/release/bin/wsdl2service
index ccb5b76..0ad02c8 100755
--- a/distribution/src/main/release/bin/wsdl2service
+++ b/distribution/src/main/release/bin/wsdl2service
@@ -91,7 +91,12 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.WSDLToService "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.WSDLToService "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2service.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2service.bat b/distribution/src/main/release/bin/wsdl2service.bat
index 45bd755..3449d8a 100644
--- a/distribution/src/main/release/bin/wsdl2service.bat
+++ b/distribution/src/main/release/bin/wsdl2service.bat
@@ -36,7 +36,12 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.WSDLToService %*
+if "%JAVA_MAX_MEM%" == "" (
+   set JAVA_MAX_MEM=512M
+)
+
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.WSDLToService %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2soap
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2soap b/distribution/src/main/release/bin/wsdl2soap
index bb12c65..d806839 100755
--- a/distribution/src/main/release/bin/wsdl2soap
+++ b/distribution/src/main/release/bin/wsdl2soap
@@ -89,7 +89,12 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.WSDLToSoap "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.WSDLToSoap "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2soap.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2soap.bat b/distribution/src/main/release/bin/wsdl2soap.bat
index c2d34a2..470adba 100644
--- a/distribution/src/main/release/bin/wsdl2soap.bat
+++ b/distribution/src/main/release/bin/wsdl2soap.bat
@@ -36,7 +36,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.WSDLToSoap %*
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.WSDLToSoap %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2xml
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2xml b/distribution/src/main/release/bin/wsdl2xml
index 62821e4..dde6042 100755
--- a/distribution/src/main/release/bin/wsdl2xml
+++ b/distribution/src/main/release/bin/wsdl2xml
@@ -89,7 +89,12 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.WSDLToXML "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.WSDLToXML "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdl2xml.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdl2xml.bat b/distribution/src/main/release/bin/wsdl2xml.bat
index 05919a7..e088f9f 100644
--- a/distribution/src/main/release/bin/wsdl2xml.bat
+++ b/distribution/src/main/release/bin/wsdl2xml.bat
@@ -36,7 +36,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.WSDLToXML %*
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.WSDLToXML %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdlvalidator
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdlvalidator b/distribution/src/main/release/bin/wsdlvalidator
index 81c7f6d..16ee645 100755
--- a/distribution/src/main/release/bin/wsdlvalidator
+++ b/distribution/src/main/release/bin/wsdlvalidator
@@ -89,7 +89,12 @@ else
   cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
 
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config  org.apache.cxf.tools.validator.WSDLValidator "$@"
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config  org.apache.cxf.tools.validator.WSDLValidator "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/wsdlvalidator.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/wsdlvalidator.bat b/distribution/src/main/release/bin/wsdlvalidator.bat
index 1229e97..cc90f17 100644
--- a/distribution/src/main/release/bin/wsdlvalidator.bat
+++ b/distribution/src/main/release/bin/wsdlvalidator.bat
@@ -35,7 +35,11 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.validator.WSDLValidator %*
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.validator.WSDLValidator %*
 
 @endlocal
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/xsd2wsdl
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/xsd2wsdl b/distribution/src/main/release/bin/xsd2wsdl
index 31ab0f4..6423a8f 100755
--- a/distribution/src/main/release/bin/xsd2wsdl
+++ b/distribution/src/main/release/bin/xsd2wsdl
@@ -83,7 +83,13 @@ if $cygwin; then
 else
    cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
 fi
-$JAVA_HOME/bin/java -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.XSDToWSDL "$@"
+
+if [ "x${JAVA_MAX_MEM}" = "x" ]; then
+    JAVA_MAX_MEM=512M
+    export JAVA_MAX_MEM
+fi
+
+$JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp ${cxf_classpath} -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.misc.XSDToWSDL "$@"
 
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8172db9f/distribution/src/main/release/bin/xsd2wsdl.bat
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/bin/xsd2wsdl.bat b/distribution/src/main/release/bin/xsd2wsdl.bat
index 1db894c..2d12f50 100644
--- a/distribution/src/main/release/bin/xsd2wsdl.bat
+++ b/distribution/src/main/release/bin/xsd2wsdl.bat
@@ -36,7 +36,12 @@ if not exist "%CXF_HOME%\lib\cxf-manifest.jar" goto no_cxf_jar
 
 set CXF_JAR=%CXF_HOME%\lib\cxf-manifest.jar
 
-"%JAVA_HOME%\bin\java" -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.XSDToWSDL %*
+
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+"%JAVA_HOME%\bin\java" -Xmx%JAVA_MAX_MEM% -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.misc.XSDToWSDL %*
 
 @endlocal
 


[4/4] cxf git commit: [CXF-6161] Make sure wsdl import uses valid file name This closes #43

Posted by dk...@apache.org.
[CXF-6161] Make sure wsdl import uses valid file name
This closes #43


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/02c11bb9
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/02c11bb9
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/02c11bb9

Branch: refs/heads/master
Commit: 02c11bb9191ce5712cb32e33bb5519362a9975d2
Parents: e70c78e
Author: Daniel Kulp <dk...@apache.org>
Authored: Fri Mar 24 11:05:04 2017 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Fri Mar 24 13:36:49 2017 -0400

----------------------------------------------------------------------
 core/src/main/java/org/apache/cxf/helpers/FileUtils.java        | 2 +-
 .../java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java   | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/02c11bb9/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/helpers/FileUtils.java b/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
index ded0785..5ebb23d 100644
--- a/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
+++ b/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
@@ -48,7 +48,7 @@ public final class FileUtils {
 
     }
 
-    public boolean isValidFileName(String name) {
+    public static boolean isValidFileName(String name) {
         for (int i = name.length(); i > 0; i--) {
             char c = name.charAt(i - 1);
             for (char c2 : ILLEGAL_CHARACTERS) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/02c11bb9/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
----------------------------------------------------------------------
diff --git a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
index 29c623c..0b18dad 100644
--- a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
+++ b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
@@ -790,6 +790,7 @@ public class WSDLToJavaContainer extends AbstractCXFToolContainer {
             }
 
             //get imported wsdls
+            int wsdlImportCount = 0;
             List<Definition> defs = (List<Definition>)context.get(ToolConstants.IMPORTED_DEFINITION);
             Map<String, String> importWSDLMap = new HashMap<>();
             for (Definition importDef : defs) {
@@ -799,10 +800,12 @@ public class WSDLToJavaContainer extends AbstractCXFToolContainer {
                 } else {
                     importedWsdlFile = new File(importDef.getQName().getLocalPart() + ".wsdl");
                 }
+                if (!FileUtils.isValidFileName(importedWsdlFile.getName())) {
+                    importedWsdlFile = new File("import" + (++wsdlImportCount) + ".wsdl");
+                }
                 importWSDLMap.put(importDef.getTargetNamespace(), importedWsdlFile.getName());
             }
 
-
             OutputStreamCreator outputStreamCreator = null;
             if (context.get(OutputStreamCreator.class) != null) {
                 outputStreamCreator = context.get(OutputStreamCreator.class);


[2/4] cxf git commit: [CXF-6029] Debug log a throwable

Posted by dk...@apache.org.
[CXF-6029] Debug log a throwable


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/1f888b8c
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/1f888b8c
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/1f888b8c

Branch: refs/heads/master
Commit: 1f888b8c6132528df27ad319f23904f5a5ba4826
Parents: 02c11bb
Author: Daniel Kulp <dk...@apache.org>
Authored: Fri Mar 24 11:13:22 2017 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Fri Mar 24 13:36:49 2017 -0400

----------------------------------------------------------------------
 .../main/java/org/apache/cxf/bus/spring/SpringBusFactory.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/1f888b8c/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java b/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
index 84b2761..e1a5c71 100644
--- a/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
+++ b/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
@@ -66,8 +66,8 @@ public class SpringBusFactory extends BusFactory {
             if (r != null && !r.isEmpty()) {
                 return r.get(0);
             }
-        } catch (Throwable t) {
-            //ignore
+        } catch (Exception t) {
+            LOG.log(Level.FINEST, "Could not find NamespaceHandlerResolver",  t);
         }
         return null;
     }