X

Best Practices from Oracle Development's A‑Team

Concurrent Development Model for WebCenter Sites

Vivek Singh
Principal Solutions Architect

1.0 Introduction

 

Several times we are asked the question, “I need to develop multiple versions of the Site at the same time. I have completed phase one and version 1.0 of the website is live on delivery. I am working on version 2.0 in the development environment. It will take another 3 weeks to complete version 2.0 and deploy it to delivery. In the meanwhile, I need to start working on version 3.0. How can I do this?”

 

The answer is very simple. WebCenter Sites development is like any other software development project. A version control system integrated with the development environment is needed to work on multiple versions concurrently. WebCenter Sites Development Tool Kit, CSDT, has a plugin for Eclipse. This allows developers to use Eclipse IDE, and export/import resources from WebCenter Sites to Eclipse workspace. Eclipse can now be integrated with a version control system of your choice.

 

Let’s first take a look at the development environment for WebCenter Sites for a medium to large project that requires multiple developers.

 

 

2. WebCenter Sites – IDE Integration

 

As a part of its Developers Tools kit (CSDT), WebCenter Sites has an OOTB integration with Eclipse IDE[1]. Once integrated with Eclipse, the developers interact with WebCenter Sites primarily through Eclipse, which provides a rich set of functions for managing WebCenter Sites resources including Templates, CSElements, Site Entry Assets, Element Catalog Entries and Site Catalog Entries.

 

Eclipse managed resources are stored as files in a file system. This gives developers the option to integrate with a version control system of their choice. If the resources are modified and WebCenter Sites is running, the resources are automatically synchronized, that is, imported into WebCenter Sites, in its native database representation. Manual synchronization can also be performed in both directions.

 

This is depicted in the following diagram:

 

EclipsePlugIn

 

 

Using the Eclipse integration, developers typically perform the following tasks in Eclipse:

* Create, edit, and delete CSElement, Template, and SiteEntry assets

* Develop JSP elements with standard Eclipse features such as tag completion, syntax highlighting, and debugging

* Export and import assets, asset types, flex families, sites, roles, tree tabs, and start menu items

* Preview WebCenter Sites pages within the Eclipse IDE using an embedded preview browser

* View the WebCenter Sites log file in a dynamically refreshing panel

* Integrate with version control systems

 

3. Integration with Version Control System

 

CSDT supports integration with a version control system through Eclipse IDE. Eclipse managed WebCenter Sites resources are stored as files in Eclipse workspace called the Main Developer Tools Workspace. Developers can check-in & check-out resources from their workspace to a version control system. From version control system, the resources can be imported in Development Server. The Development Server is used to keep all the files, assets, asset definitions, templates, elements, etc. of the current version. This is shown in the following diagram:

 

DevelopmentEnvironment

 

 

Typically, developers check-out the templates & CSElements they need to work on to their local development system. After they have finished their work, they check-in their changes to version control system. From version control system they are imported in the Development Server. From Development Server the version can be published to Testing/QA or Management Server as required. The following diagram depicts this scenario.

 

WCSIDEDevelopmentEnvironment

1. The developers check-out the template/CS-Element from Version Control System, and create/modify templates & CS-Elements on their laptop or on the sandbox. The laptop/sandbox has WebCenter Sites along with Eclipse Plug-in.

2.  The Templates/CSELements ares check-in the Version Control System.

3.  The Templates/CSElements are imported into the Development Server.

4.  Once the build is in the Development Server, it gets deployed to Management Server or (Test/QA Server) using WebCenter Sites Publishing Mechanism. From Management Server it gets deployed to Delivery Server again using WebCenter Sites publishing mechanism.

 

4. Developing Multiple Versions Concurrently

 

 

In addition to the set-up given in the earlier, developing multiple versions concurrently requires that you setup parallel development environment for different versions.

 

Say you want to work on both version 2 and version 3 in the development environment. You will need two development servers. The developers working on version 2, will download the version 2 template/cs-elements and other assets (asset types, definitions, site entry etc) for version 2 on their laptop or sandbox.

 

The developers working on version 3 will download the version 3 templates/cs-elements and other assets for version 3 on their laptop/sandbox. Both version 2 and 3 will use the same Version Control System. But Version 2 and version 3 have their own Development Servers. The templates, elements and other assets for version 2 are imported into Version 2 Development Server and templates, elements and other assets for version 3 are imported into Version 3 Development Server. The following diagram depicts this:

ParallelDevelopmentEnvironment

 

This setup allows developers to start developing version 3 while 2 is still being tested and is in the QA cycle.

 

5.    Conclusion

 

 

Thus we see that developing multiple versions concurrently in WebCenter Sites can easily be done by utilizing WebCenter Sites CSDT tool-kit, a version control system, and additional development servers.

 

[1] https://docs.oracle.com/cd/E29542_01/doc.1111/e29634/dt_intro.htm#WBCSD929

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha

Recent Content