Showing posts with label tips. Show all posts
Showing posts with label tips. Show all posts

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 (https://community.oracle.com/message/12917711). 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 (http://sourceforge.net/projects/fart-it/) 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}.build.properties. 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:

https://bitbucket.org/Rsulliv1/webcenter-utilities

Let me know what everyone thinks!

-ryan

Wednesday, February 13, 2013

Tip of the Day: Metadata-only Content Without Configuration

Just a quick tip pulled directly out of the product docs:


Tip:

You can check in a metadata placeholder without specifying a primary file by entering an invalid path in the Primary File field. For example, entering the word placeholder into the Primary File field creates a content item within Content Server with the specified metadata, but no indexed primary file. Placeholders are useful for initiating workflows or making metadata available for searching and discussion.


Note:

 If you are checking in a placeholder using Internet Explorer version 6.0 on the Windows XP operating system with Service Pack 2 installed, the path used in the Primary File field must be valid, but end with an invalid file. In the following example, c:/ is a valid drive, but placeholder is not a valid file:


c:/placeholder

If you do not specify a valid drive, an error message is displayed. Pretty clever way of forcing a meta-only content item without the configurations in place!

It's always worth reading the docs!

 -ryan