On Jan 20, 2015, at 4:29 PM, Adrian Crum <adrian.c...@sandglass-software.com> 
wrote:

> I suggested a Maven-like folder structure years ago, and there was pushback 
> from Adam. He was concerned that test classes would reside in the same 
> package as the classes being tested - which would expose their implementation.

This is a non problem: even if we split the main and test classes using the 
src/main and src/test folders we are still free to place them in the packages 
we like.

> 
> The classpath under the script folder is not necessary. That was used before 
> we had FlexibleLocation and the "component://" URL feature. So, instead of 
> your suggestion we could do:
> 
> script/groovy/FooScript_1.groovy
> script/groovy/FooScript_2.groovy
> script/minilang/BarScript_1.xml
> script/minilang/BarScript_2.xml
> script/js/BazScript_1.js

+1 on the idea of getting rid of the "classpaths" for Minilang as a general 
direction; I still think they should go under src/minilang but at this point 
this is just a matter of personal taste.
As regards Groovy, with it you can implement classes and not just scripts and 
having the ability to define the packages will be very useful especially when 
we will have more services implemented in Groovy.
Again, I think they should go into src/main/groovy or src/test/groovy.

> 
> (Yes, the Service Engine supports JavaScript.)
> 
> To use FooScript_1.groovy you can use two methods:
> 
> 1. The  "component://" URL feature:
> 
> component://mycomponent/script/groovy/FooScript_1.groovy
> 
> 2. The classpath:
> 
> groovy/FooScript_1.groovy
> 
> Option 2 could have problems with name clash, so I have always preferred 
> option 1.
> 
> While we are having this discussion, we could also consider changing the 
> package naming from
> 
> org.ofbiz.*
> 
> to
> 
> org.apache.ofbiz.*

+1!!!

Jacopo

> 
> 
> Adrian Crum
> Sandglass Software
> www.sandglass-software.com
> 
> On 1/20/2015 3:41 AM, Jacopo Cappellato wrote:
>> In my opinion it would be nice to review how we organize the code in our 
>> components and switch to a directory layout that is more inline with what 
>> other projects are doing, for example:
>> 
>> http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
>> 
>> More specifically I would like to switch from, for example:
>> 
>> script/org/ofbiz/product/
>> src/org/ofbiz/product/
>> src/org/ofbiz/product/test/
>> 
>> to:
>> 
>> src/main/java/org/ofbiz/product/
>> src/main/minilang/org/ofbiz/product/
>> src/main/groovy/...
>> src/test/java/org/ofbiz/product/
>> 
>> What do you think?
>> 
>> Jacopo
>> 

Reply via email to