ID 915: J-Integra® now supports passing two-dimensional arrays of any
oleautomation type to Java.
ID 950: Fixed a bug where the ResourceDll for ntvinv.dll was not loading
correctly on machines with different regional settings other than English
ID 955: Fixed a bug where waiting threads were not being notified when
a connection was timing out after JINTEGRA_OUTGOING_CONNECTION_TIMEOUT
milliseconds. This was causing control of the application to get stuck
inside the J-Integra® runtime. Now the Exception can be caught by the Java
client, and handled accordingly.
ID 969: The JEB API no longer uses ocxhost to access the CDO library
(cdo.dll). The documentation and examples for Java-Exchange have been
updated to reflect these changes.
Fixed a bug in the JEB API which caused the getParent() method for
folders to not work properly.
ID 984: The documentation for JCA-COM, Java-Exchange, and Java-Excel
has been merged into the main J-Integra® documentaion.
ID 1020: All examples which previously used the ocxhost tool have been
updated to use setdllhost instead. The ocxhost tool is no longer needed
except when accessing Microsoft Active Data Objects (ADO).
ID 1103: Setdllhost now gives a failure message if it does not work.
ID 1123: Added two new options to the regprogid
tool (/list and /listall).
ID 1132: Added a JINTEGRA_LOG_ROLLOVER_LINECOUNT property. When the
number of lines logged to a log file reaches this limit then the runtime
closes the existing log file and opens a new one. When the log file is
closed, it is timestamped by adding "yyMMddHmmssSSSS" in the
file name, where yy=year, MM=month, H=hour, mm=minutes, ss=seconds, and
SSSS=milliseconds. The log header is always printed at the top of the
log files, and the last line in the log file indicates the name of the
new log file.
ID 1133: Fixed bug where the java2com tool was failing in command line
mode on UNIX machines with no XWindows.
ID 1137: Fixed the regjvmcmd tool, as it was not handling all the options
for native inproc mode correctly.
ID 1141: Fixed the com2java tool so that it no longer fails when trying
to overwrite old proxy files which are read-only.
JCA-COM is no longer a separate product. It is now offered as a plugin
for J-Integra® for those wishing to overcome EJB
when using J-Integra® in EJB-COM applications.
The JCA-COM examples now show how to enable transaction support in
your EJBs by implementing the XAResource and LocalTransaction
What's new in J-Integra® v1.5.3? (Released June 21, 2002)
Fixed memory leak when a Java client accesses multiple COM servers
in a short period of time in DCOM mode (e.g. instanciating and closing
Excel in a loop). This can now be avoided by using the JINTEGRA_FREE_UNUSED_ROES
property. (Id: 466)
The com2java "Ignore conflicting interfaces" option has been
changed to "Implement conflicting interfaces". Deselecting this
option will cause Java classes to NOT implement conflicting interfaces
(i.e. comment out additional interfaces with conflicting method names).
Examples in the documentation have been updated to use JDK1.3.1 (JDK1.4.x
is also supported). (Id: 517)
Fixed NullPointerException when using COM event methods which contain
parameters. (Id: 641)
Fixed bug where some of the tools in jintegra\bin were unable to load
their ResourceDLLs on Windows 95/98 machines. Updated the algorithm to
also look in the jintegra\bin directory for its ResourceDLL. This was
needed since Java Web Start does not support the distribution of libraries
(DLLs) in a folder structure. (Id: 667)
- Fixed access violation that sometimes occurred when
a COM client was calling a method in a Java class. The error happened
when the Java class contained more than 193 methods. Now the limit to
the number of methods a Java class can contain is 1000. (Id: 689)
Fixed memory leak when a COM client accesses a Java object using early
binding in DCOM or Native mode. (Id: 720)
Fixed bug which caused Excel to crash when using VBA code inside Excel
to repeatedly subscribe to an event on a Java object in DCOM or Native
mode. (Id: 724)
Fixed memory leak when accessing Java objects from VBScript in DCOM
mode. (Id: 727)
- Fixed bug which caused Excel to crash on exit after
subscribing to an event in DCOM or Native mode. (Id: 733)
Fixed bug which caused VB IDE to crash when debugging code that made
calls to Java objects in Native (in-process) mode. (Id: 738)
Fixed bug which was causing GetObject calls in an ASP page to fail
under heavy loads. (Id: 782)
Fixed memory leak when accessing Java objects from COM in Native mode.
What's new in J-Integra® v1.5.2? (Released April 19, 2002)
We have added support for SAFEARRAYs of User Defined Types (UDTs) --
Structs -- in DCOM mode. (ID: 542)
It is now possible to have J-Integra® use the same Java thread for each
COM client thread when the COM client thread invokes methods on Java objects,
through the use of the JINTEGRA_MATCH_THREADS property -- see the last
section of this
If a Java class has methods such as setSomeProperty(...) and getSomeProperty(),
these can now be accessed from a late bound COM client such as VBScript
using the property name, for example o.someProperty. (ID: 469)
You can now control what Java objects are permitted to be accessed
from a COM client (ID 634)
COM string coercion into Java booleans now only works for 'true' and
'false' -- previously anything that was not 'true' was coerced to false.
- Several memory leaks, causing threads and sockets
to build up over time in the runtime have been fixed.
Significant performance enhancements.
J-Integra® normally returns the result of calling toString() on a Java
object when a COM client requests its default property. A bug whereby
this was not happening for early-bound Java objects has been fixed.
An early-bound COM client invoking a Java method that returned
a date in native in-proc mode did not cause the return value to be zero
when the Java client returned null. This has been fixed. (ID:
- The J-Integra® runtime no longer terminates after
two hours when running with an evaluation license (ID: 555).
A bug where the ntvinv.dll DLL sometimes failed to locate its localisation
resource file has been resolved. (ID: 559)
If a Java String constant contained a newline character, the java2com
tool generated invalid corresponding IDL. This has been resolved
The regtlb command now supports unicode characters in the type library
path/file name. (ID 613)
What's new in J-Integra® v1.5.0? (Released January 29, 2002)
- Three new Oracle9i Application Server examples
have been added: VB client to HelloWorld
EJB, VB client to Customer EJB
and VB Client to Purchase Order System.
- Documentation is no longer packaged with the product
but is available as a separate download.
- Support for reading three-dimensional Variant arrays
in DCOM mode. (Id: 355)
- Performance improvements in native mode.
- New C++ zero
client installation example.
- New example demonstrating integration with the IBM Web Services Toolkit.
- Fixed native mode problem where access violation
can occur when calling a Java object from a COM client by doing a vtable
call, when the method called throws an exception. (Id:359)
- Fixed JINTEGRA_MATCH_THREADS problem, where
classloader not set in native mode. (Id:354)
- New licensing mechanism
- Miscellaneous documentation updates.
- Fixed access violation when instantiation of
a remote COM object failed in native mode when the remote host was explicitly
specified. (Id: 427).
- The Java-Exchange and Java-Excel bridges have been
integrated with the Suite. Examples and .jar files for each product are
included. Please see the What's New sections in Java-Exchange and Java-Excel.
- Fixed memory leak when doing a queryInterface on
a Java object from a COM client in native mode with the DONT_DETACH_JNI_THREADS
property set. (Id: 358).
- com2java now only generates starting, finished and
error messages when processing a type library. (Id: 302)
- Fixed bug in regjvm where it failed to correctly
generate a registry script when the classpath is long. (Id: 321)
- No longer log "not tracking" log message
to jintegra log. (Id: 287)
- New installation program supporting Windows and UNIX
What's new in J-Integra® v1.4.1? (Released August 7, 2001)
- A new HP Bluestone
Application Server example (EJBs) has been added.
- A new JBoss Application
Server example (EJBs) has been added.
- A new JRun Application
Server example (EJBs) has been added.
- It is now possible to call a Java method which takes
an array of Java objects of a specific class as parameters, using early
binding, by passing a Variant array, each element containing a reference
to a Java object of the appropriate class.
What's new in J-Integra® v1.4.0? (Released June 3, 2001)
- Our evaluation licensing mechanism has been improved
-- you will be sent a license by email when you download the J-Integra®
kit. Compile the license class and place it in a directory in your CLASSPATH
to activate your 45 day evaluation.
- A new Visual
SourceSafe example has been added.
- A new Oracle8i EJB example has been added.
- The com2java tool now handles SAFEARRAYs of enums
- A bug calling into Java from COM clients on Windows
98 has been fixed
- You can now ask
to be notified when new DCOM connections are established from COM clients,
and you can reject such connections.
- You can now get the default property associated with
a COM object by calling the getDefaultProperty() method on it.
- Several new Technical Notes have been created.
- You can now set the JINTEGRA_OUTGOING_TIMEOUT property
to the time in milliseconds after which J-Integra® will close outgoing
- You can ask J-Integra® to pre-fetch the next element
behind the scenes when accessing COM VariantEnums as java.util.Enumerations.
What's new in J-Integra® v1.3.9? (Released April 2, 2001)
- There are several new technotes online, including
one on accessing COM objects from EJBs (TN024), and on running Java classes
a Windows Services (TN020).
- The iPlanet Application Server example has been updated
to support the latest version of iPlanet.
- You can now pass Variants of type VT_EMPTY and VT_NULL
from Java to COM by passing com.linar.jintegra.EmptyVariant.TYPE and com.linar.jintegra.NullVariant.TYPE.
- The ASP
to Java example now includes code for JScript, in addition to VBScript.
- Fixed a bug where two Unreferenced notifier threads
- Added the JINTEGRA_INCOMING_CONNECTION_TIMEOUT property
which can be set to the number of milliseconds after which J-Integra® should
close incoming connections.
- Better support for passing COM GUIDs has been added.
- A new JMS example shows
how to place objects in a JMS queue from Visual Basic using both late
and early binding.
- A new WebSphere
EJB example has been added, showing how you can access EJBs hosted
in WebSphere from COM clients.
- A new .NET example
has been added, showing how you can access .NET components from Java clients.
- A new Crystal
Reports example has been added.
- A new Dragon
NaturallySpeaking example has been added.
- A bug in the java2com tool for string constants containing
control characters has been fixed.
What's new in J-Integra® v1.3.8? (Released February 3, 2001)
- Linar has been acquired by Intrinsyc
- The com2java tool now generates Java String constants
for modules in type libraries.
- When a COM client accesses Java objects in a in native
in-process Java 2 JVM, the thread context classloader is now set to use
application classloader, rather than the (default) bootstrap classloader.
This was causing problems with the WebLogic examples with native in-process
- The java2com tool now sorts the constructs in the
generated IDL file alphabetically. We had reports the the arbitary ordering
was causing type library compatability problems when the ordering changed.
- A bug with the MS JVM in which the static block for
classes loaded using Class.forName(...) was not being executed has been
worked around. This manifested itself when using J-Integra® in Applets
- The com2javacmd tool now no longer requires absolute
path names for file names passed as parameters.
What's new in J-Integra® v1.3.7? (Released December 3, 2000)
- We now have a customer references page.
- Embedding ActiveX Controls
in a Java GUI is no longer a Beta feature
- An example of using the Active Directory (ADSI) to
a new Windows user account from Java has been added.
- A example of using J-Integra® with the iPlanet Application
Server has been added.
- Several new technical notes have been added.
- It is also possible to tell J-Integra® what range
of local ports should be used when connecting to COM servers (see
Technical note 007)
- The java2com tool now generates module String constants
in the generated IDL for public static final String Java fields.
- Several performance optimisations are included. For
optimum performance please run using the jintegra_reduced_logging.jar
runtime rather than jintegra.jar
- A bug that stopped Windows 98/95 clients from accessing
Java objects as COM objects without disabling security has been fixed.
- A bug when running in native code that caused VB
to crash when subscribing to Java events has been fixed.
What's new in J-Integra® v1.3.6? (Released September 26, 2000)
- Quite a few issues related to native mode have been
- We have added support
for passing Java objects by value from Java to COM
- A bug that caused crashes when loading a Hotspot
JVM in-process has been fixed.
- We now support hosting ActiveX
Controls in a Java GUI
- Added support for passing 2D arrays including String
arrays from Java to COM
What's new in J-Integra® v1.3.5? (Released August 1, 2000)
- You can now access
Java objects from COM clients without installing anything at all
on the COM client machine.
- You can now ask to
be notified when Java objects are longer referenced by COM clients.
- The java2com tool now saves its settings in XML format.
You can still load a version v1.3.4 settings file, but when you save it
will save as XML.
- The java2com tool now has an option to automatically
save settings when exiting
- The checkconfig command now automatically displays
information about the last type library tool processed by com2java
- You can now use java com.linar.jintegra.Version
to find out what version of J-Integra® you are using.
- The 'com2java' tool now has an option to generate
code for [in]* parameters as though they were [in]
- When calling Java objects from COM in native in-proc
mode, Java output to System.out goes to the hosting process's stdout
- Clicking on the X at the top-right-hand-side of an
ocxhost window hides the window.
- A couple of Native mode reference counting bugs have
- If you tell J-Integra® what IP address to embed in
DCOM references to local Java objects that are passed to remote COM objects
(by setting the java.util.rmi.server property or the com.linar.jintegra.server
property) then J-Integra® now only listens on that IP address.
What's new in J-Integra® v1.3.4? (Released June 4, 2000)
- We have merged the proxies used for DCOM and native
mode -- you must regenerate your proxies using 'com2java' or 'java2com'
if you are upgrading to version v1.3.4. Your own code need not change.
- Native Mode is no
longer a beta feature.
We have added the following examples:
- The WebLogic
example has been updated to work with Weblogic version 5.1
- The regjvm.exe tool
is now GUI based (othe older command line regjvm tool is now called regjvmcmd)
- A deployment document has been added, describing
what files are needed where, when deploying J-Integra® based solutions.
- The java2com tool now remembers Class and Interface
UUIDs (it doesn't change them when class/interface changes though ...)
- We have extended our support for structures -- we
now support passing SAFEARRAYs of structures from COM servers to Java
- The 'com2javacmd' command now has a '/default' option
which makes it run using the settings last used in the GUI 'com2java'
- J-Integra® now supports two-dimensional byte arrays
What's new in J-Integra® v1.3.3? (Released March 31, 2000)
We now include an example of accessing:
- We have an article
on talking from COM clients to Java objects running on EPOC devices (such
as Psion palmtops, mobile 'phones, etc.)
- You can now find out
the identity of the COM client making calls into your Java code.
Enhancements to the 'java2com' tool include:
- The 'java2com' tool now generates appropriate
code for Java methods and properties using the BigDecimal type
- java2com now accepts a Jar as class name
- It attempts to detect when it is analyzing classes
that were generated by the 'com2java' tool
- There is a new dialog box to help you manage
the list of classes/interfaces to be analyzed
Two new command line tools:
- We now have a command line version of the 'com2java'
tool, called 'com2javacmd'
- We have a 'setdllhost' command line tool, which
can be used instead of OLEVIEW to configure a surrogate for DLLs.
- SilverStream has created a whitepaper showing how
J-Integra® can be used with SilverStream.
- Native Mode is still
What's new in J-Integra® v1.3.2? (Released January 31, 2000)
- We now offer an alternative to DCOM for Java-COM
interaction: Native code (this feature is
- The 'java2com' tool now supports methods which use
two-dimensional Object and String arrays as parameters or as return types
(often used in CORBA bindings).
- com2java now has option to generate package and type
names for types in type libraries other than the one being processed
- com2java now remembers the package name and output
directory associated with type libraries that it has processed, and it
includes a list of the 20 most recently used type libraries.
- We have added better support for structures, specifically
structures containing strings.
- You can now specify the workstation name that NT
perceives DCOM calls as coming from when using J-Integra®, by setting the
- We now include an example of accessing Symantec
- We now include an example of accessing Accessing
Microsoft's Internet Explorer
- We now include an example of accessing Accessing
Microsoft's Windows Media Server
- We now include an example of using J-Integra® with
the Inprise Application Server.
- We now include an example of using J-Integra® with
the SilverStream Application
- We now include an example of using J-Integra® with
the Inprise JBuilder.
- Fixed bug accessing COM enumerations as Java enumerations.
- regtlb automatically removes old registry entries
- A minor fix to add support for the release version
of Windows 2000 has been added.
- java2com now has option to perform a dump of its
analysis -- now you can see why all those classes are being pulled in,
and you can use the "Names" button to stop certain key classes
from being analysed.
- The Jvm.register() method is overloaded -- you can
specify the port name as the second parameter.
What's new in J-Integra® v1.3.1? (Released November 29, 1999)
- The runtime in this kit will stop working after the
end of January 2000 unless you purchase a license.
- The 'com2java' tool now has an option to generate
code to retry calls to COM objects if a call fails with the error AutomationException:
0x80010001 - Call was rejected by call.
- You may now tell the runtime what ip address to use
in DCOM references to local Java objects that are passed to remote COM
objects. Do this by setting the java.util.rmi.server property or
the com.linar.jintegra.server property (the latter overrides the
- The 'java2com' tool now ignores methods called '<clinit>'.
It also generates code for methods in event interfaces which do not confirm
to the standard event method prototype pattern -- such methods have code
generated which will compile, however if these methods are used a runtime
exception will be generated.
- When automatically launching a JVM the J-Integra®
Moniker emitted several error messages (and eventually suceeded) -- these
error messages are no longer displayed.
- Two-dimensional string arrays can now be received
(previously only 2D variant arrays were supported).
- You can now access instances of java.util.Vector
and java.util.List as Visual BASIC collections from Visual Basic. The
mapping is described here.
- We have included a CheckConfig.exe utility in the
'bin' directory. This tool performs several configuration checks on a
machine, and displays the result of its analysis.
- We have changed the mapping of Java errors to Visual
Basic errors. Err.Source contains the stack trace, and Err.Description
contains the Exception.getMessage()
- We have fixed a memory leak which occurred when invoking
Java objects from COM using early binding.
- We have included several new examples, include one
of accessing Rational
Rose, and of accessing COM
objects from JavaServer Pages.
- The J-Integra® date conversion routines have been
updated to fix a timezone related issue. In view of Y2K related sensitivities
regarding dates, we are publishing the updated conversion code for open
- A standard facility of COM is the ability to bind
to an object using a string form of object reference, called an ObjRef
Moniker. Given such a moniker you can now bind to a running object using
J-Integra®. Generated Java classes corresponding to COM classes now have
a static bindUsingMoniker(String moniker) member. If you are not familiar
with ObjRef Monikers then please make sure you understand them fully prior
to using this facility. Binding to running objects using string ObjRef
monikers requires no native code, and can be used on any OS.
What's new in J-Integra® v1.3.0? (Released September 27, 1999)
The runtime in this kit will stop working after the end of November
1999, unless you purchase a license.
Runtime DCOM engine (jintegra.jar) enhancements
- The runtime (jintegra.jar) is now built compressed,
and is less than 200K in size. Prior releases contained an uncompressed
- J-Integra® now supports the COM Decimal type
(these are 96-bit signed integers scaled by a variable power of 10). Variants
containing Decimals are mapped to the Java java.math.BigDecimal
- Talking to COM objects on machines with more than
one IP address causes J-Integra® to retry with the alternate
IP addresses if at first it fails to connect
J-Integra® provides multiple IP addresses in COM object references to
local Java objects, if the Java object is on a multi-homed machine.
'com2java' tool enhancements
- The 'com2java' tool ignores COM classes that implement
- If 'com2java' finds a COM class that implements interface
A and interface B, and B derives from A, then it ignores A.
Event methods which returned a value were causing incorrectly generated
event adapters. This has been fixed.
'java2com' (for early bound COM access to Java objects) tool enhancements
- The only command line parameter now accepted is the
name of a setting file saved using the GUI form of this tool. When passed
such a setting file, the tool runs using the settings from that file.
- You can now specifiy more than one class/interface
to be analyzed in the dialog box
- You can now specify how Java Class, interface, method
and field names are to be mapped to COM names. This lets you specify more
graceful names for overloaded Java method names. You can also specify
that an interface, class, method or field should not have COM equivalents
generated. Methods and fields which use a Java type that has been marked
as not for generation are also ignored.
- The 'java2com' tool now generates IDL and marshalling
code for early bound access to public fields on Java classes as
well as to methods. Final fields only have 'get' methods generated.
The 'java2com' tool now generates a COM enum containing an element
for each public static final integer field in Java interface or
class. This means you can easily access such constants from VB and VC++.
Other enhancements and bug-fixes
- 'ocxhost' instances are no longer shared between
clients -- each one gets its own.
- The MSMQ
example has been changed to use ocxhost, since some customers reported
issues between MSMQ and MTS. If you switch to using ocxhost please delete
the 'msmq' package you created in MTS.
- We have added an example of talking to the ODI's
eXcelon XML data server from Java.
- Getting a property by name was causing an error when
talking to COM objects running on Windows 2000 RC1. This has been fixed
- A date timezone conversion error has been fixed.
The source code to the date/time conversion routines have been made public
on the J-Integra® discussion list for open review.
What's new in J-Integra® v1.2.2? (Released July 26, 1999)
- This kit will stop working after the end of September
1999 unless you purchase a license.
- An Enterprise
JavaBeans example has been added to the documentation (uses BEA WebLogic)
- An OLE for
Process Control (OPC) Example has been added to the documentation.
- A couple of issues which prevented J-Integra® working
with Windows 2000 (Beta 3) have been resolved.
- A bug which caused a "invalid argument exception"
when handling events has been fixed.
- J-Integra®'s late boundCOM->Java support has been
enhanced. All public methods available either via public interfaces that
the object implements, or via public classes in its inheritance hierarchy
are rendered accessible from COM.
- A bug in the 'java2com' tool which generated wrong
marshalling code for Java methods which had arrays as parameters or return
types has been fixed.
- The generated COM class constructors which take an
AuthInfo as a parameter are deprecated. Use AuthInfo.setDefault(...)
or AuthInfo.setThreadDefault(...) instead.
What's new in J-Integra® v1.2.1? (Released June 17, 1999)
- "Jintegra" has been renamed "J-Integra®".
- Licensing has been simplifed. You no longer need
to enter license information into the 'com2java' or 'java2com' tools.
Instead licensees are given a "JintegraLicense.java" Java file
which they compile, putting the resulting class file in their CLASSPATH.
Existing licensees have been sent their new license file.
J-Integra®'s COM->Java support has
been drastically simplified. You will need to change your code. If
you have purchased a J-Integra® license, and you are adversly affected
by this change, please let us know as soon as possible.
If you were using VB/VBA late binding, then
If you are using Early (vtbl) Binding, then you will need to run J-Integra®'s
java2com tool to generate an IDL file, compile the IDL file to generate
a type library, and then register the type library. All the examples have
- replace your call to com.linar.jintact.Helper.registerJvm("MyJvm"...)
- When you start your JVM, set the JINTEGRA_DCOM_PORT
property to a free TCP/IP port like this: java -DJINTEGRA_DCOM_PORT=2123
- On Windows clients, register the JVM using regjvm
- From VB you can now create an instance of any
public Java class loadable by the JVM: Set aHashtable = GetObject("MyJvm:java.util.Hashtable")
- Added an ActiveX Data Object (ADO) example to the
"examples" directory in the kit.
- Methods that are marked as being "restricted"
are now processed by 'com2java'
- The special "_NewEnum" method name is recognized
by 'com2java' -- it generates a method which returns a java.util.Enumeration.
Call 'nextElement' on it until it throws a NoSuchElementException.
- Fixed bug whereby if an AuthInfo was passed to a
COM object constructor it would not be used.
- Minor bug fixes in 'com2java'
What's new in J-Integra® v1.2.1? (Released May 28, 1999)
- Added a thin ActiveX
Control (OCX) container called 'ocxhost'. Based on work by Mark Gibbons
- Fixed bug that occasionally caused a null pointer
exception when J-Integra® performed a RemQueryInterface on a COM object.
- Added option to 'java2com' to not perform an analysis,
but simply generate registry definitions which can be used to access a
Java class using COM late-bound access.
- Fixed bug in J-Integra®'s native code authentication
mechanism which manifested itself under VisualAge.
- The J-Integra® Activator now stores information in
the LOCAL_MACHINE part of the registry rather than the CURRENT_USER --
this means that J-Integra®'sCOM->Java support now works correctly from
environments such as Active Server Pages. You will need to re-run J-Integra®'s
'java2com' tool and re-enter the generated registry definition files.
- Garbage collection has been rationalized. If a DCOM
object reference is garbage collected then it is added to a list of remote
references to be released. Every two seconds any such references are released
by a J-Integra® runtime demon thread.
Support for additional non-Automation COM types has been added. J-Integra®
|signed/unsigned 8 bit numbers mapped to Java byte
||signed/unsigned 16 bit numbers mapped to Java short|
|signed/unsigned 32 bit numbers mapped to Java int
||signed/unsigned 64 bit numbers mapped to Java long|
|HRESULT mapped to Java long
||32 bit floats mapped to Java float|
|64 bit floats mapped to Java double
||64 bit fixed point (VT_CY) mapped to Java long|
|DATE mapped to Java java.util.Date
||BSTR mapped to Java java.lang.String|
|IDispatch mapped to Java java.lang.Object
||IUnknown mapped to Java java.lang.Object|
|BOOL mapped to Java boolean
||VARIANT mapped to Java java.lang.Object|
|void* mapped to Java int
- The 'com2java' tool now issues a warning if a method
parameter is not marked as being [in], [in out] or [out]
- The 'com2java' tool now supports aliases in type
- The examples in the documentation have been updated
to always include [in], [out], or [in, out] in IDL method definitions.
- You can now purchase a J-Integra® license on-line
by Credit Card.
What's new in J-Integra® v1.2.0? (Released April 12, 1999)
- COM unsigned chars now map to Java bytes.
They used to be mapped to Java integers. If you have licensed J-Integra®
and are impacted by this change, please contact us
- The documentation examples have been updated to reflect
the fact that it is now no longer always necessary to specify the domain/user/password
to be used when accessing COM objects from Java.
- The 'java2com'
tool now has a GUI.
Step-by-step examples of accessing Java objects as COM objects have
- We have added basic support for invoking
COM object methods at runtime by name.
- A troubleshooting guide has been added.
What's new in J-Integra® v1.2.0 Beta 1? (Released March 16, 1999)
- There is now no need to specify domain/user/password
if logged in to a Windows machine. Make sure that the J-Integra® bin
directory is in your PATH. J-Integra® will use your local credentials (interactive
user) if you have not specified authentication information (either using
com.linar.jintegra.AuthInfo.setDefault()) or by passing an authInfo parameter
to a proxy constructor. Note that the documentation has yet to be updated
to reflect this.
- There is now full support for COM access to Java
objects. Previously you had to use callbacks, not any more. Check
out the updated section on Accessing
Java objects from COM. Access instances of any public class
running in any JVM, including Java 2 on any platform from
- Long passwords no longer cause IndexOutOfBounds exceptions
- You can now use the queryInterface method
on an interface proxy to cause it to query the remote COM object to see
if it really does implement the interface. By default J-Integra® delays
this query until the first method call.
- An example of accessing Word document attributes
(author, title, manager etc) has been added to the examples directory
in the kit.
- The static com.linar.jintegra.Log.logImmediately(int
logLevel, PrintStream logFile) can now be called to tell J-Integra® to
not log messages in a background low priority thread (which it does by
- This beta will expire in one month (17th April).
We plan on releasing the full v1.2 well before that. About time
to place that order ;-)
What's new in J-Integra® v1.1.0? (Released January 29, 1999)
- Added lots more examples to the kit, in a separate
- Added support for arrays outside of Variants (VC
examples and VB examples included)
- The "equals()" method has been overridden
on references to remote objects, and you can now compare references to
remote objects to see if they refer to the same object (uses DCOM OID).
- Support for marshalling COM Structures has been added
as an experimental feature. Take a look at the examples/ms_vc/structs
directory in the kit. Structures are mapped by J-Integra® to Java classes
with all fields as public member variables.
- The VT_INT Automation type has can now be used.
- Setting the property TCP_NODELAY to any value causes
a java.net.Socket.setTcpNoDelay(true) to be invoked on all sockets opened
- An example of accessing Java objects from Active
Server Pages has been included in the examples subdirectory.
- The 'com2java' tool now accepts command line parameters
- pass a '?' to see the syntax. Note that the tool runs asynchronously.
- The Applet Example has
been extended to demonstrate how to go beyond the sandbox by using the
- Java objects can now generate COM events (although
to the Java objects they look just like Java events). Both Visual C++
and Visual BASIC examples are included in the examples subdirectory.
- Added pointer to an article on using J-Integra® with
IBM's WebSphere Application Server to the Application
What's new in J-Integra® v1.01? (Released December 7, 1998)
- A bug causing callbacks and events to not work in
some circumstances has been fixed.
- Added option to the 'com2java' tool to leave method
names unchanged. By default method names are changed to start with a lowercase
letter, as is the convention for Java.
- Minor documentation updates.
- Code obfuscator update has resolved verifier errors
when using J-Integra® with JDK1.2
- J-Integra® now propogates DCOM Causality IDs correctly.
- Fixed bug causing TCP/IP connections to the DCOM
SCM to not be correctly closed.
- Runtime expiry date updated to 31st Jan 1999 (unless
a license is purchased and installed).
What's new in J-Integra® v1.00? (Released November 8, 1998)
- Fixed a problem handling remote object references
whereby the wrong protocol address was sometimes being used (rather than
- Fixed a bug in the handling of two-dimensional variant
- Added new com.linar.jintegra.Authentication.setDefault()
method, used to set the default authentication to be used when none is
specified when creating a COM component.
- Fixed bug in J-Integra®'s handling of DCOM ComplexPing
calls into J-Integra®'s OXID Resolver from remote systems.
- Added example of the use of J-Integra® from GUI development
environments (IBM's VisualAge) to the documentation.
- Incorporated some of the J-Integra® test-suite into
the kit, as examples of the use of J-Integra®.
- Added support for COM classes implementing multiple
interfaces. The corresponding Java class now implements the interfaces,
and allows their methods to be invoked.
- Better detection of COM servers exiting. J-Integra®
now throws EOFException if an attempt is made to talk to a COM component
that has unexpectedly disappeared.
What's new in J-Integra® Beta 0.06? (Released October 18, 1998)
- Added possibility of specifying the prefix to be
used by com2java in situations where a COM interface name, method, or
parameter name etc clashes with a Java reserved word.
- com2java now generates event adapter classes to make
implementing event interfaces more convenient. It also generates a class
for each method in event interfaces, containing all of the parameters
to that method. The class is then passed as the sole parameter to the
method. This is because the convention for event methods is that there
is a sole parameter. J-Integra® generated classes and interfaces can now
be correctly manipulated in GUI builder tools which analyze classes to
determine properties, methods and events (prior to this release, events
were not recognized because they did not adhere to the convention).
- Added a new method getPropertyByName(String name)
to classes generated by com2java. This method can be used to get a property
at runtime, based on its name. This is used in the excel example Windows
95 code, and obviates the need for the 'always Dispatch' checkbox in the
com2java tool, which was introduced in Beta 0.03.
- Added the Application Server (NetDynamics) example
to the documentation.
- Added the Excel Charting, Outlook and Shell (minimises
all windows, lists local hard drives) examples to the documentation.
What's new in J-Integra® Beta 0.05? (Limited release)
- Fixed problem in com2java tool for cases where interface
A derives from interface B, and B is marked as 'hidden' in the type library.
What's new in J-Integra® Beta 0.04? (Released September 31, 1998)
- Added support for cases where one interface derives
from another, such as the ADO._RecordSet deriving from ADO._ADO
- Fixed problem with passing a reference to a remote
object as a parameter in COM interface method calls.
- Fixed problem with arrays of IUnknowns.
- Added tentative support for 'oleautomation' interfaces
in the 'com2java' tool.
What's new in J-Integra® Beta 0.03? (Released September 24, 1998)
Allowed possibility of only generating Dispatch interfaces to remote components,
in order to work around an apparent Excel bug, which manifests itself
under Windows 95/98, with a message that the Workbook class does not implement
the _Workbook interface.
There is now a "Only Dispatch" checkbox in the com2java
tool. Check this checkbox to only generate Dispatch interfaces. You should
do this if you will be accessing Excel under Windows 95/98. Note that
the rest of the documentation has not been updated to reflect this new
What's new in J-Integra® Beta 0.02? (Released September 20, 1998)
- Support for custom interfaces
The first beta release of J-Integra® accessed all ActiveX Components
through the IDispatch Automation interface. This release invokes methods
directly, through custom interfaces. Note however that such an interface
must be a 'dual' interface, derived from IDispatch.
- Support for outgoing interfaces (events)
If a COM component can generate events (through a 'source' interface),
Java objects can subscribe to the event, by implementing the event interface,
and using the 'addXYZListener()' and the 'removeXYZListener()' methods
that are automatically generated in the Java class corresponding to the
COM Component. Java's security restrictions mean that events can not be
subscribed to from Applets.
- Support for callbacks into Java objects
You can now pass a Java object as a parameter in a method call on a
COM Component. The component can then make calls back into the Java object.
If the component accesses the Java object through the IDispatch interface,
then all public methods (including static methods and inherited methods)
and all public fields are available 'for free'. Alternatively the component
can access the Java object through a COM interface (if the Java object
implements the COM interface). Java's security restrictions mean that
callbacks can not be used from Applets.
- The new com.linar.jintegra.Cleaner.releaseAll()
method can be used to release all references to remote COM objects. It
should generally be used prior to exiting a Java program. As before, remote
references are also released through Java's standard garbage collection
- J-Integra® internal
logging is available by defining JINTEGRA_LOG_LEVEL and optionally
JINTEGRA_LOG_FILE properties. The log level can be set to 1 (errors only),
2 (brief), or 3 (verbose). For example java -DJINTEGRA_LOG_LEVEL=3
myProgram. Please include a log (at the verbose level) when reporting
problems. [If you are interested by such things, you can use the logging
to see Jintegra's internal DCOM engine in operation -- OXID Resolver,
Object Exporter, IConnectionPoints, and all.]
- The number of threads that J-Integra® uses when
handling invocations from remote COM components into Java Objects can
be controlled through the JINTEGRA_MAX_REQUEST_HANDLERS property.
The default is 20. Such threads are started when required.
J-Integra® Beta 0.01 was released on August 18, 1998