MultiComponent FGC Enablement (archived) - quality-manager/onboarding GitHub Wiki

Development Environment

This describes how to get a development environment running. The steps are:

  1. Edit your launch for both QM Init and Server startup
  2. Create an FGC.activate file
  3. Apply patches as needed
  4. Run QM Init with modified launch
  5. Start the server with modified launch
  6. Enable full configuration management (not the single-stream version) as you usually do

1. Edit your launch for both QM Init and Server startup

Add lines like this to your launches (your path for JAZZ_HOME may differ!):

<listEntry value="com.ibm.team.repository.service.internal.fineGrainedComponents.enable|value=true"/>
<listEntry value="com.ibm.team.repository.service.internal.configurationAware|value=true"/>
<listEntry value="com.ibm.team.repository.provision.context.path|value=conf"/>
<listEntry value="JAZZ_HOME|value=/Users/frankmcgrath/Documents/dev/play/jazz_home"/>

2. Create an FGC.activate file

  • In the directory referenced by JAZZ_HOME above add a folder "conf"

  • In the "conf" folder create a text file called FGC.activate.

  • The contents of FGC.activate are:

    activation.code=22222222-2222-2222-2222-222222222222

3. Apply patches as needed

In WorkItem 447221 Frank initially created a fix and Gary delivered an improved version. Without this fix, saving configuration aware items in RQM does not work properly, as the vtable is populated with the aggregate configuration UUID not the subconfiguration. Gary has delivered this to 6.0.6

4. Run QM Init with modified launch

Based on code Jing created in Workitem 144952 when the project area is initialized, a collection of components, aggregate configurations, and subconfigurations is created in each project area.

5. Start the server with modified launch

6. Enable full configuration management (not the single-stream version) as you usually do

Pre-defined SubComponents and Configurations

There are 4 predefined Aggregate Configurations, with the following components. Note that you should be able to test for broken references. For example use the Quality Manager Initial Stream to create an item in SubComp Quality Manager that references an item in SubComp2. Switch to AggregateStream2 and SubComp2 is not accessible, so the reference should be broken.

  • Quality Manager Initial Stream
    • SubComp Quality Manager
    • SubComp2
    • SubComp3
  • AggregateStream1
    • SubComp Quality Manager
    • SubComp2
  • AggregateStream2
    • SubComp Quality Manager
    • SubComp3
  • AggregateStream3
    • SubComp2
    • SubComp3

Known limitations

Switching configurations from the toolbar

Currently, the web UI for selecting a configuration does not work properly, as it initially just finds subconfigurations. I will take a look at it. It should really find just the aggregate configurations. A workaround is to open the "Manage Components and Configuration" dialog box, and then navigate to one of the aggregate configurations.

Manage Components and Configurations

The UI shows all components and subcomponents, and all configurations and subconfigurations. You should only switch to an aggregate configuration. The UI lets you switch to a subconfiguration but it is a bad idea to do so. You have been warned.

Broken References

An initial pass was made to guard against broken references. We will be looking for more

Version skew

We do not guard against this, and I do not recommend triggering it for now unless you are explicitly trying to do so. To do so would require making use of the merge code, and I am not certain what would happen.