Change Log for jSegue

Robert Hastings2004/04/29 Include version number in distro .zip filename.
Robert Hastings2004/04/30 Updated documentation to show how to invoke from ant.
Robert Hastings2004/05/04 Build the files from the CVS/Entries file
Robert Hastings2004/05/04 Add a constructor that takes the template as a string.
Robert Hastings2004/05/04 Added description to java-compile
Robert Hastings2004/05/04 Only delete the com_server directory
Robert Hastings2004/05/05 .NET compilation support
Robert Hastings2004/05/05 Removed class AllTests to avoid having eclipse run some tests twice.
Robert Hastings2004/05/05 Automate tester dialog testing.
Robert Hastings2004/05/12 Added java-doc and dist targets.
Karl Schricker2004/05/12 Grammar fix in Intro.html.
Adam Perry-Pelletier2004/05/14 Created methods to allow for creation of weak global refs.
Robert Hastings2004/05/14 Renamed IRMIFL to com::moesol::bindings
Switched to using jni_env * everywhere instead of jni_env &
Robert Hastings2004/05/18 Get h-gen nested class support changes
Robert Hastings2004/05/18 Added test for inner classes.
Robert Hastings2004/05/18 tlb-gen depends on cpp-compile
Added target to do junit tests and produce html output.
Described rebuild target
Robert Hastings2004/05/18 Notes about building with VC++ .NET (2003)
Robert Hastings2004/05/18 Added test for inner classes.
Robert Hastings2004/05/18 h-gen nested class support.
Robert Hastings2004/05/18 Restored the mangling to handle inner classes.
Robert Hastings2004/05/18 Documentation updates
Robert Hastings2004/05/18 Generate junit html pages
Robert Hastings2004/05/19 Never output CR.
Robert Hastings2004/05/21 added target to push out html
Robert Hastings2004/05/21 Generate stdole2 typelib which is needed by Excel and probably others.
Adam Perry-Pelletier2004/05/24 Reworked jSegue so that COM objects are generated as interfaces that contain a Jni implementation embedded in the interface on the java side. This has the effect of allowing java objects to inherit from multiple COM interfaces. The change ripples thoughout the system on both the java and C++ side. tlb2java now properly translates tlbs and generates the support of the respective interfaces inner Jni implementation.
Robert Hastings2004/05/25 Removed tutorial from toplevel eclipse build.
Robert Hastings2004/05/25 Only report the loading of a library once.
Robert Hastings2004/05/25 Added clsctx constructor to coclass'es
Robert Hastings2004/05/25 Fixed disp only handling of some types: jni_VARIANT, jni_BSTR, and jni_DATE.
Robert Hastings2004/05/25 Don't use ITypeInfo2 because Excel typelib does not support it.
Fixed bug, interfaces have nested Jni class, but coclass'es do not.
Fixed compile problem for Excel. VC++ 6.0 can't handle fully qualified name in base class decl correctly.
Added clsctx constructor to coclass'es
output comments for missing disp only properties.
Fixed bug, correctly extra the value from an in pointer.
Fixed bug, disp only properties need Get/Set prefix to match #import
Property names that collide with the class name get an '_' prefixed by #import.
Added flags: -hide_hidden and -hide_restricted.
Robert Hastings2004/05/25 Fixes for Excel.
Robert Hastings2004/05/25 Test get/set of property that is an interface (IUnknown and IDual).
Test optional variant.
Added _DispOnly testing
Robert Hastings2004/05/25 Don't generate aN = pN[0] for void *.
Robert Hastings2004/05/25 build-doc depends on junit

added tlb2java generation for stdole2

renamed microsoft_dao to microsoft/dao

Added the Stress test to the junit run.

moved output documentation to dist/doc
moved junit output to dist/doc/junit.
moved javadoc output to dist/doc/javadoc

