Dear WebCenter portal seniors,
Please share your expertise and experience with freshers through this thread. Any information is priceless. Please do not refer us to Oracle docs as those docs only talk about one environment one machine. Please explain how did you do your setup for Development, Test and Prod. How about WLS administrator steps for deploying a WebCenter app with a service enabled (using Schemas in JDeveloper) and deployed them on Dev boxes. Whats DBA role in this etc. I assume Developers will never have Local Database installed on their local dev boxes. Just JDeveloper.
Eagerly waiting for everyone's spot light in this matter.
My previous question or someone might have asked same or similar questions. But totally this thread should address everyone's concern for Enterprise Development Environment.
From my experience i'm going to put some tips about developing. First i'm going to comment about WebCenter Portal Applications (with Spaces we usually work some different).
We have 4 enviroments: Local (developer local), Dev, Test and Prod.
Developers works faster in their local enviroments (they need 6-8gb RAM laptop to be efficients).
- Build your Task Flows in a separate Fusion Web Applications and build ADF JAR Libraries to be consumed by Portal Application. If you need to build a model based on BBDD, each developer can create a database offline model and install it into a local database for fast tests. It's easy replicate data base models from "offline databases". This Task Flows should run independently of Portal Application.
- Build Portlets and test it locally.
- If you need to consume WebCenter Schema, use connections or create Data Sources in your integrated weblogic to dev enviroment.
- If you need to consume UCM content do a connection to dev UCM server.
- Integrate Portlets and Task Flows in a share WebCenter Portal Application installed in Dev enviroment.
- Build all portal resources locally and export / import them to Dev enviroment.
- Build all runtime customizations in your Dev enviroment. Export customizations from dev -> test and from test -> prod.
- In Test enviroment simulate a "prod" enviroment with OHS and load balancers or virtual hosts configurations.
- For build / skin templates please disable content compression and more adf configurations. Disabling content compression you are able to see style classes and skin selectors used.
- All your resources must be in MDS metadata folder (oracle/webcenter/portalapp/....), create a /contenttemplates folder por content presenter templates. Code and resources should be structured.
With WebCenter Spaces Applications:
- Like Portal App's, enable debugging parameters in web.xml in Dev enviroment.
- DesignWebCenterSpaces applications have two important projects:
1) Resources: The project containing Spaces resources. Developers can create all type of resources and Export / Import into Spaces Applications without redeploy it. Enable REST API integration (if your are < PS5) for Upload / Download resources from server faster.
2) SharedLib: Change weblogic.xml to reference Shared Lib code and Task Flows developed for Spaces. It need to redeploy Spaces and generate a new library version (only one person should be assigned to redeploy spaces and set +1 to this library with ANT scripts).
- Create a SharedLib app to deploy all your custom Task Flows and code.
- Create a Shared Spaces Customization Task Flow Application for product task flow customization.
- Each redeploy lost between 2,40 ~ 3 minutes.
To pass from Dev enviroment to Test enviroment you have to deploy your shared libs, export / import resources and metadata.
About team working:
- Developers have to build / create independently functionallity, test it locally and integrate it in Dev enviroment.
- SVN integration is too important.
- Skin and Template creator should be working with a developer together. Most of CSS designers haven't ADF knowledge and need developer help.
- In WebCenter Spaces only one person must be assigned to increment and redeploy Spaces.
Steps to follow:
- Create UCM content types.
- Create WebCenter Portal Structure including multi-language, filters, navigations... Think what is going to be created at Runtime (MDS) and at Design time.
- Create Page Templates, page styles, navigations, skins.... Skinning lost a lot of time.
- Create CP templates.
- Integrate Enterprise functionallity.
- Create Custom Task Flows and Portlets to be consumed from WebCenter.
Another tip for developers... Use JSFUtils and ADFUtils classes for a "clean" code.
Don't forget that ADF is based on MVC pattern, please model code in Model project and controller code in View project.
For Test and Prod enviroments don't forget to set "tunned" variables in web.xml, adf-config.xml for performance.
Thanks Daniel, that details a lot of info. We got to a point where two developers will be working on portal design now. Each one will be working on same package that was originally deployed, and each developer will be implementing different services on pages. The whole package code is shared from from Version Control. And each one did some run time customizations as well. When time comes to deploy..how to integrate changes from both people without loosing any information.
Daniel, could you explain for Webcenter spaces as well. My main focus is, we were using Oracle Portal 10g and it got approval process for each web page that was created in our site. When user make any change to the existing web page that got to be approved before the changes takes place. Where as in spaces I dont see something like that. It gives Content related workflow but it is not meeting my requirement. I dont believe if Oracle takes away that feature. Please explain.
It's not a case of "taking away" a feature. Oracle Portal and Oracle WebCenter Portal are two very different products.
There is no approval process for runtime changes made to pages and resources.
however, if you have development, test, acceptance and production environments, you can have changes made to those environments and then export them from the MDS repository and import them into your production environment. This then follows the a "normal" software development process.
Dear Jeep, I may not agree that feature is not available in Webcenter. Because Webcenter is all about simplifying the SDLC process, and to enable users work more effectively at runtime. Changing the page information or adding new images etc are day to day work and it has to be done at runtime only. I wont expect that we should have releases to production for making these simple changes.
So, Oracle Webcenter might have accommodation for that type of work and so does the approval process. Because contributors of a page will add or modify some content in the page which is subjected to approval, once the supervisor approves the change it will be published. It is the regular process.
For runtime changes (in Oracle Composer) made to pages or components on pages, such as adding new pages to a portal, adding components to a page, changing headers, labels etc. there is NO approval process.
For content within pages that comes from the Content Server, you can use criteria workflows to create an approval process. A great blog on this subject was just published today: