Hi,

Earlier on today I spent some time following the instructions for developing Harmony Java code inside Eclipse [1]. After experimenting with archive, luni and nio I decided to check out modules/security and found that, in its current form, it can't be brought into an Eclipse workspace and used like the other modules. One obvious difference is that it doesn't have any Eclipse project metadata in there (e.g. .project and .classpath files). After adding these in (in my private workspace), I began to look at other differences between security and its peer modules in particular the difference in source layouts. Recalling some ideas for layouts that have been kicked around this list, I started to move things around a little to try and make things a little more uniform with respect to those peer modules. Things were made more interesting by virtue of the following security module distinctions :

* it has platform-specific Java code
* it contains native code for both Windows and Linux

Eventually I arrived at a structure that is more attuned to the other modules in the repository. As a bonus, Eclipse pointed out several missing import entries from the META-INF/MANIFEST.MF file - including one that cannot presently be satisfied with what is in the Harmony repository (org.apache.harmony.security.test.SecurityTest wants to import java.util.logging.LoggingPermission which doesn't exist in the repository - although an implementation has been contributed [2]).

In addition to moving source around, I also made the necessary tweaks to the Ant scripts contained in the security module plus the "top level" Java build file trunk/make/build-java.xml so the Ant builds still work as before.

Keeping my fingers crossed that the next bit of this note renders alright in your mail client, here is the modules/security structure that I ended up with (minus all of the package sub-folders for clarity) :

 <SECURITY ROOT>
       |
       |
       +---src
       |   |
       |   +---main
       |   |   |
       |   |   +---java
       |   |   |   |
       |   |   |   +---common
       |   |   |   |
       |   |   |   +---linux.IA32
       |   |   |   |
       |   |   |   \---win.IA32
| | | | | +---native
       |   |   |   |
       |   |   |   +---linux.IA32
       |   |   |   |
       |   |   |   \---win.IA32
       |   |   |
       |   |   \---resources
       |   |       |
       |   |       \---common
| | | +---test
       |       |
       |       +---java
       |           |
       |           +---common
       |           |
       |           +---linux.IA32
       |           |
       |           \---win.IA32
       |
       +---doc
       |   |
       |   \---images
       |
       +---make
       |   |
       |   \---native
       |       |
       |       +---linux
       |       |
       |       \---windows
       |
       +---META-INF


All of the leaf folders under "src" have been declared to Eclipse as source folders (i.e. I have 9 source folders called "src/main/java/common", "src/main/resources/common", "src/main/native/linux.IA32", "src/test/java/common" and so on...).


I would be really keen to hear what people think of this prototype re-structuring. It would be great if we could make the security module as simple to work with inside Eclipse as the other modules are.


Best regards,
George
IBM UK


[1] http://incubator.apache.org/harmony/subcomponents/classlibrary/dev_eclipse.html
[2] http://issues.apache.org/jira/browse/HARMONY-88

Reply via email to