Added target to push docs to public web server.
Robert Hastings2004/05/26 Updated apartment.html to describe how to deal with COM Apartment Threading issues.
Robert Hastings2004/05/26 Added docs for -hide options
Robert Hastings2004/05/27 More updates to the javadoc generation
Robert Hastings2004/05/27 Compile under VC++ 6.0 sp6
Robert Hastings2004/05/27 Generate javadoc comments that pull useful information from the type library.
For the interfaces, generate the original parameter names to better convey the original meaning of the interface methods
Robert Hastings2004/05/27 Allow resize of index.html frames.
Robert Hastings2004/05/28 Updated rules for getting docs up on Now we use batch mode so we don't hange on wrong user id.
Adam Perry-Pelletier2004/06/01 Implemented support for COM Connection Points.
Adam Perry-Pelletier2004/06/01 Tlb2Java now supports the idea of adding an event listener from the java side.
Robert Hastings2004/06/01 Fixed missing AddRef.
Robert Hastings2004/06/01 Added ~CDual for a breakpoint hook
Robert Hastings2004/06/01 Added test code to add a listener and fire the event
Adam Perry-Pelletier2004/06/01 Test code for adding listeners.
Robert Hastings2004/06/02 Catchup to .net projects
Robert Hastings2004/06/02 Added OnEventWithLong
Robert Hastings2004/06/02 Got more event parameter types working: 2 longs, BOOL,BSTR,DOUBLE working too.
Robert Hastings2004/06/02 Moved jcom.cpp to match its package
Robert Hastings2004/06/03 Got more event parameter types working: All now except: VT_VARIANT, VT_ARRAY, VT_DECIMAL, VT_EMPTY, VT_NULL, and VT_BYREF
Adam Perry-Pelletier2004/06/03 Added the remove<SomeComEvent>Listener to the generation pass of coclasses.
Robert Hastings2004/06/03 Skip restricted methods
Adam Perry-Pelletier2004/06/03 The cookie to listener table that gets build up when client code adds a listener to a coclass now gets properly cleared as clients remove those same listeners.
Robert Hastings2004/06/03 Got more event parameter types working: BSTR, IExtraDual
Robert Hastings2004/06/03 Refactored the tests somewhat
Robert Hastings2004/06/03 Fix warning in generated code.
Adam Perry-Pelletier2004/06/04 Through the java class COM, client code can now query how many C++ instance of GenericSink have been created. This is mostly for debugging in JUnit tests, but was essential for finding a leak that would have been troubling in runtime system.
Adam Perry-Pelletier2004/06/04 The co_class can now report how many listeners are attached to it though its own add<>Listener methods. This may differ from the total count of GenericSinks added on the native side.
Robert Hastings2004/06/05 fixed 'B'/jbyte/VT_I1/CHAR
Adam Perry-Pelletier2004/06/07 Provided counting for event interfaces so if none are encountered, the generation will not provide any registration declarations.
Robert Hastings2004/06/07 Added delete(env, local_ref) operator.
Robert Hastings2004/06/07 VARIANT ref support.
Robert Hastings2004/06/07 VARIANT ref test.
Robert Hastings2004/06/07 Fleshed out the reference handling. Unit test for all VARIANT types except VT_DECIMAL|VT_BYREF, VT_NULL, VT_DISPATCH | VT_BYREF, VT_UNKNOWN | VT_BYREF, and VT_ARRAY
Robert Hastings2004/06/07 Refactored outDeReferenceValue.
Fixed args to get_array_element to match j.h changes.
Robert Hastings2004/06/07 swapped order of jbyte/jchar
Added an jni_traits<>::access_jvalue that returns a reference to the proper jvalue union element.
Added signature_jni_type_facet that computes the jni_type from the signature letter.
Robert Hastings2004/06/07 Use newly added delete(env, local_ref) operator.
Robert Hastings2004/06/07 Reworked safearray conversions to use java_array<>.
Robert Hastings2004/06/07 More debug tests for VC6.
Robert Hastings2004/06/07 VARIANT ref test.
Also hand modifications to DTestServerEvents_CP to compile under VC6.
Robert Hastings2004/06/07 Better coverage of all jni_traits with compile time verification that the specializations are complete.

Removed primitive_holder, jarray_holder, jni_env::attach_holder, and jni_jni_env::release_holder (use primitive_array_critical or java_array<> instead).

Reworked JArray<> as java_array<>. Operator new is supported for java_array<> just like for h-gen classes.

Cleaned up set_array_element / get_array_element to use new jni_{primitive|object}_array_facet. The specializations worked fine under VC7 but VC6 was giving ambiguous call errors.

Removed jni_env::new_primitive_array and jni_env::new_object_array. Added new_array to replaces these.
Robert Hastings2004/06/08 VC6 had a bug when I mixed switch statements and template functions. Workaround was create a lookup array.
Robert Hastings2004/06/09 Fixed bug with passing interfaces by reference.
Re-ordered some of the cases.
Robert Hastings2004/06/09 Fixed passing interfaces by reference.
Extended jni_VARIANT to support fromObject conversions and detach.
Made all copy ctor's and assignment operators private.
Extended jni_SAFEARRAY to support detach.
Added vartype_traits for almost all VT_<X> types.
Robert Hastings2004/06/09 Print right value for (VT_I8) LONGLONG
Re-ordered some of the cases
Adam Perry-Pelletier2004/06/09 JUnit test work for tlb2java. This tests the setting and for variables of varying types and accessing all types of in/out/retval var types in the IDL.
Robert Hastings2004/06/09 assert new_array<jobjectArray> has non-null element_class
Added java_array<jstring>
Robert Hastings2004/06/09 Fixed passing interfaces by reference.
Extended jni_VARIANT to support fromObject conversions and detach.
Made all copy ctor's and assignment operators private.
Extended jni_SAFEARRAY to support detach.
Added vartype_traits for almost all VT_<X> types.

