On Jan 21, 2015, at 3:56 PM, Adrian Crum <adrian.c...@sandglass-software.com> wrote:
> I don't like the idea of mixing scripts with Java source code. I understand > it makes sense from the perspective that scripts and Java are both "source > code", but the nice thing about keeping the Java source separate is it can be > removed during deployment - reducing the project's footprint on the target > server. You could do the same by removing the src/main/java folders and by keeping the src/main/minilang/ ones. Jacopo > > Adrian Crum > Sandglass Software > www.sandglass-software.com > > On 1/21/2015 12:36 AM, Jacopo Cappellato wrote: >> >> 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 >>>> >>