diff --git a/utils_dev/.project b/utils_dev/.project
new file mode 100644
index 0000000000..37cc3b4acc
--- /dev/null
+++ b/utils_dev/.project
@@ -0,0 +1,11 @@
+
+
+ utils_dev
+
+
+
+
+
+
+
+
diff --git a/utils_dev/RUN_build.bat b/utils_dev/RUN_build.bat
new file mode 100644
index 0000000000..2598f71d82
--- /dev/null
+++ b/utils_dev/RUN_build.bat
@@ -0,0 +1,26 @@
+@Title Build Adempiere Clean
+@Rem $Header: /cvsroot/adempiere/utils_dev/RUN_build.bat,v 1.22 2005/09/08 21:56:11 jjanke Exp $
+
+@CALL myDevEnv.bat
+@IF NOT %ADEMPIERE_ENV%==Y GOTO NOBUILD
+
+@echo Cleanup ...
+@"%JAVA_HOME%\bin\java" -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main clean
+
+@echo Building ...
+@"%JAVA_HOME%\bin\java" -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main -logger org.apache.tools.ant.listener.MailLogger complete
+@IF ERRORLEVEL 1 goto ERROR
+
+dir %ADEMPIERE_INSTALL%
+
+@Echo Done ...
+@sleep 60
+@exit
+
+:NOBUILD
+@Echo Check myDevEnv.bat (copy from myDevEnvTemplate.bat)
+
+:ERROR
+@Color fc
+
+@Pause
\ No newline at end of file
diff --git a/utils_dev/RUN_build.sh b/utils_dev/RUN_build.sh
new file mode 100755
index 0000000000..d33744bf78
--- /dev/null
+++ b/utils_dev/RUN_build.sh
@@ -0,0 +1,31 @@
+# This script rebuilds Adempiere
+# Ported from Windows script Marek Mosiewicz
+# If you have difficulties, compare it with the Windows version.
+#
+# $Header: /cvsroot/adempiere/utils_dev/myDevEnvTemplate.sh,v 1.6 2003/04/27 12:34:16 marekmosiewicz Exp $
+
+SAVED_DIR=`pwd` #save current dir
+cd `dirname $0` #change dir to place where script resides - does not work with sym links
+UTILS_DEV=`pwd` #this is adempiere source
+cd $SAVED_DIR #back to the saved directory
+
+. $UTILS_DEV/myDevEnv.sh #call environment
+
+
+if [ ! $ADEMPIERE_ENV==Y ] ; then
+ echo "Can't set development environemnt - check myDevEnv.sh"
+ exit 1
+fi
+
+echo Cleanup ...
+$JAVA_HOME/bin/java -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main clean
+
+echo Building ...
+$JAVA_HOME/bin/java -Xmx500m -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main -logger org.apache.tools.ant.listener.MailLogger complete
+
+ls $ADEMPIERE_INSTALL
+
+echo Done ...
+
+exit 0
+
diff --git a/utils_dev/RUN_buildIncremental.bat b/utils_dev/RUN_buildIncremental.bat
new file mode 100644
index 0000000000..add8d7729e
--- /dev/null
+++ b/utils_dev/RUN_buildIncremental.bat
@@ -0,0 +1,33 @@
+@Title Build Adempiere Incremental + Install
+@Rem $Header: /cvsroot/adempiere/utils_dev/RUN_buildIncremental.bat,v 1.14 2005/09/08 21:56:11 jjanke Exp $
+
+@CALL myDevEnv.bat
+@IF NOT %ADEMPIERE_ENV%==Y GOTO NOBUILD
+
+@Echo Stop Apps Server (waiting)
+@START %ADEMPIERE_HOME%\utils\RUN_Server2Stop.bat
+@Sleep 5
+
+@echo Building ...
+@"%JAVA_HOME%\bin\java" -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main complete
+@Echo ErrorLevel = %ERRORLEVEL%
+
+@IF NOT ERRORLEVEL 0 GOTO BUILDOK
+@Pause
+@Exit
+
+:BUILDOK
+dir %ADEMPIERE_INSTALL%
+
+@Echo Cleaning up ...
+@erase /q /s %TMP%
+
+@Echo Starting Apps Server ...
+@Start %ADEMPIERE_HOME%\utils\RUN_Server2.bat
+
+@Sleep 10
+@Exit
+
+:NOBUILD
+@Echo Check myDevEnv.bat (copy from myDevEnvTemplate.bat)
+@Pause
\ No newline at end of file
diff --git a/utils_dev/RUN_buildIncremental.sh b/utils_dev/RUN_buildIncremental.sh
new file mode 100755
index 0000000000..7c679bdf05
--- /dev/null
+++ b/utils_dev/RUN_buildIncremental.sh
@@ -0,0 +1,32 @@
+# This script compile Adempiere
+# Ported from Windows script Marek Mosiewicz
+
+
+SAVED_DIR=`pwd` #save current dir
+cd `dirname $0`/../utils_dev #change dir to place where script resides - doesn not work with sym links
+UTILS_DEV=`pwd` #this is adempiere source
+cd $SAVED_DIR #back to the saved directory
+
+. $UTILS_DEV/myDevEnv.sh #call environment
+
+if [ ! $ADEMPIERE_ENV==Y ] ; then
+ echo "Can't set developemeent environemnt - check myDevEnv.sh"
+ exit 1
+fi
+
+echo "Stop Apps Server (waiting)"
+$ADEMPIERE_HOME/utils/RUN_Server2Stop.sh
+sleep 5
+
+echo Building ...
+$JAVA_HOME/bin/java -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main complete
+
+ls $ADEMPIERE_INSTALL
+
+echo Cleaning up ...
+rm -r -f $ADEMPIERE_HOME/jboss/server/adempiere/tmp
+
+echo Starting Apps Server ...
+$ADEMPIERE_HOME/utils/RUN_Server2.sh
+
+exit 0
diff --git a/utils_dev/RUN_clean.bat b/utils_dev/RUN_clean.bat
new file mode 100644
index 0000000000..39b59ed349
--- /dev/null
+++ b/utils_dev/RUN_clean.bat
@@ -0,0 +1,14 @@
+@Title Adempiere Clean
+@Rem $Header: /cvsroot/adempiere/utils_dev/RUN_clean.bat,v 1.4 2005/09/16 00:49:29 jjanke Exp $
+
+@CALL myDevEnv.bat
+@IF NOT %ADEMPIERE_ENV%==Y GOTO NOBUILD
+
+@echo Cleanup ...
+@"%JAVA_HOME%\bin\java" -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main clean
+
+@sleep 60
+@exit
+:NOBUILD
+@Echo Check myDevEnv.bat (copy from myDevEnvTemplate.bat)
+@Pause
\ No newline at end of file
diff --git a/utils_dev/RUN_clean.sh b/utils_dev/RUN_clean.sh
new file mode 100755
index 0000000000..4e15d9ac23
--- /dev/null
+++ b/utils_dev/RUN_clean.sh
@@ -0,0 +1,22 @@
+# This script cleans Adempiere builds
+# Ported from Windows script Marek Mosiewicz
+
+SAVED_DIR=`pwd` #save current dir
+cd `dirname $0`/../utils_dev #change dir to place where script resides - doesn not work with sym links
+UTILS_DEV=`pwd` #this is adempiere source
+cd $SAVED_DIR #back to the saved directory
+
+. $UTILS_DEV/myDevEnv.sh #call environment
+
+
+if [ ! $ADEMPIERE_ENV==Y ] ; then
+ echo "Can't set developemeent environemnt - check myDevEnv.sh"
+ exit 1
+fi
+
+echo Cleanup ...
+$JAVA_HOME/bin/java -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main clean
+
+echo Done ...
+
+exit 0
diff --git a/utils_dev/RUN_install.bat b/utils_dev/RUN_install.bat
new file mode 100644
index 0000000000..2d88fbef7e
--- /dev/null
+++ b/utils_dev/RUN_install.bat
@@ -0,0 +1,13 @@
+@Title Adempiere Install
+@Rem $Header: /cvsroot/adempiere/utils_dev/RUN_install.bat,v 1.3 2005/09/16 00:49:29 jjanke Exp $
+
+@CALL myDevEnv.bat
+@IF NOT %ADEMPIERE_ENV%==Y GOTO NOBUILD
+
+@"%JAVA_HOME%\bin\java" -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main install
+
+@Pause
+@exit
+:NOBUILD
+@Echo Check myDevEnv.bat (copy from myDevEnvTemplate.bat)
+@Pause
diff --git a/utils_dev/RUN_install.sh b/utils_dev/RUN_install.sh
new file mode 100755
index 0000000000..1e9c28adee
--- /dev/null
+++ b/utils_dev/RUN_install.sh
@@ -0,0 +1,23 @@
+# This script installs adempiere
+# Ported from Windows script Marek Mosiewicz
+
+
+SAVED_DIR=`pwd` #save current dir
+cd `dirname $0`/../utils_dev #change dir to place where script resides - doesn not work with sym links
+UTILS_DEV=`pwd` #this is adempiere source
+cd $SAVED_DIR #back to the saved directory
+
+. $UTILS_DEV/myDevEnv.sh #call environment
+
+
+if [ ! $ADEMPIERE_ENV==Y ] ; then
+ echo "Can't set developemeent environemnt - check myDevEnv.sh"
+ exit 1
+fi
+
+echo Installing ...
+$JAVA_HOME/bin/java -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main install
+
+echo Done ...
+
+exit 0
diff --git a/utils_dev/RUN_jarsign.bat b/utils_dev/RUN_jarsign.bat
new file mode 100644
index 0000000000..668392a340
--- /dev/null
+++ b/utils_dev/RUN_jarsign.bat
@@ -0,0 +1,18 @@
+@Title Sign jars in %ADEMPIERE_HOME%\lib\
+@Rem
+@Rem Sign all jars for WebStart with your certificate
+@Rem Keystore located at c:\adempiere\adempiere-all\keystore\myKeystore
+@Rem Keystore passwords both %KEY_PASSWORD% (default myPassword)
+@Rem Jar files are located in the deployment directory %ADEMPIERE_HOME%\lib
+@Rem
+@Rem After this, you need to RUN_setup
+@Rem to generate/copy the webstart/jnlp distribution
+
+jarsigner -keystore c:\adempiere\adempiere-all2\keystore\myKeystore -storepass %KEY_PASSWORD% -keypass %KEY_PASSWORD% %ADEMPIERE_HOME%\lib\CClient.jar adempiere
+jarsigner -keystore c:\adempiere\adempiere-all2\keystore\myKeystore -storepass %KEY_PASSWORD% -keypass %KEY_PASSWORD% %ADEMPIERE_HOME%\lib\CTools.jar adempiere
+jarsigner -keystore c:\adempiere\adempiere-all2\keystore\myKeystore -storepass %KEY_PASSWORD% -keypass %KEY_PASSWORD% %ADEMPIERE_HOME%\lib\oracle.jar adempiere
+jarsigner -keystore c:\adempiere\adempiere-all2\keystore\myKeystore -storepass %KEY_PASSWORD% -keypass %KEY_PASSWORD% %ADEMPIERE_HOME%\lib\jPDFPrinterDemo.jar adempiere
+jarsigner -keystore c:\adempiere\adempiere-all2\keystore\myKeystore -storepass %KEY_PASSWORD% -keypass %KEY_PASSWORD% %ADEMPIERE_HOME%\lib\jPDFPrinterProd.jar adempiere
+
+@Echo After this execute RUN_setup
+@pause
\ No newline at end of file
diff --git a/utils_dev/build.xml b/utils_dev/build.xml
new file mode 100644
index 0000000000..5fe2833405
--- /dev/null
+++ b/utils_dev/build.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+ This buildfile is used to build the Adempiere system.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/utils_dev/codeFormatter.xml b/utils_dev/codeFormatter.xml
new file mode 100644
index 0000000000..da62be571c
--- /dev/null
+++ b/utils_dev/codeFormatter.xml
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/utils_dev/codeTemplates.xml b/utils_dev/codeTemplates.xml
new file mode 100644
index 0000000000..6f81dba82a
--- /dev/null
+++ b/utils_dev/codeTemplates.xml
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/utils_dev/keystore.txt b/utils_dev/keystore.txt
new file mode 100644
index 0000000000..5ee5022757
--- /dev/null
+++ b/utils_dev/keystore.txt
@@ -0,0 +1,28 @@
+Keystore Notes $Id$
+
+Java WebStart required signed jars.
+The location is assumed under /keystore
+You may want to put the password in your environment and start ant with -Dpassword=%MY_PASSWORD%
+
+
+Example commands for creating a key store
+-----------------------------------------
+
+keytool -genkey -keyalg rsa -alias adempiere -dname "CN=myName, OU=myName, O=myOrg, L=myTown, ST=myState, C=US" -keypass myPWD -validity 365 -keystore D:\Adempiere\keystore\myKeystore -storepass myPWD
+
+
+
+----- Self Sign
+
+keytool -selfcert -alias adempiereTest -dname "CN=myName, OU=myName, O=myOrg, L=myTown, ST=myState, C=US" -keypass myPWD -validity 180 -keystore D:\Adempiere\keystore\myKeystore -storepass myPWD
+
+
+
+---- Export/Info Certificate file
+
+keytool -export -keystore D:\Adempiere\keystore\myKeystore -alias adempiere -storepass myPWD -file adempiere.cer
+
+keytool -list -keystore D:\Adempiere\keystore\myKeystore -storepass myPWD
+
+keytool -printcert -file D:\Adempiere\keystore\adempiereTest.cer
+
diff --git a/utils_dev/myDevEnvTemplate.bat b/utils_dev/myDevEnvTemplate.bat
new file mode 100644
index 0000000000..04aac2e275
--- /dev/null
+++ b/utils_dev/myDevEnvTemplate.bat
@@ -0,0 +1,90 @@
+@Rem My Development Environment
+@Rem
+@Rem This script sets variable for compiling Adempiere from source
+@Rem
+@Rem
+@Rem $Header: /cvsroot/adempiere/utils_dev/myDevEnvTemplate.bat,v 1.19 2005/09/10 01:51:13 jjanke Exp $
+
+
+@Rem Check the following parameters:
+@Rem -------------------------------
+
+@Rem Set Java Home
+@SET JAVA_HOME=C:\Program Files\Java\jdk1.5.0_04
+@IF NOT EXIST "%JAVA_HOME%\bin" ECHO "** JAVA_HOME NOT found"
+@SET PATH=%JAVA_HOME%\bin;%PATH%
+
+@Rem Set Adempiere Source Directory
+@SET ADEMPIERE_SOURCE=C:\Adempiere\adempiere-all
+@IF NOT EXIST "%ADEMPIERE_SOURCE%" ECHO "** ADEMPIERE_SOURCE NOT found"
+
+@Rem Passwords for the keystore
+@SET KEYTOOL_PASS=%KEY_PASSWORD%
+@IF "%KEYTOOL_PASS%"=="" SET KEYTOOL_PASS=myPassword
+
+@Rem Keystore & FTP Password
+@SET ANT_PROPERTIES=-Dpassword=%KEYTOOL_PASS% -DftpPassword=%FTP_PASSWORD%
+
+@Rem Ant to send email after completion - change or delete
+@SET ANT_PROPERTIES=%ANT_PROPERTIES% -DMailLogger.mailhost=xxx -DMailLogger.from=xxxx -DMailLogger.failure.to=xxxx -DMailLogger.success.to=xxxx
+
+@Rem Automatic Installation - Where Adempiere will be unzipped
+@SET ADEMPIERE_ROOT=C:\
+@Rem Automatic Installation - Resulting Home Directory
+@SET ADEMPIERE_HOME=%ADEMPIERE_ROOT%Adempiere
+@Rem Automatic Installation - Share for final Installers
+@SET ADEMPIERE_INSTALL=C:\Install
+@IF NOT EXIST %ADEMPIERE_INSTALL% Mkdir %ADEMPIERE_INSTALL%
+
+
+@Rem ---------------------------------------------------------------
+@Rem In most cases you don't need to change anything below this line
+@Rem If you need to define something manually do it above this line,
+@Rem it should work, since most variables are checked before set.
+@Rem ---------------------------------------------------------------
+
+@SET CURRENTDIR=%CD%
+
+@Rem Set Version
+@SET ADEMPIERE_VERSION=ADempiere
+@SET ADEMPIERE_VERSION_FILE=311
+@SET ADEMPIERE_VENDOR=ADempiere
+
+@SET ENCODING=UTF-8
+
+@Rem ClassPath
+@IF NOT EXIST "%JAVA_HOME%\lib\tools.jar" ECHO "** Need Full Java SDK **"
+@SET CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar
+
+@IF NOT EXIST %ADEMPIERE_SOURCE%\tools\lib\ant.jar ECHO "** Ant.jar NOT found **"
+@SET CLASSPATH=%CLASSPATH%;%ADEMPIERE_SOURCE%\tools\lib\ant.jar;%ADEMPIERE_SOURCE%\tools\lib\ant-launcher.jar;%ADEMPIERE_SOURCE%\tools\lib\ant-swing.jar;%ADEMPIERE_SOURCE%\tools\lib\ant-commons-net.jar;%ADEMPIERE_SOURCE%\tools\lib\commons-net-1.4.0.jar
+@Rem SET CLASSPATH=%CLASSPATH%;%ADEMPIERE_SOURCE%\jboss\lib\xml-apis.jar
+
+
+@Rem Set XDoclet 1.1.2 Environment
+@SET XDOCLET_HOME=%ADEMPIERE_SOURCE%\tools
+
+@Rem Java Keystore for signing jars
+@IF NOT EXIST %ADEMPIERE_SOURCE%\keystore MKDIR %ADEMPIERE_SOURCE%\keystore
+@IF EXIST "%ADEMPIERE_SOURCE%\keystore\myKeystore" GOTO CHECKKEYVALUE
+
+:CREATEADEMPIEREKEY
+@Echo No Java Keystore found, creating ...
+@Rem .
+@Rem This is the keystore for code signing.
+@Rem Replace it with the official certificate.
+@Rem Note that this is not the SSL certificate.
+@Rem .
+
+SET KEYTOOL_DNAME="CN=myName, OU=myName, O=myOrg, L=myTown, ST=myState, C=US"
+
+"%JAVA_HOME%\bin\keytool" -genkey -keyalg rsa -alias adempiere -dname %KEYTOOL_DNAME% -keypass %KEYTOOL_PASS% -validity 365 -keystore %ADEMPIERE_SOURCE%\keystore\myKeystore -storepass %KEYTOOL_PASS%
+
+"%JAVA_HOME%\bin\keytool" -selfcert -alias adempiere -dname %KEYTOOL_DNAME% -keypass %KEYTOOL_PASS% -validity 180 -keystore %ADEMPIERE_SOURCE%\keystore\myKeystore -storepass %KEYTOOL_PASS%
+
+:CHECKKEYVALUE
+@"%JAVA_HOME%\bin\keytool" -list -alias adempiere -keyStore %ADEMPIERE_SOURCE%\keystore\myKeystore -storepass %KEYTOOL_PASS%
+@IF ERRORLEVEL 1 GOTO :CREATEADEMPIEREKEY
+
+@Rem Set ADEMPIERE_ENV for all other scripts.
+@SET ADEMPIERE_ENV=Y
diff --git a/utils_dev/myDevEnvTemplate.sh b/utils_dev/myDevEnvTemplate.sh
new file mode 100755
index 0000000000..69769034c0
--- /dev/null
+++ b/utils_dev/myDevEnvTemplate.sh
@@ -0,0 +1,119 @@
+# My Development Environment
+#
+# This script sets variable for compiling Adempiere from source
+# Ported from Windows script Marek Mosiewicz
+# If you have difficulties, compare it with the Windows version.
+#
+# $Header: /cvsroot/adempiere/utils_dev/myDevEnvTemplate.sh,v 1.6 2003/04/27 12:34:16 marekmosiewicz Exp $
+#
+# Check the following parameters:
+# -------------------------------
+
+if [ $JAVA_HOME ]; then
+ export PATH=$JAVA_HOME/bin:$PATH
+else
+ echo JAVA_HOME is not set.
+ echo You may not be able to build Adempiere
+ echo Set JAVA_HOME to the directory of your local JDK.
+fi
+
+
+#Set Adempiere Source Directory - default one dir up from place where script resides
+
+SAVED_DIR=`pwd` #save current dir
+cd `dirname $0`/.. #change dir to one up form place where script resides - doesn not work with sym links
+export ADEMPIERE_SOURCE=`pwd` #this is adempiere source
+cd $SAVED_DIR #back to the saved directory
+
+echo ADEMPIERE_SOURCE is $ADEMPIERE_SOURCE
+
+if [ ! -d $ADEMPIERE_SOURCE/client ] ; then
+ echo "** ADEMPIERE_SOURCE NOT found"
+fi
+
+# Passwords for the keystore
+export KEYTOOL_PASS=$KEY_PASSWORD
+if [ ! $KEYTOOL_PASS ] ; then
+ export KEYTOOL_PASS=myPassword
+fi
+
+# Keystore & FTP Password
+export ANT_PROPERTIES=-Dpassword=$KEYTOOL_PASS -DftpPassword=$FTP_PASSWORD
+
+# Ant to send email after completion - change or delete
+#export ANT_PROPERTIES="$ANT_PROPERTIES -DMailLogger.mailhost=xxx -DMailLogger.from=xxxx -DMailLogger.failure.to=xxxx -DMailLogger.success.to=xxxx"
+
+# Automatic Installation - Where Adempiere will be unzipped
+export ADEMPIERE_ROOT=/adempiere
+
+# Automatic Installation - Resulting Home Directory
+export ADEMPIERE_HOME=$ADEMPIERE_ROOT/Adempiere
+
+# Automatic Installation - Share for final Installers
+export ADEMPIERE_INSTALL=/adempiere/install
+if [ ! -d $ADEMPIERE_INSTALL ] ; then
+ mkdir -p $ADEMPIERE_INSTALL
+fi
+
+# ---------------------------------------------------------------
+# In most cases you don't need to change anything below this line
+# If you need to define something manually do it above this line,
+# it should work, since most variables are checked before set.
+# ---------------------------------------------------------------
+
+export CURRENTDIR=`pwd`
+
+# Set Version
+export ADEMPIERE_VERSION=ADempiere
+export ADEMPIERE_VERSION_FILE=311
+export ADEMPIERE_VENDOR=ADempiere
+
+export ENCODING=UTF-8
+
+# ClassPath
+if [ ! -f $JAVA_HOME/lib/tools.jar ] ; then
+ echo "** Need full Java SDK **"
+fi
+export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
+
+if [ ! -f $ADEMPIERE_SOURCE/tools/lib/ant.jar ] ;then
+ echo "** Ant.jar NOT found **"
+fi
+export CLASSPATH=$CLASSPATH:$ADEMPIERE_SOURCE/tools/lib/ant.jar:$ADEMPIERE_SOURCE/tools/lib/ant-launcher.jar:$ADEMPIERE_SOURCE/tools/lib/ant-swing.jar:$ADEMPIERE_SOURCE/tools/lib/ant-commons-net.jar:$ADEMPIERE_SOURCE/tools/lib/commons-net.jar
+#export CLASSPATH=$CLASSPATH:$ADEMPIERE_SOURCE/jboss/lib/xml-apis.jar
+
+# Set XDoclet 1.1.2 Environment
+export XDOCLET_HOME=$ADEMPIERE_SOURCE/tools
+
+# .
+# This is the keystore for code signing.
+# Replace it with the official certificate.
+# Note that this is not the SSL certificate.
+# .
+
+if [ ! -d $ADEMPIERE_SOURCE/keystore ] ; then
+ mkdir $ADEMPIERE_SOURCE/keystore #create dir
+fi
+
+# check
+if [ ! -f $ADEMPIERE_SOURCE/keystore/myKeystore ] || [ ! "keytool -list -alias adempiere -keyStore $ADEMPIERE_SOURCE/keystore/myKeystore -storepass $KEYTOOL_PASS" ] ; then
+ # This is a dummy keystore for localhost SSL
+ # replace it with your SSL certifificate.
+ # Please note that a SSL certificate is
+ # different from the code signing certificate.
+ # The SSL does not require an alias of adempiere and
+ # there should only be one certificate in the keystore
+
+ HOSTNAME=`hostname`
+
+
+ echo No Keystore found, creating for $HOSTNAME ...
+
+ KEYTOOL_DNAME="CN=$HOSTNAME, OU=myName, O=AdempiereUser, L=myTown, ST=myState, C=US"
+
+ keytool -genkey -keyalg rsa -alias adempiere -dname "$KEYTOOL_DNAME" -keypass $KEYTOOL_PASS -validity 365 -keystore $ADEMPIERE_SOURCE/keystore/myKeystore -storepass $KEYTOOL_PASS
+ keytool -selfcert -alias adempiere -dname "$KEYTOOL_DNAME" -keypass $KEYTOOL_PASS -validity 180 -keystore $ADEMPIERE_SOURCE/keystore/myKeystore -storepass $KEYTOOL_PASS
+fi
+
+# Set ADEMPIERE_ENV for all other scripts.
+export ADEMPIERE_ENV=Y
diff --git a/utils_dev/templates.xml b/utils_dev/templates.xml
new file mode 100644
index 0000000000..c5f448afe8
--- /dev/null
+++ b/utils_dev/templates.xml
@@ -0,0 +1,168 @@
+<b>${word_selection}${cursor}</b><code>${word_selection}${cursor}</code><code>null</code><i>${word_selection}${cursor}</i><pre>${word_selection}${cursor}</pre>@author ${user}/**
+ * Get ${enclosing_type} from Cache
+ * @param ctx context
+ * @param _ID id
+ * @return ${enclosing_type}
+ */
+public static ${enclosing_type} get (Properties ctx, int _ID)
+{
+ Integer key = new Integer (_ID);
+ ${enclosing_type} retValue = (${enclosing_type})s_cache.get(key);
+ if (retValue != null)
+ return retValue;
+ retValue = new ${enclosing_type} (ctx, _ID, null);
+ if (retValue.get_ID() != 0)
+ s_cache.put(key, retValue);
+ return retValue;
+} // get
+
+/** Cache */
+private static CCache<Integer,${enclosing_type}> s_cache = new CCache<Integer,${enclosing_type}>("", 20);${type} ${new_name} = (${type}) ${name};catch (${Exception} e) {
+ ${cursor}// ${todo}: handle exception
+}/******************************************************************************
+ * Product: Adempiere ERP & CRM Smart Business Solution
+ * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms version 2 of the GNU General Public License as published
+ * by the Free Software Foundation. This program is distributed in the hope
+ * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ * You may reach us at: ComPiere, Inc. - http://www.adempiere.org/license.html
+ * 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA or info@adempiere.org
+ *****************************************************************************/
+do {
+ ${line_selection}${cursor}
+} while (${condition});else {
+ ${cursor}
+}else if (${condition}) {
+ ${cursor}
+}<code>false</code>for (int ${index} = 0; ${index} < ${array}.length; ${index}++) {
+ ${line_selection}${cursor}
+}for (int ${index} = 0; ${index} < ${array}.length; ${index}++) {
+ ${array_type} ${array_element} = ${array}[${index}];
+ ${cursor}
+}for (Iterator ${iterator} = ${collection}.iterator(); ${iterator}.hasNext(); ) {
+ ${type} ${element} = (${type}) ${iterator}.next();
+ ${cursor}
+}for (${iterable_type} ${iterable_element} : ${iterable}) {
+ ${cursor}
+}/** The Lines */
+private ${array_type}[] m_lines = null;
+
+/**
+ * Get Lines
+ * @param reload reload data
+ * @return array of lines
+ */
+public ${array_type}[] getLines (boolean reload)
+{
+ if (m_lines != null && !reload)
+ return m_lines;
+ ArrayList list = new ArrayList();
+ ${cursor}
+
+ //
+ m_lines = new ${array_type}[list.size()];
+ list.toArray(m_lines);
+ return m_lines;
+} // getLines
+if (${condition}) {
+ ${line_selection}${cursor}
+}if (${condition}) {
+ ${cursor}
+} else {
+
+}if (${name} instanceof ${type}) {
+ ${type} ${new_name} = (${type})${name};
+ ${cursor}
+}PreparedStatement pstmt = null;
+try
+{
+ pstmt = DB.prepareStatement(sql, get_trxName());
+ pstmt.setInt(1, x);
+ ResultSet rs = pstmt.executeQuery();
+ while (rs.next())
+ {
+ list.add (new XX (ctx, rs, get_trxName()));
+ }
+ rs.close();
+ pstmt.close();
+ pstmt = null;
+}
+catch (Exception e)
+{
+ log.log(Level.SEVERE, sql, e);
+}
+try
+{
+ if (pstmt != null)
+ pstmt.close();
+ pstmt = null;
+}
+catch (Exception e)
+{
+ pstmt = null;
+}if (${name} == null) {
+ ${name} = new ${type}(${arguments});
+ ${cursor}
+}
+
+return ${name};/** Logger */
+private static CLogger log = CLogger.getCLogger(${enclosing_type}.class);
+public static void main(String[] args) {
+ ${cursor}
+}${type} ${name} = new ${type}(${arguments});//$$NON-NLS-${N}$$<code>null</code>private ${return_type} ${name}(${arguments}) {
+ ${cursor}
+}private static ${return_type} ${name}(${arguments}) {
+ ${cursor}
+}protected ${return_type} ${name}(${arguments}) {
+ ${cursor}
+}public ${return_type} ${name}(${arguments}) {
+ ${cursor}
+}new Runnable() {
+ public void run() {
+ ${line_selection}
+ }
+}switch (${key}) {
+ case ${value}:
+ ${cursor}
+ break;
+
+ default:
+ break;
+}synchronized (${mutex}) {
+ ${line_selection}
+}System.err.println(${word_selection}${cursor});System.out.println(${word_selection}${cursor});System.out.println("${enclosing_type}.${enclosing_method}()");public void test${name}() throws Exception {
+ ${cursor}
+}(${type}[]) ${collection}.toArray(new ${type}[${collection}.size()]);ArrayList<{enclosing_type}> list = new ArrayList<{enclosing_type}>();
+${cursor}
+${enclosing_type}[] retValue = new ${enclosing_type}[list.size()];
+list.toArray(retValue);
+return retValue;/**
+ * String Representation
+ * @return info
+ */
+public String toString()
+{
+ StringBuffer sb = new StringBuffer("${enclosing_type}[");
+ sb.append(getID())
+ .append("-").append(getName())
+ .append("]");
+ return sb.toString();
+} // toString<code>true</code>try {
+ ${line_selection}${cursor}
+} catch (${Exception} e) {
+ // ${todo}: handle exception
+}while (${enumeration}.hasMoreElements()) {
+ ${type} ${element} = (${type}) ${enumeration}.nextElement();
+ ${cursor}
+}while (${iterator}.hasNext()) {
+ ${type} ${element} = (${type}) ${iterator}.next();
+ ${cursor}
+}while (${condition}) {
+ ${line_selection}${cursor}
+}
\ No newline at end of file
diff --git a/utils_dev/trl/RUN_Trl_Mandatory.bat b/utils_dev/trl/RUN_Trl_Mandatory.bat
new file mode 100644
index 0000000000..f22e445433
--- /dev/null
+++ b/utils_dev/trl/RUN_Trl_Mandatory.bat
@@ -0,0 +1,13 @@
+@Rem Extract only mandatory fields of translation files
+
+@Rem Parameter - file to process otherwise default
+SET FILE=%1%
+IF '%FILE%'=='' SET FILE=AD_Element_Trl_en_US.xml
+IF '%ADEMPIERE_SOURCE%'=='' SET ADEMPIERE_SOURCE=D:\Adempiere
+IF '%ADEMPIERE_TRL%'=='' SET ADEMPIERE_TRL=en_US
+
+@Echo ... %FILE%
+
+@java org.apache.xalan.xslt.Process -in %ADEMPIERE_SOURCE%\data\%ADEMPIERE_TRL%\%FILE% -xsl trl_Mandatory.xsl -out %ADEMPIERE_SOURCE%\data\%ADEMPIERE_TRL%\m_%FILE%
+
+@pause
\ No newline at end of file
diff --git a/utils_dev/trl/RUN_Trl_Print.bat b/utils_dev/trl/RUN_Trl_Print.bat
new file mode 100644
index 0000000000..dc9336fe83
--- /dev/null
+++ b/utils_dev/trl/RUN_Trl_Print.bat
@@ -0,0 +1,13 @@
+@Rem Print translation files
+
+@Rem Parameter - file to process otherwise default
+SET FILE=%1%
+IF '%FILE%'=='' SET FILE=AD_Element_Trl_en_US.xml
+IF '%ADEMPIERE_SOURCE%'=='' SET ADEMPIERE_SOURCE=D:\Adempiere
+IF '%ADEMPIERE_TRL%'=='' SET ADEMPIERE_TRL=en_US
+
+@Echo ... %FILE%
+
+@java org.apache.xalan.xslt.Process -in %ADEMPIERE_SOURCE%\data\%ADEMPIERE_TRL%\%FILE% -xsl trl_Print.xsl -out %ADEMPIERE_SOURCE%\data\%ADEMPIERE_TRL%\p_%FILE%
+
+@pause
diff --git a/utils_dev/trl/adempiereTrl.dtd b/utils_dev/trl/adempiereTrl.dtd
new file mode 100644
index 0000000000..daf1a33e48
--- /dev/null
+++ b/utils_dev/trl/adempiereTrl.dtd
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/utils_dev/trl/trl_Mandatory.xsl b/utils_dev/trl/trl_Mandatory.xsl
new file mode 100644
index 0000000000..cdd12ac734
--- /dev/null
+++ b/utils_dev/trl/trl_Mandatory.xsl
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/utils_dev/trl/trl_Print.xsl b/utils_dev/trl/trl_Print.xsl
new file mode 100644
index 0000000000..08cc2159a2
--- /dev/null
+++ b/utils_dev/trl/trl_Print.xsl
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file