Major refactoring, table drive conversions, more supported types for SAFEARRAY conversions, code sharing for many conversions.
Robert Hastings2004/06/10 Added support for SAFEARRAY(USHORT).
Robert Hastings2004/06/10 Fixed problems with retval's messing up optional argument counting.
Robert Hastings2004/06/10 Added CallWithThreeOptionals to test calling methods with multiple [optional] VARIANTs.
Robert Hastings2004/06/10 Need vector now for mapping tables.
Robert Hastings2004/06/10 More tests for SAFEARRAYs
Test for interface by reference.
Robert Hastings2004/06/10 Updated to reflect recent changes.
Adam Perry-Pelletier2004/06/10 Created a COMProperty template that facilitates the usage of com properties accrose the JNI boundary.
Adam Perry-Pelletier2004/06/10 Augmented COMProperty to handle some more complex types and reference types.
Robert Hastings2004/06/10 Fixed up USHORT testing to match fix (old had USHORT as int, new has USHORT as java's char, at 16 bit unsigned quanity).
More tests for SAFEARRAYs
Robert Hastings2004/06/10 Refactored: extracted hasRetval method.
Robert Hastings2004/06/10 Remove IsByRef, use V_ISBYREF instead.
Fixed bug, can't use auto_ptr in STL collection.
Implemented ConvertArrayArg
Robert Hastings2004/06/10 Generate overloaded methods for missing [optiona] parmeters
Robert Hastings2004/06/10 Added java.lang.Character to the h-gen list to support USHORT
Robert Hastings2004/06/10 Fixed up USHORT testing to match fix (old had USHORT as int, new has USHORT as java's char, at 16 bit unsigned quanity).
Robert Hastings2004/06/10 Test the CallWithOptional override that takes zero args
Robert Hastings2004/06/10 Fixed release build. removed _ATL_MIN_CRT
Robert Hastings2004/06/11 Fleshed out the handling of SAFEARRAY(TYPE)
Robert Hastings2004/06/11 Fleshed out jni_VARIANT::fromObject to handle more VARTYPEs
Robert Hastings2004/06/11 Reworded jSegue Type to Java Type
Robert Hastings2004/06/11 Added ClassCastException.
Robert Hastings2004/06/11 Fixed is_instance_of for null.
Made java_cast throw ClassCastException
Fixed java_cast for null.
Robert Hastings2004/06/11 Moved DISP_P_PARAMNOTFOUND from VARIANT to HRESULT.
Extended Java notion of VARIANT to include all primitive types. Uses NativeStructure support.
Robert Hastings2004/06/11 Check array access and make sure that the underlying java array type matches the C++ wrapper class we are using.
Robert Hastings2004/06/11 Fixed "[C" - "[I" mismatch for VT_UI2
Robert Hastings2004/06/11 Workaround VC6 header files that do not include support for VT_I8.
Robert Hastings2004/06/11 Swapped index/compress to be consistent with other projects
Robert Hastings2004/06/11 Added support for long, and double types.
Robert Hastings2004/06/11 Fleshed out it little more to handled VARIANT. In this case we want to access the low-level structure via a java type with the same size. But, we need to return a larger java type to match tlb2java.
Robert Hastings2004/06/11 Workaround differences between ATL in VC6 and VC7.
A null BSTR is returned as null.
Adam Perry-Pelletier2004/06/11 Wrote tests for VARIANT and DATE. Wrote VARIANT support into COMProperty.
Robert Hastings2004/06/11 Fixed multiple array args.
Robert Hastings2004/06/11 Moved DISP_P_PARAMNOTFOUND from VARIANT to HRESULT.
Adam Perry-Pelletier2004/06/14 Added test to ensure coclass as [out] param works.
Adam Perry-Pelletier2004/06/14 Added the capability to have a coclass as a property on an interface.
Robert Hastings2004/06/16 Fixed special case handling for SAFEARRAYs. [in] was right, [out] was right but [in, out] was handled like [in] instead of like [out].
Robert Hastings2004/06/16 Removed IUnknown.getIID. This makes it easier to implement an interface in Java when you want to use it to listen for events. We are still considering how to deal with QueryInterface (both forms) and Release. For now these can be empty implementations. On idea is to generate yet another Java interface for listeners. So for IFooEvents we could generate IFooEventsListener. IFooEventsListener would not require you to implement QueryInterface or Release. We are also considering using QueryInterface and Release as apart of a reverse bridge allowing Java objects to act as COM objects.
Robert Hastings2004/06/16 SAFEARRAY support.
Fixed up return values for VARIANTs
Reduced some specializations
Robert Hastings2004/06/16 Added support for DECIMAL type.
Robert Hastings2004/06/16 Eliminate duplicate forward declarations.
Robert Hastings2004/06/16 Cleaned up SAFEARRAY handling for [out] params.
Robert Hastings2004/06/16 Added support for DECIMAL type.
Robert Hastings2004/06/16 Added support for DECIMAL types.
Robert Hastings2004/06/16 Consolidated call_method and call_static_method for all array types into jni_traits<jobject>

Updated run-time checks so that a NullPointerException is thrown anytime a jobject or jclass is null unexpectedly. These checks are wrapped in the _CHECK_NULL(X) macro and can be turned off be defining _SKIP_NULL_CHECKS at compile time.
Robert Hastings2004/06/16 Removed dead code.