Menu

Released version 1.3.0

Here is JDecisiontableLib 1.3.0.

Main reason for this release are useable facilities for internatinalization (abbr. I18N). This affects only the classes Decisiontable2Table and Testspecification2Table. They got constructors which take custom strings as parameters used as string representations for the objects i.e. "x" for boolean isCondition=true or "" for boolean isCondition=false. The idea behind is that the client application take these strings from property file and provide it via these constructors to JDecisiontableLib.

There are some bad news for people who already use this library but some good news for people who consider using it:
1. I added three new subpackages and moved each class in one of them:
- dt for decision table and parts
- ts for test specification and parts
- io for getting String[][] tables and JSON as well as constructing objects from JSON

  1. Class Toolbox was renamed to Jdtlib2Json. I hope this name tells what this class does.

  2. Two constructors in class Testspecification were made to factory methods. This was necessary to change the scope of three methods from private to default and this was needed to gve those methods own tests.

Test coverage is 99.13% provided by 161 test cases.

The issue with Cobertura is not solved yet but it there is a workaround. It seems to depend on source/target format. Build and test are fine but Cobertura fails with source/target 1.7. So I used it for building and testing. This is what used to get the jar files:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <showDeprecation>true</showDeprecation>
     <source>1.7</source>
     <target>1.7</target>
    </configuration>
</plugin>

The I used source/target 1.5 only the get the test coverage by covertura.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <showDeprecation>true</showDeprecation>
     <source>1.5</source>
     <target>1.5</target>
    </configuration>
</plugin>

The error breaks down to

java.lang.VerifyError: Bad local variable type in method 
de.mgmechanics.jdecisiontablelib.dt.Decisiontable.<init>
(ILjava/util/ArrayList;Z)V at offset 83

Whatever I do with source this message including "offset 83" is the same. If de.mgmechanics.jdecisiontablelib.dt.Decisiontable() was changed, shouldn't "offset 83" also change? This leads me to my theory that Cobertura just can not deal with source/target 1.7. Of course i tried to fix constructor Decisiontable() and cleaned some code as side effect - but the message was always the same. However, the library works fine at JDecisiontable and builds without errors or failures.

Posted by Michael Groß 2013-02-03

Log in to post a comment.