Hello all

Some answers to the IRC meeting:

Jody Garnett a écrit :
>       jgarnett        problem is I do not recognize everything - like 
> main/modified-src - what is that for?

As answered in a previous email a few hour ago, it is (or was?) for javacc. The 
javacc compiler 
creates automatically a set of Java files, to be put in the 
target/generated-sources directory 
before being compiled like any other java sources as part of "mvn install". The 
"modified-src" 
directory contains Java source that should replace the source automatically 
generated by javacc.

The javacc thing was setup by James, but I ported it from Maven 1 to Maven 2. I 
really don't know if 
it still used however. The generated classes lives in the 
org/geotools/filter/parser package.

Do we have a new filter parser engine in Geotools? If yes, then I assume that 
the javacc stuff can 
be removed. In such case, I can volunter for removing the javacc stuff from the 
Maven 2 build.


>       aaime   Martin does not keep us very up to date :-(
>       aaime   He's not only merging, also refactoring a lot

This is true that I'm doing a lot of refactoring in the process. But I'm 
leaving the original name 
space untouched. I mean, I do not modify 
ImageUtilities.addTransparency2IndexColorModel for example. 
I create a new method in a new class (namely ImageWorker), and bring it for 
consideration as a 
replacement. With the refactoring, I try to avoid some hard-coded constants 
(e.g. the transparent 
pixel value hard-coded to 255), avoid the requirement for a PlanarImage where a 
RenderedImage 
interface would suffice, try to separate some concerns when a method does two 
things or more that 
could have been separated in some logical steps (e.g. factor a "mask" method 
out of 
"addTransparency2IndexColorModel"), avoid the overhead of creating a RenderedOp 
(by wrapping a 
RenderedImage into a "Null" operation) when the user only wants a 
RenderedImage, avoid some apparent 
dupplication (e.g. "direct2ComponentColorModel" and 
"reformatColorModel2ComponentColorModel" seem 
quite similar) etc.

I commited today the ImageUtilities methods from the coverage branch to the 
trunk, so Andrea and 
Simone will be able to run their code unchanged. For every methods, I added the 
proposed replacement 
in a disabled block. For example the "rescale2Byte" methods is as below:

         if (PROPOSED_REPLACEMENT) {
             ImageWorker w = new ImageWorker(surrogateImage);
             w.rescaleToBytes();
             return w.getPlanarImage();
         }
         // The coverage branch code, unchanged.

Because PROPOSED_REPLACEMENT is a private static final boolean initialized to 
'false', the proposed 
replacement is trimed by javac and the compiled code should be identical to the 
coverage branch 
code. In some later stage, Andrea or Simone can turn the "if 
(PROPOSED_REPLACEMENT)" statement into 
"if (true)" statement once at time and test if it work as expected. They can do 
that at whatever 
time is nice for them - in the main time, the coverage branch code is there, so 
their applications 
should be unaffected.


>       jgarnett        I would also really like it if we were able to proceed 
> on the OSGEO iccubation process

What is missing?

 From the referencing module point of view, I think the IP is okay (since we 
got Frank authorization 
to distribute the Proj4 derived code under LGPL). I need to update the headers 
however.

For the coverage module, I believe that the IP is okay as well.


>       simboss martin is meging on trunk directly
>       simboss so would anybody get mad at me
>       simboss if i start meging the plugins
>       simboss to test what I have to change
>       simboss as a consequence of his refactor
>       simboss ?
>       simboss this might imply
>       simboss having broken builds on some plugins-modules
>       aaime   I see... maybe you can remove those modules from the build?
>       aaime   It' just a matter of modifying the parent's pom.xml

Temporary removal of module from the parent pom.xml seems fine to me.

Is the following approach acceptable for futur development?

Incremental work done more often on trunk (a little bit less branch). We would 
create a branch when 
a deep refactoring is in progress, but if the changes can be done incrementaly 
without breaking "mvn 
install". I would like to see such work more often on the trunk. I suggest that 
we "only" insist for 
the following rules:

* "mvn install" should always work (by commenting-out some modules
   from the parent pom.xml if needed).

* ALL new public/protected class/field/method must have a "@since 2.3" javadoc 
tag
   (or "@since 2.4" after the 2.3 release, etc.).

* All classes/fields/methods with a "@since 2.3" javadoc tag can be modified, 
renamed,
   moved or deleted in an incompatible way as long as 2.3 has not be been 
released. Geotools
   developpers working with trunk are warned that they should avoid all methods 
with such
   javadoc tag, or use them at their own risks.

* All public or protected classes/fields/methods with "@since 2.2", "@since 
2.1" or
   "@since 2.0" javadoc tags are not allowed to be deleted or modified in an 
incompatible
   way (unless the method was obviously broken). They can only be deprecated 
for the 2.3
   release, and deleted in a post 2.3 release.


If the above rules are respected, I would be happy to work with a more 
"unstable" trunk. Would it be 
an acceptable approach?


        Regards,

                Martin.

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to