Wolfgang,

I do not see any errors in the startup script being logged anymore, but apparently there is still is a difference in the way the environment for ServiceMix is set up on AIX.
Can you try to uncomment the echo command right after
   # Execute the Java Virtual Machine
in the ServiceMix 3.0 and ServiceMix 3.1 script and post the resulting information back?

Let's hope we find an indication of what is different in both scripts there...


Gert




If you have the time,


**


bebop01 wrote:
Gert,

The result of the test is the following:


[EMAIL PROTECTED]
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pap32devifx-20061013
(ifix 110617: SR3 + 109092))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32
j9vmap3223ifx-20061013 (JIT enabled)
J9VM - 20061012_08722_bHdSMR
JIT  - 20060908_1811ifx1_r8
GC   - 20060906_AA)
JCL  - 20061002

Starting Apache ServiceMix ESB: 3.1-incubating-SNAPSHOT

Loading Apache ServiceMix from servicemix.xml on the CLASSPATH
Caught: org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from class path resource
[activemq.xml]; nested exception is java.lang.ClassCircularityError
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected
exception parsing XML document from class path resource [activemq.xml];
nested exception is java.lang.ClassCircularityError
Caused by: java.lang.ClassCircularityError
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:223)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:556)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:119)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:961)
        at
java.security.AccessController.doPrivileged(AccessController.java:275)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:487)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:606)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:88)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:57)
        at java.lang.ClassLoader.resolveClass(ClassLoader.java:628)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:223)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:556)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:119)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:961)
        at
java.security.AccessController.doPrivileged(AccessController.java:275)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:487)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:606)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:88)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:57)
        at java.lang.ClassLoader.resolveClass(ClassLoader.java:628)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:88)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:57)
        at java.lang.ClassLoader.resolveClass(ClassLoader.java:628)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
        at java.lang.ClassLoader.resolveClass(ClassLoader.java:628)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
        at java.lang.ClassLoader.resolveClass(ClassLoader.java:628)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
        at java.lang.ClassLoader.resolveClass(ClassLoader.java:628)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:223)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:556)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:119)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:961)
        at
java.security.AccessController.doPrivileged(AccessController.java:275)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:487)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:606)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClassDirect(DefaultClassRealm.java:412)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:376)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at
org.apache.xbean.spring.context.v2c.XBeanQNameHelper.loadClass(XBeanQNameHelper.java:102)
        at
org.apache.xbean.spring.context.v2c.XBeanQNameHelper.getBeanInfo(XBeanQNameHelper.java:72)
        at
org.apache.xbean.spring.context.v2c.XBeanQNameHelper.coerceNamespaceAwarePropertyValues(XBeanQNameHelper.java:54)
        at
org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.parseBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:63)
        at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:421)
        at
org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:208)
        at
org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:256)
        at
org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:152)
        at
org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
        at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1147)
        at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1137)
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:143)
        at
org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:63)
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:88)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:499)
        at
org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:407)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:357)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:185)
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:155)
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
        at
org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:63)
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:88)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:499)
        at
org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:407)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:357)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:168)
        at
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
        at
org.apache.xbean.spring.context.ClassPathXmlApplicationContext.loadBeanDefinitions(ClassPathXmlApplicationContext.java:180)
        at
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:94)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:292)
        at
org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:161)
        at
org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:51)
        at org.apache.servicemix.Main.main(Main.java:51)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at
org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:410)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:344)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:461)











Gert Vanthienen wrote:
Wolfgang,

Have you had a chance to try the patched bin/servicemix on AIX yet? Are there any more error messages or is it behaving correctly again now?

Regards,

Gert

Gert Vanthienen wrote:
Wolfgang,

The patch should have been attached to my previous mail. The contents can also be found in the bottom of this reply. For your convenience, I have also added an already patched version of the file to this mail...

Gert

bebop01 wrote:
Yes I can do that. How can I get the patch?
Wolfgang


Gert Vanthienen wrote:
L.S.,

Sorry for the late reply. I have attached a patch for bin/servicemix which works on Linux and OS/400 and which should fix the problem on AIX. I'm unable to test the script file on AIX myself though. Would the original poster be able to try the modified script on his/her server?

Thanks,

Gert

bebop01 wrote:
Hello,

Since the snapshot version from 11. January 2007 I can't start servicemix
on
aix anymore.
I always get an ClassCircularityError loading activemq.xml.

Any ideas would be highly appreciated.

Index: distributions/apache-servicemix/src/main/release/bin/servicemix
===================================================================
--- distributions/apache-servicemix/src/main/release/bin/servicemix
(revision 501398)
+++ distributions/apache-servicemix/src/main/release/bin/servicemix
(working copy)
@@ -86,7 +86,7 @@
     fi
          # Increase the maximum file descriptors if we can
