You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Romain Manni-Bucau <rm...@gmail.com> on 2012/07/14 11:45:45 UTC

Fwd: svn commit: r1361502 - in /openejb/trunk/openejb: container/openejb-core/src/main/java/org/apache/openejb/config/ tomee/tomee-common/src/main/java/org/apache/tomee/installer/

any volonteer to do the same for windows setclasspath.bat script (look the
TODO)?

the idea is "if java 7 then set endorsed dir to endorsed7 otherwise set
endorsed dir to endorsed"

if it can help here how to get the javaminor  version on win (i didn't find
how to get rid of the temp file):

java -version 2> tmp_tomee_start.txt
set /p java_version= < tmp_tomee_start.txt
del tmp_tomee_start.txt
set java_version=%java_version:~16,1%
echo %java_version%


- Romain


---------- Forwarded message ----------
From: <rm...@apache.org>
Date: 2012/7/14
Subject: svn commit: r1361502 - in /openejb/trunk/openejb:
container/openejb-core/src/main/java/org/apache/openejb/config/
tomee/tomee-common/src/main/java/org/apache/tomee/installer/
To: commits@openejb.apache.org


Author: rmannibucau
Date: Sat Jul 14 09:43:03 2012
New Revision: 1361502

URL: http://svn.apache.org/viewvc?rev=1361502&view=rev
Log:
TOMEE-281 starting to manage java 7 version, still some work to do for win
scripts

Modified:

openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java

openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java

openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java

Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1361502&r1=1361501&r2=1361502&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
Sat Jul 14 09:43:03 2012
@@ -114,9 +114,10 @@ public class RemoteServer {
                 }

                 File home = getHome();
+                String javaVersion = System.getProperty("java.version");
                 if (verbose) {
                     System.out.println("OPENEJB_HOME = "+
home.getAbsolutePath());
-                    String systemInfo = "Java " +
System.getProperty("java.version") + "; " + System.getProperty("os.name") +
"/" + System.getProperty("os.version");
+                    String systemInfo = "Java " + javaVersion + "; " +
System.getProperty("os.name") + "/" + System.getProperty("os.version");
                     System.out.println("SYSTEM_INFO  = "+systemInfo);
                 }

@@ -175,6 +176,9 @@ public class RemoteServer {


                     File endorsed = new File(home, "endorsed");
+                    if (javaVersion != null &&
javaVersion.startsWith("1.7.")) { // java 7
+                        endorsed = new File(home, "endorsed7"); // doesn't
exist but just to ignore it with j7
+                    }
                     File temp = new File(home, "temp");

                     List<String> argsList = new ArrayList<String>() {};

Modified:
openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java?rev=1361502&r1=1361501&r2=1361502&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
Sat Jul 14 09:43:03 2012
@@ -205,7 +205,9 @@ public class Installer {
     private void addJavaeeInEndorsed() {

         File endorsed = new File(paths.getCatalinaHomeDir(), "endorsed");
-        endorsed.mkdir();
+        if (!endorsed.mkdir()) {
+            alerts.addWarning("can't create endorsed directory");
+        }


         copyClasses(paths.getJavaEEAPIJar(), new File(endorsed,
"annotation-api.jar"), "javax/annotation/.*");
@@ -220,6 +222,46 @@ public class Installer {
                 alerts.addError("can't copy " +
paths.getJAXBImpl().getPath() + " to " + endorsed.getPath() +
"/jaxb-impl.jar");
             }
         }
+
+        // java 7 doesn't need endorsed folder
+        String setClasspathSh =
Installers.readAll(paths.getSetClasspathSh(), alerts);
+        if (setClasspathSh != null && !setClasspathSh.contains("any
endorsed lib for java 7")) {
+            if (Installers.backup(paths.getSetClasspathSh(), alerts)) {
+                // add our magic bits to the catalina sh file
+                final String newSetClasspathSh =
setClasspathSh.replace("JAVA_ENDORSED_DIRS=\"$CATALINA_HOME\"/endorsed",
+                        "java_version=`java -version 2>&1 | grep
version`\n" +
+                        "  if [[ $java_version  =~ 1.7.* ]]; then\n" +
+                        "    # it doesn't exist but not important since we
don't need any endorsed lib for java 7\n" +
+                        "
 JAVA_ENDORSED_DIRS=\"$CATALINA_HOME\"/endorsed7\n" +
+                        "  else\n" +
+                        "
 JAVA_ENDORSED_DIRS=\"$CATALINA_HOME\"/endorsed\n" +
+                        "  fi\n");
+                if (Installers.writeAll(paths.getSetClasspathSh(),
newSetClasspathSh, alerts)) {
+                    alerts.addInfo("Endorsed lib set for java 6 and
ignored for java 7 (unix)");
+                }
+            }
+        }
+
+        // TODO: same for win
+        /*
+        String setClasspathBat =
Installers.readAll(paths.getSetClasspathBat(), alerts);
+        if (setClasspathBat != null && !setClasspathBat.contains("any
endorsed lib for java 7")) {
+            if (Installers.backup(paths.getSetClasspathBat(), alerts)) {
+                // add our magic bits to the catalina sh file
+                final String newSetClasspathBat =
setClasspathBat.replace("set
\"JAVA_ENDORSED_DIRS=%CATALINA_HOME%\\endorsed\"",
+                        "java_version=`java -version 2>&1 | grep
version`\n" +
+                                "  if [[ $java_version  =~ 1.7.* ]];
then\n" +
+                                "    # it doesn't exist but not important
since we don't need any endorsed lib for java 7\n" +
+                                "
 JAVA_ENDORSED_DIRS=\"$CATALINA_HOME\"/endorsed7\n" +
+                                "  else\n" +
+                                "    set
\"JAVA_ENDORSED_DIRS=%CATALINA_HOME%\\endorsed\"\n" +
+                                "  fi\n");
+                if (Installers.writeAll(paths.getSetClasspathBat(),
newSetClasspathBat, alerts)) {
+                    alerts.addInfo("Endorsed lib set for java 6 and
ignored for java 7 (win)");
+                }
+            }
+        }
+        */
     }

     private void copyClasses(File sourceJar, File destinationJar, String
pattern) {
@@ -615,8 +657,7 @@ public class Installer {
         try {
             Class<?> clazz = loadClass(className,
Installer.class.getClassLoader());
             Method method = clazz.getMethod(propertyName);
-            Object result = method.invoke(null, (Object[]) null);
-            return result;
+            return method.invoke(null, (Object[]) null);
         } catch (Throwable e) {
             return null;
         }
@@ -629,9 +670,9 @@ public class Installer {
         }
         for (ClassLoader loader : loaders) {
             try {
-                Class<?> clazz = Class.forName(className, true, loader);
-                return clazz;
+                return Class.forName(className, true, loader);
             } catch (ClassNotFoundException e) {
+                // no-op
             }
         }
         return null;

Modified:
openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java?rev=1361502&r1=1361501&r2=1361502&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java
Sat Jul 14 09:43:03 2012
@@ -463,4 +463,20 @@ public class Paths {
         }
         return tomcatUsersXml;
     }
+
+    public File getSetClasspathSh() {
+        final File binDir = getCatalinaBinDir();
+        if (binDir == null) {
+            return null;
+        }
+        return new File(binDir, "setclasspath.sh");
+    }
+
+    public File getSetClasspathBat() {
+        final File binDir = getCatalinaBinDir();
+        if (binDir == null) {
+            return null;
+        }
+        return new File(binDir, "setclasspath.bat");
+    }
 }