[opencms-dev] OpenCMS Development in a team

Schliemann, Kai K.Schliemann at comundus.com
Mon May 3 14:12:08 CEST 2010


Hi Thomas,

ok, now I see your problem.

Actually this is no problem.

Let me explain, how our development process looks like.

1.       Every developer has his own development infrastructure on his local machine. Including Tomcat, database (e.g. MySQL) and OpenCms. This means that every developer has his own OpenCms instance on his local machine.

2.       So when he develops his templates, he does this either in his local OpenCms instance or he uses the synchronized file on his local file system. After changing his code, he synchronizes his local changes with the OpenCms VFS by using the maven goal mvn vfs:sync. The files in the OpenCms VFS are synchronized with the local files. This works in both directions (VFS->RFS; RFS->VFS).

3.       All our VFS resources are Eclipse projects. So we can use all advantages of the IDE.

4.       Java code is developed locally as well

5.       When a developer finished his work, he checks in his changes to the version system. In our case svn.

6.       The other developers can check out these changes and either synchronize (VFS projects) or do a rebuild of the complete project if there are changes in the Java code. Single Java projects can also be rebuild (mvn package) but have to be deployed manually to your application server.

7.       For testing, we have a special maven profile with attributes for the test server. On our Hudson based build server is a task which rebuilds the project based on this maven profile every morning. This build is used for testing.

If you don't want to check in your code before testing I would recommend writing test cases and let maven run does tests on rebuild. So every developer has to do a successful rebuild of his project before checking in his code.

 

I hope this helps.

 

Regards

_________________________________________

   

Kai Schliemann

Senior IT-Berater

    

comundus GmbH

Schüttelgrabenring 3, D-71332 Waiblingen

Telefon +49 7151-50028-0

E-Mail k.schliemann at comundus.com 

Internet www.comundus.com <http://www.comundus.com/> 

 

Geschäftsführer Klaus Hillemeier  

Amtsgericht Stuttgart, HRB 264290

         

comundus ist ein Unternehmen der IT EXCELLENCE Group

_________________________________________

 

 

 

 

Die Kundenzufriedenheit bei comundus wieder verbessert -
Durchschnittsnote jetzt 1,7.

 

 

 

Von: opencms-dev-bounces at opencms.org [mailto:opencms-dev-bounces at opencms.org] Im Auftrag von Thomas Göttlich
Gesendet: Montag, 3. Mai 2010 11:37
An: The OpenCms mailing list
Betreff: Re: [opencms-dev] OpenCMS Development in a team

 

Hi Kai,

