Mar/01/2010
JExternal_600.bundle
JWorld_600.bundle
    1. A Java Runtime Environment (JRE) for Windows is built into JWorld. You don't need to install a JRE any longer to use our plugins.
    2. The JavaClasses is switched to another when switching structure files by using the "Open..." menu in Design mode.
    3. The reference manual was updated.
    4. The demos for JExternal were updated.
Dec/13/2009
JExternal_502.bundle
JWorld_502.bundle
    1. JExternal 5.0.0's memory leaks were fixed.
    2. The performance when 4D arrays and BLOBs are passed to Java methods has improved.
Apr/15/2009
JExternal 5.0.0
JWorld 5.0.0
    1. The performance has improved greatly compared with the previous versions.
    2. This version works with 4D v11. It cannot work with v2004 or older versions of 4D, because it was created by using the plugin SDK for 4D v11.
    3. There are no differences between C_STRING and C_TEXT for plugins created by using the plugin SDK for 4D v11. Therefore C_STRINGs are converted to objects of java.lang.String class instead of com.ronri_kobo.String255 class. Similarly ARRAY STRINGs are converted to arrays of java.lang.String[] instead of com.ronri_kobo.String255[].
Mar/14/2008
JExternal manual DV4.1E
    call4DMethod() of com.ronri_kobo.JExternal.DBWorld class was changed as follows:
    public synchronized Object call4DMethod (.....) --> public Object call4DMethod (.....)
    In the current JExternal, call4DMethod() is not a "synchronized" method. Callback methods called by call4DMethod() can be executed concurrently in 4D processes.
Mar/05/2008
JExternal 4.1.3
JWorld 4.1.3
    1. Bugs in JExternal 4.1.1, which caused to crash 4D in compiled mode, were fixed.
    2. When you used JExternal 4.1.1 with 4D v11 in Unicode mode, C_POINTER instead of C_TEXT had to be used to receive string parameters in callback methods. In JExternal 4.1.3, C_TEXT can be used to receive string parameters there as well as usual 4D methods.
    3. When you used JExternal 4.1.1 with 4D v11 in Unicode mode, C_POINTER instead of C_TEXT had to be used to return a string in callback methods. In JExternal 4.1.3, C_TEXT can be used to return a string there as well as usual 4D methods.
    4.The demo for 4D v11 (JEX_SimpleDemo_413) was updated.
    5. In the demos for 4D v2004 (JEX_XXXXX_403), JExternal 4.1.3 and JWorld 4.1.3 are used.
Nov/11/2007
JExternal 4.1.1
JWorld 4.1.1
    1. JExternal ver 4.1.1 and JWorld ver 4.1.1 are Universal Binary plug-ins. However, they cannot work with v2004 or earlier versions of 4D on Intel-based Macs, because they cannot work in Rosseta. On Intel-based Macs, you need to use them with 4D v11 or later.
    2. In JWorld ver 4.1.1, a new plug-in method JWD Set JVM options() was add to set start options for JVM.
    3. JExternal reference manual was updated to dv 4.0E.
    4. In JExternal ver 4.1.1, Java methods called from 4D are executed in a native thread corresponding to a 4D process. If Java methods are called from two processes at the same time, they are executed in parallel.
    5. In the demos of JEX_XXXXX_402E, JExternal ver 4.1.1 and JWorld ver 4.1.1 are used instead of JExternal ver 4.0.2 and JWorld ver 4.0.2.
