Release History

1.1.1 2006-11-15 A micro bug fixes
1.1.0 2006-08-28 The second stable version 1.1.0
1.0.0 2006-05-30 The first production/stable version 1.0
0.9.0 2006-04-24 New Crispy Minor version.
0.8.0 2006-03-13 New Crispy Minor version.
0.7.0 2006-01-16 New Crispy Minor version.
0.6.2 2005-11-28 New Crispy Micro version.
0.6.1 2005-10-18 New Crispy Micro version (bug fixes released).
0.6.0 2005-09-19 New Crispy Minor version with new samples and extensions.
0.5.0 2005-08-22 New Crispy Minor version.
0.4.0 2005-07-19 New Crispy Minor version.
0.3.3 2005-07-11 First Version with a practical example, to validate Crispy.

Get the RSS feed of the last changes

Release 1.1.1 - 2006-11-15

fix By Getter/Setter-method from type java.lang.Object is losing the original type. Example: A Class with propery: setResult (Object value) List l = new ArrayList(); l.add("value"); myClass.setResult(l); After the Converter makeSimple and than makeComplex ist the type different from List (he is in this case HashSet). (Bug: 1595756). lm
fix By execution a method with the DynamicProxy and a java.lang.Error is thrown, than get a ClassCastException. (Bug: 1595758). lm

Release 1.1.0 - 2006-08-28