-    if !($cygwin | $os400); then
+    if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
         MAX_FD_LIMIT=`ulimit -H -n`
         if [ $? -eq 0 ]; then
             if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then


------------------------------------------------------------------------

#!/bin/sh
#
#    Licensed to the Apache Software Foundation (ASF) under one or more
#    contributor license agreements.  See the NOTICE file distributed
with
#    this work for additional information regarding copyright ownership.
#    The ASF licenses this file to You under the Apache License, Version
2.0
#    (the "License"); you may not use this file except in compliance with
#    the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
#
# $Id: servicemix 979 2005-11-30 22:50:55Z bsnyder $
#

DIRNAME=`dirname $0`
PROGNAME=`basename $0`
#
# Check/Set up some easily accessible MIN/MAX params for JVM mem usage
#

if [ "x$JAVA_MIN_MEM" = "x" ]; then
    JAVA_MIN_MEM=128M
    export JAVA_MIN_MEM
fi
if [ "x$JAVA_MAX_MEM" = "x" ]; then
    JAVA_MAX_MEM=512M
    export JAVA_MAX_MEM
fi


warn() {
    echo "${PROGNAME}: $*"
}

die() {
    warn "$*"
    exit 1
}

maybeSource() {
    file="$1"
    if [ -f "$file" ] ; then
        . $file
    fi
}

detectOS() {
    # OS specific support (must be 'true' or 'false').
    cygwin=false;
    darwin=false;
    aix=false;
    os400=false;
    case "`uname`" in
        CYGWIN*)
            cygwin=true
            ;;
        Darwin*)
            darwin=true
            ;;
        AIX*)
            aix=true
            ;;
        OS400*)
            os400=true
            ;;
    esac
    # For AIX, set an environment variable
    if $aix; then
         export [EMAIL PROTECTED]
         export IBM_JAVA_HEAPDUMP_TEXT=true
echo $LDR_CNTRL fi
}

unlimitFD() {
    # Use the maximum available, or set MAX_FD != -1 to use that
    if [ "x$MAX_FD" = "x" ]; then
        MAX_FD="maximum"
    fi
# Increase the maximum file descriptors if we can
    if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
        MAX_FD_LIMIT=`ulimit -H -n`
        if [ $? -eq 0 ]; then
            if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
                # use the system max
                MAX_FD="$MAX_FD_LIMIT"
            fi
ulimit -n $MAX_FD
            # echo "ulimit -n" `ulimit -n`
            if [ $? -ne 0 ]; then
                warn "Could not set maximum file descriptor limit:
$MAX_FD"
            fi
        else
            warn "Could not query system maximum file descriptor limit:
$MAX_FD_LIMIT"
        fi
    fi
}

locateHome() {
    if [ "x$SERVICEMIX_HOME" != "x" ]; then
        warn "Ignoring predefined value for SERVICEMIX_HOME"
    fi
SERVICEMIX_HOME=`cd $DIRNAME/..; pwd`
    if [ ! -d "$SERVICEMIX_HOME" ]; then
        die "SERVICEMIX_HOME is not valid: $SERVICEMIX_HOME"
    fi
}

setupNativePath() {
    # Support for loading native libraries
    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$SERVICEMIX_HOME/lib"
# For Cygwin, set PATH from LD_LIBRARY_PATH
    if $cygwin; then
        LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"`
        PATH="$PATH;$LD_LIBRARY_PATH"
        export PATH
    fi
    export LD_LIBRARY_PATH
}

locateJava() {
    # Setup the Java Virtual Machine
    if $cygwin ; then
        [ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"`
        [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
    fi
if [ "x$JAVA" = "x" ]; then
        if [ "x$JAVA_HOME" != "x" ]; then
            if [ ! -d "$JAVA_HOME" ]; then
                die "JAVA_HOME is not valid: $JAVA_HOME"
            fi
            JAVA="$JAVA_HOME/bin/java"
        else
            warn "JAVA_HOME not set; results may vary"
            JAVA="java"
        fi
    fi
}

detectJVM() {
   echo "`$JAVA -version`"
# This service should call `java -version`, # read stdout, and look for hints
   if $JAVA -version 2>&1 | grep "^IBM" | $os400; then
       JVM_VENDOR="IBM"
   else
       JVM_VENDOR="SUN"
   fi
   # echo "JVM vendor is $JVM_VENDOR"
}
setupDebugOptions() {
    if [ "x$JAVA_OPTS" = "x" ]; then
        JAVA_OPTS="$DEFAULT_JAVA_OPTS"
    fi
    export JAVA_OPTS
# Set Debug options if enabled
    if [ "x$SERVICEMIX_DEBUG" != "x" ]; then
        # Use the defaults if JAVA_DEBUG_OPTS was not set
        if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then
            JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
        fi
JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS"
        warn "Enabling Java debug options: $JAVA_DEBUG_OPTS"
    fi
}

setupDefaults() {
    DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM
-Dderby.system.home=$SERVICEMIX_HOME/var
-Dderby.storage.fileSyncTransactionLog=true
-Dcom.sun.management.jmxremote"

    #Set the JVM_VENDOR specific JVM flags
    if [ "$JVM_VENDOR" = "SUN" ]; then
        DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS"
    elif [ "$JVM_VENDOR" = "IBM" ]; then
        if $os400; then
            DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS"
        elif $aix; then
            DEFAULT_JAVA_OPTS="-Xlp $DEFAULT_JAVA_OPTS"
        else
            DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS"
        fi
    fi

    # Add the conf directory so it picks up the Log4J config
    CLASSPATH="$CLASSPATH:$SERVICEMIX_HOME/conf"
    DEFAULT_JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
##
    ## TODO: Move to conf/profiler/yourkit.{sh|cmd}
    ##
    # Uncomment to enable YourKit profiling
    #DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent"
}

setupClassworlds() {
    # Setup the classpath
    CLASSPATH="$CLASSPATH:$SERVICEMIX_HOME/lib/classworlds-1.0.1.jar"
# Setup Classworlds options
    CLASSWORLDS_CONF="$SERVICEMIX_HOME/conf/servicemix.conf"
}

setupProfiler() {
    # Load profiler settings
    if [ "x$SERVICEMIX_PROFILER" != "x" ]; then
SERVICEMIX_PROFILER_SCRIPT="$SERVICEMIX_HOME/conf/profiler/$SERVICEMIX_PROFILER.sh"
        if [ ! -e "$SERVICEMIX_PROFILER_SCRIPT" ]; then
            die "Missing configuration for profiler
'$SERVICEMIX_PROFILER': $SERVICEMIX_PROFILER_SCRIPT"
        fi
    fi
# Execute the JVM or the load the profiler
    if [ "x$SERVICEMIX_PROFILER" != "x" ]; then
        warn "Loading profiler script: $SERVICEMIX_PROFILER_SCRIPT"
        . "$SERVICEMIX_PROFILER_SCRIPT"
    fi
}

init() {
    # Determine if there is special OS handling we must perform
    detectOS
# Unlimit the number of file descriptors if possible
    unlimitFD
# Locate the ServiceMix home directory
    locateHome
# Load system-wide servicemix configuration
    maybeSource "/etc/servicemix.conf"
# Load installation configuration
    maybeSource "$SERVICEMIX_HOME/conf/servicemix.rc"
# Load user servicemix configuration
    maybeSource "$HOME/.servicemixrc"
# Setup the native library path
    setupNativePath
# Locate the Java VM to execute
    locateJava
# Determine the JVM vendor
    detectJVM
    # Setup default options
    setupDefaults
# Install debug options
    setupDebugOptions
# Setup the ClassWorlds environment
    setupClassworlds
# Setup profiler specific configuration
    setupProfiler
}

run() {
    # For Cygwin, switch paths to Windows format before running java
    if $cygwin; then
        SERVICEMIX_HOME=`cygpath --path --windows "$SERVICEMIX_HOME"`
        CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
        CLASSWORLDS_CONF=`cygpath --path --windows "$CLASSWORLDS_CONF"`
        CYGHOME=`cygpath --windows "$HOME"`
    fi
# Execute the Java Virtual Machine
    # echo $JAVA \
    #     $JAVA_OPTS \
    #     $SERVICEMIX_OPTS \
    #     -classpath "$CLASSPATH" \
    #     -Dclassworlds.conf="$CLASSWORLDS_CONF" \
    #     -Dservicemix.home="$SERVICEMIX_HOME" \
    #     -Dcygwin.user.home="$CYGHOME" \
    #     -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
    #     org.codehaus.classworlds.Launcher \
# "$@" exec $JAVA \
        $JAVA_OPTS \
        $SERVICEMIX_OPTS \
        -classpath "$CLASSPATH" \
        -Dclassworlds.conf="$CLASSWORLDS_CONF" \
        -Dservicemix.home="$SERVICEMIX_HOME" \
        -Dcygwin.user.home="$CYGHOME" \
        -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
        org.codehaus.classworlds.Launcher \
"$@" }

main() {
    init
    run $@
}

main $@




Reply via email to