Feb/13/2005
JExternal 4.0.2
All JDBC drivers in the demo "JEX_JDBCDemo_402" were replaced to new ones. And in this demo Cloudscape(Derby) was added to the server list.
Feb/11/2005
JExternal 4.0.2
JWorld 4.0.2
In this version, following bugs are fixed:
1) If you use JExternal 4.0.1 on 4D Client 2004.1, DBWorld.alert() causes a crash.
2) If you use JExternal 4.0.1 on 4D Client 2004.1 in the trial mode, it causes a crash when the trial is over.
Nov/04/2004
The EclipseProjects folder in the demo for JExternal version 4.0.1 was replaced with new one.
Oct/25/2004
JExternal 4.0.1 and JWorld 4.0.1 are compatible with the new plug-in architecture of 4D 2004.
JExternal 4.0.1
1. The JavaClasses folder can be located in the Contens folder of JExternal_401.bundle.
2. If you use JExternal with 4D Server 2004, all the files and folders in the Contents folder of JExternal_401.bundle are automatically downloaded into the clients. You don't need to download files in the JavaClasses folder by yourself.
3. JExternal 4.0.1 requires JWorld 4.0.1 or later.
JWorld 4.0.1
1. The RonriKobo folder can be located in the Contens folder of JWorld_401.bundle. We recommend for you to always put the RonriKobo holder there.
2. If you use JWorld with 4D Server 2004, all the files and folders in the Contents folder of JWorld_401.bundle are automatically downloaded into the clients. You don't need to download files in the RonriKobo folder by yourself.
3. JWorld 4.0.1 launches Java 1.4 or later (including J2SE 5.0) as a Java virtual machine. It cannot launch older Java virtual machines.
Apr/08/2004
JExternal demos(xxx_310E.xxx) are available, which show you how to use Eclipse and Ant in order to build Java programs which are executed from 4D using JExternal. Download a demo for JExternal and read "ReadMe_EN.pdf" in the EclipseProjects folder.
Oct/31/2003
JWorld 3.1.0
1. Registry access (Windows)
In Windows if you specify a blank in stead of the path to the jvm.dll as the parameter to the plug-in method JWD Create java world, it is considered that the environment variable JVMDLL_PATH is specified to the plug-in method. In JWorld_310, if you don't have the environment variable in your system, the plug-in method uses the value of the RuntimeLib key in the registry as the path to the jvm.dll.
First, the value of the CurrentVersion key is retrieved, which is located in HKEY_LOCAL_MACHINE¥SOFTWARE¥JavaSoft¥Java Runtime Environment in the registry. Next, the value of the RuntimeLib key is retrieved, which is located in HKEY_LOCAL_MACHINE¥SOFTWARE¥JavaSoft¥Java Runtime Environment¥<value of the CurrentVersion key> in the registry.
Consequently you can always specify a blank as the parameter to JWD Create java world, If you install a Java virtual machine correctly.
2. Java virtual machine options (Mac OS X / Windows)
You can set Java virtual machine options by editing the STR# resource in the JWorld plug-in file.  
For Mac OS X edit fields in the STR# resource ID 15903, in which a Java virtual machine option -Djava.awt.headless=true is set as a default option. For Windows edit fields in the STR# resource ID 15904, in which a Java virtual machine option #-Djworld.stdout.redirect=true is set as a default option. But the option is invalid because the option string begins with "#". If you want to validate the option, remove "#" from the option string. 10 options can be set there for each platform by editing fields 1 to 10.
Note 1: Java virtual machine options are ignored in Mac OS 8/9.
Note 2: If you set a Java virtual machine option -Xms or -Xmx, you can customize the size of the Java heap. See following URLs for more information:
http://java.sun.com/docs/hotspot/VMOptions.html
http://developer.apple.com/documentation/Java/Reference/Java141VMOptions/VM_Options/
Note 3: Use ResEdit on Mac OS to edit the resources in the plug-in file. JbyJ Transporter or 4D Transporter can extracts the resource file (.RSR) for Windows. If you use ResourceEditor, you can directly edit resource files on Windows.
ResourceEditor: http://www.orchardsoft.com/news_links/4Dapps/resource_editor.htm
3. Redirection of stdout and stderr (Mac OS X / Windows)
You can redirect stdout and stderr to a file, if you set a Java virtual machine option -Djworld.stdout.redirect=true. The default file name is "jworldout.txt" which is created in the same level as the structure file. You can rename the file if you set another Java virtual machine option -Djworld.stdout.redirect.file=<the full path name of the file>.
Note 1: This option is ignored in Mac OS 8/9.
Note 2:  In Windows you cannot see the result of System.out.println(), unless this option is set.
4. Headless option (Mac OS X)
If you are on Java1.4 or later, you can set a Java virtual machine option -Djava.awt.headless=true. This option is very important for Mac OS X. Unless this option is set, Java methods in java.awt package can freeze or crash 4D in Mac OS X. Java 1.4.1 (build 1.4.1_01-69.1) or later supports this option in Mac OS X. In Windows you can use Java methods in java.awt package safely even if this option is not set.
Note 1: This option is ignored in Mac OS 8/9.
JExternal_310
1. Parameters and results
The max number of results returned from Java methods is 99. And when Java methods callback 4D methods, the max number of parameters passed to 4D is 99. In the older versions of JExternal their value was 21 unless you edit the VAR# resource in the JWorld plug-in file.
2. JDBC constants
JExternal_310 supports following JDBC constants which you can use in 4D methods.
JDBC_BIGINT
JDBC_BINARY
JDBC_BIT
JDBC_BLOB
JDBC_CHAR
JDBC_CLOB
JDBC_DATE
JDBC_DECIMAL
JDBC_DOUBLE
JDBC_FLOAT
JDBC_INTEGER
JDBC_LONGVARBINARY
JDBC_LONGVARCHAR
JDBC_NUMERIC
JDBC_REAL
JDBC_SMALLINT
JDBC_TIME
JDBC_TIMESTAMP
JDBC_TINYINT
JDBC_VARBINARY
JDBC_VARCHAR
Jul/28/2003
JWorld 3.0.3 -> 3.0.5
JWorld 3.0.5 can launch the Java virtual machine properly even if you switch structure files in the user mode.
JExternal 3.0.3 -> 3.0.5
JExternal 3.0.5 can accept the product key code and license key code for UNLIMITED DISTRIBUTION.
Contact us (support@ronri-kobo.com) for the detailed information.
May/22/2003
JWorld and JExternal are upgraded to version 3.0.3.
JWorld_303
1. JWorld_303 launches Java 1.4.1 in Mac OS X, if you have installed Java 1.4.1. If you have not installed it, JWorld_303 launches Java 1.3.1 as before.
In JWorld_303 you do not need to copy libJWorld.jnilib into /usr/lib/.
JWorld_303 in Mac OS always launches an Apple's Java VM, even if any character sequence including a blank is specified as the parameter to JWD Create java world.
2. In Windows an environment variable can be specified in stead of the path to the jvm.dll as the parameter to JWD Create java world, if the environment variable is set the path to the jvm.dll. Besides if you specify a blank in stead of an environment variable, it is considered that the environment variable "JVMDLL_PATH" is specified. Consequently, a blank can be used as the parameter to JWD Create java world in Mac OS and Windows commonly, if you create an environment variable "JVMDLL_PATH" and set the path to the jvm.dll for it in Windows.
Example:
`This code can be used in Mac OS and Windows commonly
`if you set the path to the jvm.dll
`to the environment variable "JVMDLL_PATH" in Windows.
$Err:=JWD Create java world ("")
`
In Windows JWorld_303 launches Sun's J2SE. It does not suppot JDK 1.1.x.
3. In JWorld_303 RonriKobo and JavaClasses folder may be located in the following folders.
(1) Folder where the structure file exists (It is same as before)
(2) Folder where the application file (4th Dimension, 4D Server, 4D Client, ...) exists
(3) 4D folder (or ACI folder)
When JWD Create java world is called, the method searches RonriKobo folder in above order. The files in the RonriKobo folder found first are used to launch a Java VM. As well as RonriKobo folder, the method searches JavaClasses folder in above order, the files in the JavaClasses folder found first are added to the classpath. RonriKobo folder and JavaClasses folder do not always exist in the same folder. We recommend that you put RonriKobo folder into 4D folder because the files in it are rarely changed and you put JavaClasses folder into the folder where the structure file exists because the files in it may be changed for every structure file.
4. If our plug-ins are used with 4D Client, we recommend that you create the methods to copy Java files from the server to clients. In demos of version 3.0.3 the methods for it are improved sharply. Files are copied more quickly than before. Unnessary files are not copied. Files are copied recursively. Following methods are used in the demos.
U_DOWNLOADFILES -- This method is called in JAVA_Setup or JAVA_SetupJExternal.
SP_GETFILELIST -- This method is a strored procedure.
SP_DOWNLOADFILE -- This method is a strored procedure.
JExternal_303
In Mac OS X and Windows the overhead time to call a Java method is shortened to about 1/100 of the former version of JExternal. In Mac OS 8/9 it is same as the former version of JExternal.
In the JDCB demo (JEX_JDBCDemo_303), the JDBC driver for FrontBase is added and you can connect to FrontBase as well as Oracle, Sybase ...
In the FOP demo (JEX_FOPDemo_303), you can create PDFs embedded links, images or SVGs on both platforms Mac OS X and Windows.
Jul/01/2002
JExternal (.4DX/.4CX): 300 -> 301
JWorld (.4DX/.4CX): 300 -> 301
When you launched Java methods by JExternal ver. 3.0.0, some of them required very much time to complete the execution, however they did not require so much time when they were launched in the command line. We encountered this problem when we tried to use JSSE (Java Secure Socket Extension). In JExternal ver. 3.0.1, this problem was solved by allocating more CPU time to the Java thread, in which every Java method is launched. It is possible to change the time by yourself if you edit the resource (STR# Resource ID: 17701) in JExternal by ResEdit.
STR# Resource ID: 17701 Index1 (for Mac OS X)
Default: 100[milli-second]
30<= the value <=1000
STR# Resource ID: 17701 Index2 (for Windows)
Default: 200[milli-second]
0<= the value <=1000
Apr/26/2002
JWorld (.4DX/.4CX): 2xx -> 300
JWorld (.jar): 2xx -> 300
JExternal (.4DX/.4CX): 2xx -> 300
JExternal (.jar): 2xx -> 300
1) JExternal ver.3.0.0 can work on Mac OS X.
2) JExternal ver.3.0.0 can work with 4D Server.
3) In Jworld ver.3.0.0, two plug-in method are added.
JWD Close java world
JWD Convert line separator