[ 
https://issues.apache.org/jira/browse/RAVE-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13107740#comment-13107740
 ] 

Ate Douma commented on RAVE-171:
--------------------------------

I went ahead and made a local fork of the rave project to prototype and test 
the proposed reorganization.
All in all it went pretty smoothly and I've got everything working again as 
before (note though: I did *not* pick up adjusting the sandbox projects, those 
*will* need fixing after this is done).

I did (had to) a few extra changes like splitting up the Spring 
applicationContext configurations and move them in properly namespaced 
classpath resources, like /org/apache/rave/core-ApplicationContext.xml.

Another thing to note is, that with the current implementation the 
rave-portal-web has a compile time dependency on rave-opensocial (provider) as 
its currently directly used from PageController (!).
A consequence of this is that the rave-providers:pom with submodules 
rave-opensocial and rave-w3c will have to be submodules of rave-components 
themselves, they cannot be separated out because neither side would build 
(rave-providers themselves depend on rave-commons & rave-core).

And I didn't (yet) know how to "split off" a rave-security component. It really 
depends how we want to partition that functionality, so I leave that out for 
now. Once the new structure is in place, it should become much more obvious 
if/how this might be done thereafter.

So, as a result I now have the following modules under new rave-components:pom:

rave-components:pom
 -- rave-common:jar
 -- rave-core:jar
 -- rave-providers:pom
    -- rave-opensocial:jar
    -- rave-w3c:jar
 -- rave-portal-web:jar
 -- rave-portal-resources:war
 -- rave-portal-dependencies:pom
  
And the rave-portal module remaining contents are only its pom.xml and the 
folders: main/dist, main/assembly, main/appended-resources and test/selenium 

I'm inclined to go ahead and "replay" my changes on trunk if there are no 
further objections.
Please note that this will take me an hour or so, during which its probably 
best not to have outstanding changes (or do intermediate commits) while the 
project structure is changing under your feet...

I'll hold off until I get at least a few (>1) +1 on this. And if/when I start, 
I'll send a heads-up on the list first to please hold back intermediate commits 
until I'm done.

> Reorganize project to support better extension
> ----------------------------------------------
>
>                 Key: RAVE-171
>                 URL: https://issues.apache.org/jira/browse/RAVE-171
>             Project: Rave
>          Issue Type: Sub-task
>            Reporter: Marlon Pierce
>             Fix For: 0.4-INCUBATING
>
>
> Extension codes not in rave-portal src tree will need to be able to compile 
> against that code.  This can be done by modifying rave-portal/pom.xml so that 
> it makes both a war and a jar and installs both in the local repository. The 
> extension code should then have the appropriate dependency in its pom.xml
> Re-organize rave project in the following manner to support simpler extension 
> by downstream integrators:
> Rave Project:
> |
> |__rave- components
> |      |
> |      |__rave-commons  (Generic &  common code that is usable in many 
> different contexts, modules and projects)
> |      |
> |      |__rave-core (Core Model, Service&   Repository classes that are used 
> by multiple applications)  [Widget, Person&   related Classes]
> |      |
> |      |__rave-security (Security related classes) [User extends Person, 
> Security Utilities, etc]
> |
> |__rave-providers
> |      |
> |      |__rave-opensocial (OpenSocial provider classes)
> |      |
> |      |__rave-w3c (W3C provider classes)
> |
> |__rave-portal (Core portal&   webapp related features) [Regions, Pages, 
> controllers, etc]
> |
> |__rave-shindig

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to