Template versioning application like Project Area Updater

is it possible to manage the versioning of process templates?
I am looking for something similar to what the Project Area Updater Tool did for 1.0 to 2.0.
I have my own template that will go trough different stages of releases to different organization. Like myTemplate_1, myTemplate_2, ...myTemplate_n.
I want the organizations who i sent myTemplate to be able to update their existing project areas with the new release of myTemplate, in the same fashion that the Project Area Updater Tool did for scrum and OpenUP from RTC 1.0 to RTC 2.0.
thanks
Stefania
I am looking for something similar to what the Project Area Updater Tool did for 1.0 to 2.0.
I have my own template that will go trough different stages of releases to different organization. Like myTemplate_1, myTemplate_2, ...myTemplate_n.
I want the organizations who i sent myTemplate to be able to update their existing project areas with the new release of myTemplate, in the same fashion that the Project Area Updater Tool did for scrum and OpenUP from RTC 1.0 to RTC 2.0.
thanks
Stefania
13 answers

Hello Stefania,
The project area updater tool is exstensible. You can write an updater for project areas created with your template and ship it to your customers.
The project area updater tool has two extension points that you will be interested in: com.ibm.team.process.service.projectAreaUpdater and com.ibm.team.process.service.projectAreaUpdateHelper.
Extend the projectAreaUpdater extension point by specifying the ID of your template, a unique identifier for your updater and a class that extends AbstractProjectAreaUpdater. In your class, you will need to provide some context that allows helpers to know where to get template strings. Other than that, the heavy lifting will be done by the abstract class. The abstract class has code that looks for all projectAreaUpdateHelper extensions registered for the projectAreaUpdater and call each helper to do its updates.
Extend the projectAreaUpdateHelper extension point with the id of your updater and a class that extends AbstractProjectAreaUpdateHelper. The helper classes are the ones that actually manipulate the XML of the project areas. You can have multiple extensions to update different parts of the XML if you like. There are methods in the abstract class to facilitate the common update operations.
Keep in mind that users can change their project area configuration between releases of your template. In general, you do now want to overwrite user changes. The update helpers should ADD elements that are completely new, but should not change existing elements, since that might overwrite user changes.
Also be aware that there is no versioning of project areas, so you cannot tell if a project area was created with the original version of your template or a later one. You also cannot tell whether a project area created with one version of a template has already been updated to a later version. For these reason, update helpers should call the AbstractProjectAreaUpdateHelper.isChildExisting method check whether an element exists before adding it.
Martha
Jazz Developer
The project area updater tool is exstensible. You can write an updater for project areas created with your template and ship it to your customers.
The project area updater tool has two extension points that you will be interested in: com.ibm.team.process.service.projectAreaUpdater and com.ibm.team.process.service.projectAreaUpdateHelper.
Extend the projectAreaUpdater extension point by specifying the ID of your template, a unique identifier for your updater and a class that extends AbstractProjectAreaUpdater. In your class, you will need to provide some context that allows helpers to know where to get template strings. Other than that, the heavy lifting will be done by the abstract class. The abstract class has code that looks for all projectAreaUpdateHelper extensions registered for the projectAreaUpdater and call each helper to do its updates.
Extend the projectAreaUpdateHelper extension point with the id of your updater and a class that extends AbstractProjectAreaUpdateHelper. The helper classes are the ones that actually manipulate the XML of the project areas. You can have multiple extensions to update different parts of the XML if you like. There are methods in the abstract class to facilitate the common update operations.
Keep in mind that users can change their project area configuration between releases of your template. In general, you do now want to overwrite user changes. The update helpers should ADD elements that are completely new, but should not change existing elements, since that might overwrite user changes.
Also be aware that there is no versioning of project areas, so you cannot tell if a project area was created with the original version of your template or a later one. You also cannot tell whether a project area created with one version of a template has already been updated to a later version. For these reason, update helpers should call the AbstractProjectAreaUpdateHelper.isChildExisting method check whether an element exists before adding it.
Martha
Jazz Developer
is it possible to manage the versioning of process templates?
I am looking for something similar to what the Project Area Updater Tool did for 1.0 to 2.0.
I have my own template that will go trough different stages of releases to different organization. Like myTemplate_1, myTemplate_2, ...myTemplate_n.
I want the organizations who i sent myTemplate to be able to update their existing project areas with the new release of myTemplate, in the same fashion that the Project Area Updater Tool did for scrum and OpenUP from RTC 1.0 to RTC 2.0.
thanks
Stefania