yes, it's really too bad, but I can't do anything against it (at least if there wasn't another killer argument in favor of maven).

However, I've still have a question (maybe this could be the required killer argument):

Would the maven plugin allow us to develop and test independently?
What I mean is, would we be able to modify a module and just deploy it locally (without synchronization with the the VFS) for our tests?

After the module was tested successfully there wouldn't be any problem in deploying it in the shared VFS.
However, for the primary tests, we'd like not to interfere with other developers.

How do you do that?

Best regards,

Thomas



2010/5/3 Schliemann, Kai <K.Schliemann at comundus.com>

Hi Thomas,

too bad, that you decided against maven.

All the problems you describe are the same, we had years ago before we decided to write the Maven plugin.

 

Hope you find a suitable solution for your development process.

 

Best regards

_________________________________________

   

Kai Schliemann

Senior IT-Berater

    

comundus GmbH

Schüttelgrabenring 3, D-71332 Waiblingen

Telefon +49 7151-50028-0

E-Mail k.schliemann at comundus.com 

Internet www.comundus.com <http://www.comundus.com/> 

 

Geschäftsführer Klaus Hillemeier  

Amtsgericht Stuttgart, HRB 264290

         

comundus ist ein Unternehmen der IT EXCELLENCE Group

_________________________________________

 

Fehler! Es wurde kein Dateiname angegeben.

 

 

Die Kundenzufriedenheit bei comundus wieder verbessert -
Durchschnittsnote jetzt 1,7.

 

 

 

Von: opencms-dev-bounces at opencms.org [mailto:opencms-dev-bounces at opencms.org] Im Auftrag von Thomas Göttlich
Gesendet: Montag, 3. Mai 2010 10:54
An: The OpenCms mailing list
Betreff: Re: [opencms-dev] OpenCMS Development in a team

 

Hi Kai,

thanks for your suggestion. 

Unfortunately, our project management recently decided against Maven for this project, so we will have to use Ant (there was one killer argument by fellow developers which made our management decide against maven - although I don't agree with that).

However, I guess it should be no problem to do the synchronization via the CmsShell or use a small plugin that exposes the necessary functionality as a webservice (in order to cut down the CmsShell startup times).

What is more of a problem is the actual development process.

Here's what we'd like to do (more or less)

1. Create/change a JSP or JAR
2. Deploy it in OpenCMS (locally!)
3. Test it
4. Commit the changes to Subversion
5. Deploy the JSP/JAR to the VFS


The problem here is the concurrent development of a JSP or JAR, i.e. if I make some changes and deploy it to the VFS in order to test it, I might overwrite another developer's code (if she did also deploy it to the VFS) or break the others' systems if my code doesn't work.

With a shared OpenCMS database we'd actually work on a single VFS and making changes there would have similar effects as commiting faulty code into version control (i.e. subsequent updates on other machines would break the software there).


Best regards,

Thomas


P.S.: I already found your Maven plugin and it looks great. However, I'd like to ask some questions even if we're not able to use it for our current project.

2010/5/3 Schliemann, Kai <K.Schliemann at comundus.com>

Hi Thomas,

you might have a look at the OpenCms-Maven Plugin on http://opencms-maven.comundus.com/.

The plugin uses Maven to automatically build OpenCms projects. A maven-vfs-plugin retrieves the data from the vfs an writes them to the file system (actually it is doing a vfs sync). Now it is easy to  use your versioning system to exchange your code changes between the developers.

 

If you have any further questions, please don't hesitate to ask.

 

Best regards

_________________________________________

   

Kai Schliemann

Senior IT-Berater

    

comundus GmbH

Schüttelgrabenring 3, D-71332 Waiblingen

Telefon +49 7151-50028-0

E-Mail k.schliemann at comundus.com 

Internet www.comundus.com <http://www.comundus.com/> 

 

Geschäftsführer Klaus Hillemeier  

Amtsgericht Stuttgart, HRB 264290

         

comundus ist ein Unternehmen der IT EXCELLENCE Group

_________________________________________

 

Fehler! Es wurde kein Dateiname angegeben.

 

 

Die Kundenzufriedenheit bei comundus wieder verbessert -
Durchschnittsnote jetzt 1,7.

 

 

 

Von: opencms-dev-bounces at opencms.org [mailto:opencms-dev-bounces at opencms.org] Im Auftrag von Thomas Göttlich
Gesendet: Montag, 3. Mai 2010 10:03
An: opencms-dev at opencms.org
Betreff: [opencms-dev] OpenCMS Development in a team

 

Hi there,

we're currently starting our first bigger project based on OpenCMS.

However, we have some questions on how to setup a development environment that is suitable for developing in a team.
Thus, any help, ideas and suggestions are highly appreciated.

First, I'd like to give a quick overview on our current development process:

So far, we used a single shared database for development, so that any developer can use the same test data.
Development occured in otherwise isolated environments, i.e. each developer had her own JBoss, own working copy etc.
Source code distribution happened via Subversion whereas test data resided in the shared data base.

Additionally, we told JBoss where to find the application (especially the JSPs) in our working copy.
Thus we could just edit a JSP and immediately see the changes in the running application.

All this allowed us to code quickly, use the same test data without any hassle etc.


However, OpenCMS doesn't seem to support that approach.

As far as I know, OpenCMS needs all JSPs (and maybe the jars, too) to reside in the VFS which would make using a shared database for OpenCMS quite difficult.

Additionally, if we used a database per development machine, it would be difficult to distribute the test data.

The third point would be the instant editing of JSPs which doesn't seem to work, since we'd need synchronization with the VFS.


Do you have any ideas?

Or any hint on how you do OpenCMS development in a bigger team.

Thanks in advance,

Thomas



_______________________________________________
This mail is sent to you from the opencms-dev mailing list
To change your list options, or to unsubscribe from the list, please visit
http://lists.opencms.org/mailman/listinfo/opencms-dev

 



_______________________________________________
This mail is sent to you from the opencms-dev mailing list
To change your list options, or to unsubscribe from the list, please visit
http://lists.opencms.org/mailman/listinfo/opencms-dev

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20100503/5c92c272/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 4286 bytes
Desc: image001.jpg
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20100503/5c92c272/attachment.jpg>


More information about the opencms-dev mailing list