add Business-Exception can wrapp validation-errors. The business/service method have one return value. If in the method are validation errors, then you can't send this errors from the server to the client. The plan is to use a Business-/ServiceException with setter/getter methods for errors (e.g set/get ValidationErrors as java.util.List, or so on). See a example on the homepage: Documentation/Importend Hints. (Feature Requests 1541327). lm
add For more performance, make the InvocationHandler stateless and can remove synchronized by method invoke (Feature Requests 1533022). lm
add Support for server side InterceptorHandler. Only supported from: RMI and Http invoker. (This experimental.) (Feature Request: 1517937). lm
add Send Exception from Server to the Clie nt. If the server is thrown a Exception (business exception too) then wrap the Exception and send the exception to the client. If the client know this exception, than throw it, else throw a InvocationException with the message from the server side exception. Only supported from: Http invoker, RMI, local calls, Burlap, Hessian, XML-RPC. (This experimental.) (Feature Request: 1513811). lm
add A Character Serializer for JAX-RPC to transport Character objects and primitive char. (Feature Request: 1499512). lm
add Extend the VectorTypeMappingFactory to flexible use all kinds of Collection or List. (Feature Request: 1542570). lm
add Integration from FindBugs (in maven) for better quality. (Feature Request: 1541984). lm
fix Objects mit properties from type java.util.Properties can't convert with Converter.makeComplex. (Bug: 1541807). lm
fix By XML-RPC can only java.util.Map with keys from type java.lang.String transported (see: (Bug: 1538667). lm
fix How bug Bug: 1536427. In a array, where added twice or more the same object, than is by the makeSimple method added one object and for the other object added the reference to this object. By the makeComplex are lost the references and the objects are null. (Bug: 1537833). lm
fix If same objects are in a Map under different keys, than is one object in the map and the other objects are to reference (e.g. ~hashCode~28637909). The method makeComplex has a bad order to create the objects. The reference is read before the object is known. The result is a NullPointerException. (Bug: 1536427). lm
fix Orthography bug: Invokation - Invocation: by InterceptorHandler, RmiInvokationHandler, MiniRmiServer, RmiExecutor, RmiInvokationHandlerTestImpl, build.xml (Bug: 1528188). lm
fix Asynchronous calls are not synchronized. By JaxRpcExecuter are problems by switch from asynchronous to synchronous calls. (Bug: 1527923). lm
fix NullPointerException in SimpleNameInterceptorFilter, if filter is activate for classes (FILTER_TYPE_CLASS) and a Exception is thrown, than is the current class equals null. (Bug: 1519771). lm
fix Global Debug-Mode is overwriting from Properties. (Bug: 1512422). lm
fix Class with two Collection and initial with empty Collection. After convert from complex to simple and back, one Collection is null. This Problem is by Collection and Map implementations. (Bug: 1509747). lm
fix Converter.isValidEdge is missing the check of java.util.Date Converter.isValidEdge is missing the check of java.util.Date: If a Object with two getter method from type java.util.Date with the same value, ones of this values is after the remote call NULL (after convert transfer objects). (Bug: 1509295). lm
fix Different classes, where the object have the same hashCode. Two objects (transfer objects) have the same hashCode. A third object from a different class have also the same hashCode. The Converter not detect th is problem. By Converter.makeComplex you get a InvocationTargetException. (Bug: 1508870). lm
fix In Converter.makeComplex by Array Args with Maps in Array. (Bug: 1505994). lm
fix Minor bugs in the documentation. (Bug: 1544524). lm

Release 1.0.0 - 2006-05-30

add Asynchronous communication. Remote invocation are asynchronous. The caller must don't wait of the end of the invocation. (Feature Request: 1481779). lm
add Replace commons-logging 1.0.4 with version 1.1. (Feature Request: 1488864). lm
add Replace commons-httpclient 3.0 with version 3.0.1. (Feature Request: 1488870). lm
add Replace Axis 1.2.1 with version 1.4 (Feature Request: 1496761). lm
add Properties for the ServiceManager must by Strings (Key and Value). If not, then get a Exception with the error message. (Feature Request: 1489506). lm
fix The method invoke is implemented in DynamicJdkProxy and in CommonsProxyFactory. The method must be pull up to DynamicProxy. (Bug: 1476799). lm
fix By setter-method with datatype java.util.Date and set a java.sql.Timestamp value, than can't the Converter convert right this value. With ServiceManager.DEBUG_MODE_ON = true, you can see the thrown Exception. Otherwise is the date value NULL. (Bug: 1488645). lm
fix The Method JaxRpcExecutor.getDefaultUrlAndPort get always null. The right value is: JaxRpcExecutor.DEFAULT_URL_AND_PORT. (Bug: 1489460). lm
fix MiniCorbaServer must twice call the start-method. Bad order by start the ORBD and the ORB. (Bug: 1490907). lm
fix Invoker.invoke can't invoke method from private classes. This is a problem e.g. by inner classes. (Bug: 1497034). lm
update Clean internal structures. lm

Release 0.9.0 - 2006-04-24

add Not supported null values: If the transporter not supported null values (XML-RPC for example) than can substitute the null value with the Property.NULL_VALUE. (Feature Request: 1455311). lm
add Implementation of a new Crispy supported transport provider - CORBA implementation. (Feature Request: 1412215). lm
add Compare Setter- and Getter-Method by transfer-objects: For every Getter-Method must exist a Setter-Method. Otherwise are lost Data from Getter-Method, because no Setter-Method can't invoke. (Feature Request: 1457675). lm
fix Can't create object, if constructor must get a parameter. For example: java.lang.Long -> constructors: Long(long value) or Long(String s). This bug occur in net.sf.crispy.impl.http.HttpServlet and (Bug: 1455198). lm
fix The NullPointerException in Invoker.findMethod is, if one parameter value is null. (Bug: 1455878). lm
fix NullPointerException in JaxRpcExecutor if parameter is null. (Bug: 1456726). lm
fix If getter-method without setter-method exist, then are transported data without benefit. (Bug: 1459261). lm
fix If the transport value has a property with the length 0. The getter-method has no name (the name is only get) than throw the Converter a IndexOutOfBoundsException. (Bug: 1466331). lm
update Change RMI port from 1099 to 1098. With port 1099 is a conflict with the CORBA implementation. lm

Release 0.8.0 - 2006-03-13

add Filter for Interceptor ( net.sf.crispy.InterceptorFilter ). Interceptors can enabled/disabled with a Interceptor-Filter (Feature Request: 1421202). lm
add Set InvocationStrategy for a StaticProxy, to control eg.: the URL or lookup names, how by the DynamicProxy (Feature Request: 1407977). lm
add Test from thrown server side Exception: If on the server side a Exception thrown, than must send this Exception to the client. The client must of the Exception respond. (Feature Request: 1426254). lm
add New Crispy supported transport provider: Http-Serializer. This is for a pure Java to Java communicat ion. The transport protocol is http and the marshalling/unmarshalling is with the interface. The interface is not duty. With the net.sf.crispy.util.Converter can do everey Object serializable. This transport is by large transfer data high-performance. (Feature Request: 1442932). lm
fix Lost Interceptor: After the first call, of the ServiceManager method createService, the second service haven't the Interceptors. (Bug: 1421204). lm
fix After two calls from the createService - method, the ServiceManager get by the second call the same object. Every call from the createService - method must get a new Object. (Bug: 1425865). lm
fix net.sf.crispy.util.Converter - private method getUniqueId. The method getUniqueId get not always a unique id. Problems are classes that has overwrite the hashCode method. (Bug: 1439704). lm
fix Bad Error-Message bei new Instance in Converter-Class. In net.sf.crispy.util.Converter in the methode makeComplex. If a parameter object don't have constructor without parameter (clazz.newInstance()), then come a bad to understand error-message. (Bug: 1435281). lm
fix Better performance for Converter: The net.sf.crispy.util.Converter method makeSimple and makeComplex are to expensive by much transfer objects or great object graphs. (Improvement: 1441022). lm
fix The method makeComplexInternal has a problem by call setter method with assign from datatypes. For example: setter method expected a Set and the method get a Vector. (Bug: 1441713). lm

Release 0.7.0 - 2006-01-16

add Integrated Code Coverage by Clover for a better quality of the project. Find not tested sources from Crispy (Feature Request: 1376519). lm
add Crispy Extensions: A proposal for how can AOP and Crispy work together AspectJ (Feature Request: 1376520). lm
update Move compatibility kit from package net.sf.crispy.util.compatibility to test.crispy.compatibility . lm
update The method invocation is interruptable, with the flag InterceptorContext.setInterruptIncocation(true) . This is helpful by a client side security or by a client cache, where the remote methode don't execute. With the method InterceptorContext.setResult(value) can set the return value, without execute method (Feature Request: 1393621). lm
add New german Crispy article in the JavaSpektrum . lm
update Change XML-RPC from version 2.0 to version 2.0.1 (Feature Request: 1395795). lm
update Change commons-httpclient from version 2.0.2 to version 3.0 (Feature Request: 1395795). lm
update By use of the StaticProxy implementation (eg. StaticHessianProxy ) and to use a Interceptor (eg. StopWatchInterceptor ), to intercept th e method execution, you musted add DynamicProxy implementation. From now on, Crispy add autonomus the DynamicJdkProxy (Feature Request: 1403646). lm

Release 0.6.2 - 2005-11-28

update Crispy replace your own Proxy with Jakarta Commons Proxy. The configuration must replace the property Property.DYNAMIC_PROXY_CLASS from net.sf.crispy.impl.DynamicJdkProxy to Property.VALUE_FOR_JDK_DYNAMIC_PROXY and from net.sf.crispy.impl.DynamicCglibProxy to Property.VALUE_FOR_CGLIB_DYNAMIC_PROXY . lm
add Crispy Extensions: Integration for the PicoContainer . lm
add Crispy Extensions: Integration for the OSGi . lm
update Clean the main Crispy classes from the test services. Before you can use the test services with the MiniServer you must add the services with the addService(String serviceInterfaceName, String serviceImplName) . lm

Release 0.6.1 - 2005-10-18

add Crispy - Comic part two. lm
add Properties can load fr om file system with net.sf.crispy.PropertiesLoader (e.g. ClassPathPropertiesLoader, FilePropertiesLoader or UrlPropertiesLoader) . lm
update The net.sf.crispy.util.Converter has a improved cycle detection function for the parameter object graph. lm
update Bug fixes. lm
update Many new tests (size is over 250). lm

Release 0.6.0 - 2005-09-19

add Crispy has a Comic. lm
add New Example: Thesaurus lexicon (University of Leipzig, Germany). lm
add Crispy Extensions: Integration for the SpringFramework . lm
add Crispy Extensions: Integration for the HiveMind Framework . lm
add NullpointerException in net.sf.crispy.impl.JaxRpcExecutor. lm
update Minor bug fixes. lm
update Many new tests. lm
update More documentation. lm
add FAQs. lm
add Create a server simulation for local Java object calls: net.sf.cri spy.impl.local.MiniLocalObjectServer lm

Release 0.5.0 - 2005-08-22

add REST (REpresentational State Transfer), a pure Crispy implementation. lm
update Many new tests. lm
update Method net.sf.crispy.util.Converter.makeSimple find cycles in object graph. lm
add More documentation and the first article (in German) . lm
add More samples, to make the first steps with Crispy easy. lm
add A Servlet for the XML-RPC implementation ( net.sf.crispy.impl.xmlrpc.XmlRpcHttpServlet ). lm

Release 0.4.0 - 2005-07-19

add JBoss Remoting implementation for Crispy. Fixes 1237528. lm
update From net.sf.crispy.Executor the method setInvocationString(String) change to setInvocationStrategy (Object) . lm
update Change to CGlib-Version 2.1_2 . lm
update Change to XML-RPC-Version 2.0 . lm
add Many new tests. lm
add More documentation. lm
add PMD scans Crispy Java source code and looks for potential problems. lm

Release 0.3.3 - 2005-07-11

add Many new tests. lm
add New static proxy for burlap and hessian (caucho) implementation. lm
add Extends documentation. lm
add The first sample with the issue tracking system JIRA, to validate the Crispy framework. lm