Wednesday, February 25, 2015

WebCenter Content - Component Development Tips and Tricks

Hey all,

There was recently a good discussion on the Oracle Forums about building components ( There was some discussion about different methods people use, but there was an idea to get together to build something useful for the community. I wanted to provide my method and utility.

I have an ant build script that serves two general purposes: create new components and build existing components. Let's first go over the parts and dependencies of the utility.

There are a few pieces expected by the utility:

  • build.xml
  • a "Template Component"
  • fart.exe
Yes, fart.exe.

Let's go ahead and get that one out of the way :)

FART stands for "Find And Replace Text command line utility". The ant script uses this to rename the files and directories inside the template component to whatever actual component name you're cloning.

You need to install that utility ( and update the build.xml to the correct path.

Next is the "Template Component". In order to create components for you to work with, there needs to be a template. this is the core structure of a component with the (more or less) universal defaults in place. This will be your starting point when you're creating a new component. pretty nice to be able to not have to remember the structure, bits, pieces, etc each time you create a new component, in my opinion.

Notice that the Template Component is under a directory called "Components", this will be the parent component for all of your Components for the project. you can separate comnponents into different directories per client or project or whatever, but you'll need to duplicate the build.xml as well. the build.xml and Components directory must be at the same level. Peak at the properties structure in the build.xml for more info.

Finally, the build.xml.

The build.xml has two targets: 'createnew' and 'all'. 

createnew will generate a new component structure for the component name provided. It looks like this when using eclipse to execute:

NewComponent is the name of your new component to be created. 

The default target is 'all', so in can be implied. that will look like this, if your component is named "SenaSampleManageMetadata"

The 'all' target does a few things:

Note that the build number is managed by this file: ${componentName} The build automatically increments the build number by one each time the build is executed. the date is also automatically updated.

The target also cleans the build directory, recreates it, the zips up the component (excluding svn assets).

NOTE: the compilation of the class files is not done by the script since this was originally used with eclipse. I used eclipse's auto-build to make sure the class files were always there when needed. This required modifying the build directory as follows:

Note that the expected structure is as follows:

java source:

Components/<Component Name>/component/<Component Name>/src

java classes:

Components/<Component Name>/component/<Component Name>/classes

The build.xml could easily be modified to include a subtask containing a java compilation job, if needed.

I have not used this with jdeveloper, but I expect it could be adapted to jdeveloper as well. I personally still use eclipse for building components, so I have not taken the time to attempt to adapt to jdev.

here is a link to the public repo housing this code:

Let me know what everyone thinks!



  1. After the huge success of Mi5, Xiaomi is ready to launch the next generation of its flagship device the Mi 6 sometime soon. It will have a more powerful processor and a better back camera with dual tone LED flash. To know more about the latest flagship launch just have a look at Mi6 smartphone

  2. Samsung Galaxy S9 is unbreakable. To know more features visit the site

  3. Nice post - Thanks for sharing this kind of post with us. really very great stuff, keep posting...

  4. It's not simple to stay on top of changes to cell phones. With any luck, you have gained some insights that will facilitate a better cell phone experience. Phones may be complex, but if you know what you're doing you'll be able to get the most out of your phone.

  5. Thank you for sharing the information. Glad to find it here.
    instagram technology

  6. Thank you for sharing this very nice post awesome keep sharing.
    click here

  7. If you are in Jaipur and need beautiful Jaipur Call Girl or white skin Jaipur Call Girls then you can simply book call girls in Jaipur from one of the best escort agency named Jaipur Call Girls. It is No.1 premier escort agency and provide both incall or outcall facility to clients.Please click on the following link to check the official websites Jaipur Call Girl

  8. Execute client orders with precision.
    The company is keen to listen to the opinion of the customer in the cleaning process and support his observation.
    Read about swimming pools cleaning company doorشركة تنظيف خزانات بالرياض
    شركة تنظيف بالرياض
    شركة تنظيف شقق بالرياض
    شركة النجوم لخدمات التنظيف

  9. Affordable trucks moving company provides safe and secure moving services. If you need their service, go to the Trucking Cube website and fill all your requirements there or you call them directly.

    Truck Rental Near Me
    Rent moving truck

  10. thanks for sharing such a wonderful information from this post
    digital marketing

  11. Congratulations on receiving a great response to your post! We at the Myassignmenthelpau platform understand how difficult it can be for the students to manage complicated assignments in high school, college, or university, therefore, we have introduced an exclusive Assignment Help Canada facility that will cater to all your writing requirements precisely.