db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ramandeep Kaur (JIRA)" <derby-...@db.apache.org>
Subject [jira] Created: (DERBY-1597) Scripts in frameworks direcotry needs to be revisted to set up CLASSPATH properly
Date Wed, 26 Jul 2006 22:47:13 GMT
Scripts in frameworks direcotry needs to be revisted to set up CLASSPATH properly
---------------------------------------------------------------------------------

                 Key: DERBY-1597
                 URL: http://issues.apache.org/jira/browse/DERBY-1597
             Project: Derby
          Issue Type: Bug
          Components: Demos/Scripts
    Affects Versions: 10.2.0.0
            Reporter: Ramandeep Kaur
         Assigned To: Andrew McIntyre


Need to revisit scripts in directory frameworks/embedded/bin and frameworks/NetworkServer/bin
for setting up CLASSPATH properly. The current problem is as following:

If user already has a CLASSPATH set on their system, the CLASSPATH is not set again within
the script. Therefore, there are no derby classes in the CLASSPATH which results in java command
failing as it can not find the derby class it is calling. Basically, to make the scripts work,
user has to either issue  command "set CLASSPATH=" or have derby jar files be appended to
their system CLASSPATH before running any frameworks batch script.

In ksh scripts, there is same problem except that the user has to issue  command "export CLASSPATH="
or have derby jar files be appended to their system CLASSPATH only once as whatever CLASSPATH
is set up by scripts is not visible once the script is done.

So I am proposing the following solution so that frameworks scripts work properly without
interfering with system classpath or without any setup from user.

In batch scripts:-
----------------------
1.  Before line "call "%DERBY_INSTALL%"/frameworks/embedded/bin/setEmbeddedCP.bat", save the
current classpath as follows:
set SAVED_CLASSPATH=%CLASSPATH%

2.  Replace  the following lines:
@if !"%CLASSPATH%"==! call "%DERBY_INSTALL%"/frameworks/embedded/bin/setEmbeddedCP.bat
@if "%CLASSPATH%" == "" call "%DERBY_INSTALL%"/frameworks/embedded/bin/setEmbeddedCP.bat
with
call "%DERBY_INSTALL%"/frameworks/embedded/bin/setEmbeddedCP.bat

Note: I have given the above as example only. The name of script that is getting called may
be different.

3. At the end of script, reset the CLASSPATH to system CLASSPATH as follows:
set CLASSPATH=%SAVED_CLASSPATH%

In korn scripts:-
----------------------
In ksh script, even though system classpath is only modified within the script and is not
effective once script exits, to be consistent with batch scripts, do the following:

1.  Before line  ". "$DERBY_HOME"/frameworks/embedded/bin/setEmbeddedCP.ksh" save the current
classpath as follows:
export SAVED_CLASSPATH=$CLASSPATH

2.  Replace  the following lines:

[ -z "$CLASSPATH" ] && {
  . "$DERBY_HOME"/frameworks/embedded/bin/setEmbeddedCP.ksh
}
with
. "$DERBY_HOME"/frameworks/embedded/bin/setEmbeddedCP.ksh

Note: I have given the above as example only. The name of script that is getting called may
be different.

3. At the end of script, reset the CLASSPATH to system CLASSPATH as follows:
export CLASSPATH=$SAVED_CLASSPATH



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message