It's probably clear from the surrounding context, but just to make sure
there is no misunderstanding, "you do now want to overwrite user
changes" was intended to be "you do not want to overwrite user changes".
Cheers,
Geoff
On 10/16/2010 11:07 PM, mandrew wrote:
there is no misunderstanding, "you do now want to overwrite user
changes" was intended to be "you do not want to overwrite user changes".
Cheers,
Geoff
On 10/16/2010 11:07 PM, mandrew wrote:
Hello Stefania,
The project area updater tool is exstensible. You can write an
updater for project areas created with your template and ship it to
your customers.
The project area updater tool has two extension points that you will
be interested in: com.ibm.team.process.service.projectAreaUpdater and
com.ibm.team.process.service.projectAreaUpdateHelper.
Extend the projectAreaUpdater extension point by specifying the ID of
your template, a unique identifier for your updater and a class that
extends AbstractProjectAreaUpdater. In your class, you will need to
provide some context that allows helpers to know where to get
template strings. Other than that, the heavy lifting will be done by
the abstract class. The abstract class has code that looks for all
projectAreaUpdateHelper extensions registered for the
projectAreaUpdater and call each helper to do its updates.
Extend the projectAreaUpdateHelper extension point with the id of your
updater and a class that extends AbstractProjectAreaUpdateHelper. The
helper classes are the ones that actually manipulate the XML of the
project areas. You can have multiple extensions to update different
parts of the XML if you like. There are methods in the abstract class
to facilitate the common update operations.
Keep in mind that users can change their project area configuration
between releases of your template. In general, you do now want to
overwrite user changes. The update helpers should ADD elements that
are completely new, but should not change existing elements, since
that might overwrite user changes.
Also be aware that there is no versioning of project areas, so you
cannot tell if a project area was created with the original version
of your template or a later one. You also cannot tell whether a
project area created with one version of a template has already been
updated to a later version. For these reason, update helpers should
call the AbstractProjectAreaUpdateHelper.isChildExisting method check
whether an element exists before adding it.
Martha
Jazz Developer
stefaaxowrote:
is it possible to manage the versioning of process templates?
I am looking for something similar to what the Project Area Updater
Tool did for 1.0 to 2.0.
I have my own template that will go trough different stages of
releases to different organization. Like myTemplate_1, myTemplate_2,
..myTemplate_n.
I want the organizations who i sent myTemplate to be able to update
their existing project areas with the new release of myTemplate, in
the same fashion that the Project Area Updater Tool did for scrum and
OpenUP from RTC 1.0 to RTC 2.0.
thanks
Stefania

I don't think any project area update helpers have been written for the RTC 3.0 templates. Some of the helpers that were written for the RTC 2.0.0.1 templates were moved to the com.ibm.team.process.service.tests plugin and used in our tests.
If you have access to the source code, you can check the plugin.xml of the com.ibm.team.process.service.tests project for extenders of the projectAreaUpdateHelpers extension point.
Martha
Jazz Developer
If you have access to the source code, you can check the plugin.xml of the com.ibm.team.process.service.tests project for extenders of the projectAreaUpdateHelpers extension point.
Martha
Jazz Developer
Thank you
can i have some example of project updaters code or where should i find it?
thanks
Stefania

thanks Martha for your help on this.
I did not implement my projectupdaterarea tool, since it would be process dependent from my understanding.
We are looking for a general way of managing the project areas and the process versions.
The versioning problem together with the multiple process for the same project area have been addressed in the Plan Item 65652
thanks again
Stefania
I did not implement my projectupdaterarea tool, since it would be process dependent from my understanding.
We are looking for a general way of managing the project areas and the process versions.
The versioning problem together with the multiple process for the same project area have been addressed in the Plan Item 65652
thanks again
Stefania

Hi Martha ,
my project can not wait for the process fragment plan 65652 and we are exploring the alternative of the project updater tool again.
I have never checked out the jazz code.
Can you point me to some instructions on own to get the code?
Also I am not sure my account has authority for it.
thanks
Stefania
my project can not wait for the process fragment plan 65652 and we are exploring the alternative of the project updater tool again.
I have never checked out the jazz code.
Can you point me to some instructions on own to get the code?
Also I am not sure my account has authority for it.
thanks
Stefania

Hello Stefinia,
You can download the source code as a .zip file from the jazz.net downloads page:
https://jazz.net/downloads/jazz-foundation/releases/3.0?p=allDownloads
Regards,
Martha
You can download the source code as a .zip file from the jazz.net downloads page:
https://jazz.net/downloads/jazz-foundation/releases/3.0?p=allDownloads
Regards,
Martha
Hi Martha ,
my project can not wait for the process fragment plan 65652 and we are exploring the alternative of the project updater tool again.
I have never checked out the jazz code.
Can you point me to some instructions on own to get the code?
Also I am not sure my account has authority for it.
thanks
Stefania

Hi Martha
1. i dowloaded RTC-SDK-3.0.zip
2. extracted the plugin.xml of plugins\com.ibm.team.process.tests.jfs.feature.source_1.1.0.v20101110_2242
3. extracted the plugins\com.ibm.team.process.tests.jfs.feature.source_1.1.0.v20101110_2242\src\com.ibm.team.process.service.tests_1.2.0.v20101110_2242\src.zip
the code as it is does not build in a plug-in project i created on my RTC eclipse env.
Were you referring to another plugin.xml and not the one i extracted in the folder at step 2 above?
thank you
Stefania
1. i dowloaded RTC-SDK-3.0.zip
2. extracted the plugin.xml of plugins\com.ibm.team.process.tests.jfs.feature.source_1.1.0.v20101110_2242
3. extracted the plugins\com.ibm.team.process.tests.jfs.feature.source_1.1.0.v20101110_2242\src\com.ibm.team.process.service.tests_1.2.0.v20101110_2242\src.zip
the code as it is does not build in a plug-in project i created on my RTC eclipse env.
Were you referring to another plugin.xml and not the one i extracted in the folder at step 2 above?
thank you
Stefania

Hi Stefania,
That is the correct plugin. Are the build errors due to missing prerequisites?
Thanks,
Martha
That is the correct plugin. Are the build errors due to missing prerequisites?
Thanks,
Martha
Hi Martha
1. i dowloaded RTC-SDK-3.0.zip
2. extracted the plugin.xml of plugins\com.ibm.team.process.tests.jfs.feature.source_1.1.0.v20101110_2242
3. extracted the plugins\com.ibm.team.process.tests.jfs.feature.source_1.1.0.v20101110_2242\src\com.ibm.team.process.service.tests_1.2.0.v20101110_2242\src.zip
the code as it is does not build in a plug-in project i created on my RTC eclipse env.
Were you referring to another plugin.xml and not the one i extracted in the folder at step 2 above?
thank you
Stefania
page 1of 1 pagesof 2 pages