com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links' is unknown.

Sample Data Populator

The sample data populator included with the Assets Models Sample can also be used to populate Governance Registry for demonstrations and proof-of-concept scenarios. The following types of functionality are supported by the populator. 

The populator is executed using an Ant build script. There are some Pre-configured Asset Models which can be used. However, if you want to introduce your own, that can be done by including the following script inside the build.xml file.

    <property name="foo.dir" value="../Foo"/>
    <target name="run-foo" depends="jar-foo, jar">        
        <java classname="org.wso2.carbon.registry.samples.populator.Main" classpathref="javac.classpath"
              fork="true">             
            <sysproperty key="carbon.home"  value="${registry.home}"/>
            <arg value="-ch" />
            <arg value="${registry.home}"/>
            <arg value="-h"/>
            <arg value="${host}"/>
            <arg value="-p" />
            <arg value="${port}"/>
            <arg value="-u" />
            <arg value="${username}"/>
            <arg value="-pw" />
            <arg value="${password}"/>
            <arg value="-l" />
            <arg value="${foo.dir}"/>
        </java>
    </target>

The above script recompiles the populator code, and also compiles any source code for extensions. Each of the Pre-configured Asset Models deploy some extensions to Governance Registry, but that is not mandatory. If you do not have any extension .jar files, you can omit the jar-foo target. The populator source code is capable of performing the following set of operations. If required, the populator can be customized to perform your own actions. This can be done by making changes to the Populator\src\org\wso2\carbon\registry\samples\populator\Main.java file.

Handler Definitions

Handler definitions can be registered using the populator. For each handler definition to work, the populator expects that the corresponding source code is already deployed or installed as an extension using the populator. The configurations for all handlers need to be done inside a single file handler-def/handlers.xml. The structure of the file is as follows:

<handlers>
    <handler>
    ...
    </handler>
</handlers>

More than one handler can be configured at the same time using this. If no handlers are added during the population process, the populator expects a file to be present at the handler-def/handlers.xml location with the following content:

<handlers>
</handlers>

See Handlers for more information.

Extension JAR Files

The populator can install one or more .jar files located inside the target folder. These .jar files can only contain registry extensions. Since the populator is run using an Ant build script, these .jar files can either be compiled during the population process, or pre-compiled and made available inside the target folder. The following is a set of Ant targets that can used to do a clean build of the source code found inside the src folder.

    <property name="foo.dir" value="../Foo"/>
    <target name="jar-foo" depends="clean-foo, compile-foo">
        <jar jarfile="${foo.dir}/target/com.foo-${version}.jar">
            <fileset dir="${foo.dir}/target/classes">
                <include name="**/*.class"/>
            </fileset>
        </jar>
    </target>
    <target name="clean-foo">
        <delete dir="${foo.dir}/target" quiet="true"/>
        <delete dir="${foo.dir}/target/classes" quiet="true"/>
    </target>
    <target name="compile-foo" depends="init-ext">
        <mkdir dir="${foo.dir}/target/classes"/>
        <javac srcdir="${foo.dir}/src" destdir="${foo.dir}/target/classes">
            <classpath refid="javac.classpath"/>
        </javac>
    </target>

See Extensions for more information.

Reports and Jasper Report Templates

Templates for generating reports using Governance Registry can be installed using the populator. These .jrxml files should be located inside the reporting-templates folder. Please note that you can upload any number of templates and these need not be limited to the reports configured using this populator. To configure reports using the populator, the required configuration needs to be defined inside a Microsoft Excel Workbook at the location reports/list.xls. Only the rows in the first sheet are considered, and each row should have all the following values in the given order.

  1. Report Name
  2. Jasper Report Template (e.g.:- /_system/governance/repository/components/org.wso2.carbon.governance/templates/foo_template.jrxml)
  3. Type (e.g.:- PDF, Microsoft Excel, HTML)
  4. Report Generator Class

See Reports for more information.

Lifecycle Configurations

You can configure lifecycles for Governance Registry using the populator. One or more lifecycle configurations defined in SCXML should be located inside the lifecycles folder. Please note that this folder can only contain valid lifecycle configurations, and having any other file can lead to runtime errors.

See Configuring Lifecycles for more information.

Subscriptions

Subscriptions to receive notifications for events generated by operations on resources and collections can be done using the populator. Each subscription needs to be defined inside a Microsoft Excel Workbook at the location subscriptions/list.xls. Only the rows in the first sheet are considered, and each row should have all the following values in the given order.

  1. Resource or Collection path
  2. Endpoint URL (e.g.:- mailto:john@doe.com)
  3. Event Name (e.g.:- CollectionUpdated, ResourceDeleted, ApprovalNeeded, etc.)

 

The following is an example of how the Excel sheet would look:

See Notifications for more information.

Users and Roles

To setup users and roles using the populator you need to place the required details inside the Microsoft Excel Workbooks found in the users-and-roles folder. Only the rows in the first sheet are considered. To add users, you need to include the details inside a .xls file starting with the name users. This file needs to have the values in the given order.

  1. Username
  2. Password
  3. Comma-separated list of Roles
  4. E-mail Address
  5. First Name
  6. Last Name.

 

The following is an example of how the Excel sheet would look:

From the list mentioned above, only the username is mandatory. If the password is not specified it defaults to username123 (e.g.:- john123). If you specify the e-mail address, it is included in the user profile. If the e-mail address is specified and the first or last names are not specified, the username is used for that respective field. 

To add roles, you need to include the details inside a .xls file starting with the name roles. This file needs to have the values in the given order.

  1. Role Name
  2. Comma-separated list of Permissions

 

The following is an example of how the Excel sheet would look:

Both fields are mandatory. If the role name equals to admin or everyone, a new role is not created. The existing role is used and permissions are reset accordingly.

See Users and Roles for more information.

Registry Extension Types

The populator can install and configure new registry extension types. All such types need to be defined in .rxt files found inside the registry-extensions folder.

See /wiki/spaces/~yohanna@wso2.com/pages/21233721 for more information.

Resources and Collections

To setup resources and collections, include the required details in the Microsoft Excel Workbooks found in the data folder. Only the rows in the first sheet are considered. To add RXT-based assets, you need to include the details inside a .xls file starting with the name asset. This file needs needs to have a header row which contains the keys of each attribute you are going to set for the added assets. In addition to that, the key of the asset (e.g.:- service, API, or URI) added needs to be specified in a separate column named key. Due to differences between some assets, you might not be able to add more than one type of asset using a single spreadsheet. In such situations you can use more than one .xls file. Subsequent rows should have the actual data that is being added.

To add text resources or collections, you need to include the details inside a .xls file starting with the name resourceThis file needs to have the values in the given order.

  1. Resource Path
  2. Resource Content
  3. Description

The resource path is the only mandatory field, and if the content is not given, a collection is created instead of a resource. The media type is set to text/plain at the time of resource creation. If the description is not specified, a sample description "This resource was added using the WSO2 Governance Registry Sample Data Populator", is added. If the resource already exists, a new resource is not added. The provided details are used to add properties instead. Therefore, for existing resources, this file needs to have the following values in the given order.

  1. Resource Path
  2. Property Key
  3. Property Value

The property value is not mandatory, and if specified, a new property is added with the given key and value. If not specified, the property with the existing key is removed. The populator also allows you to upload resources from the file system and import resources from remote URLs. These resources need to be specified inside a .xls file starting with the name import. This file needs to have the values in the given order.

  1. Resource Path
  2. Resource URL (e.g.:- http://acme.org/john-doe.jpg, file:///home/john/john-doe.jpg)
  3. Media Type (e.g.:- image/jpeg)
  4. Description
The resource path and the URL are mandatory. The resource path for resources is based on RXTs (e.g.:- WSDL, Schema, Policy) and the path is in the format of /_system/governance/somename.ext. If the description is not specified, a sample description "This resource was added using the WSO2 Governance Registry Sample Data Populator", is added. If the resource already exists, a new resource is added overwriting the existing one.

See Resources for more information.

Comments, Ratings and Tags

The populator supports adding, removing and updating comments, ratings and tags of resources and collections. To comment, rate or tag resources, put the required details inside Microsoft Excel Workbooks (.xls files) starting with the name community inside the data folder. Only the rows in the first sheet are considered. This file needs to have the values in the given order.

  1. Type of Operation (e.g.:- comment, rate, tag)
  2. Resource Path
  3. Value

 

The following is an example of how the Excel sheet would look:

Please note that the first two fields are mandatory. To add a comment, rating or tag, the value is required. Comments and ratings can be updated and a value must be provided in such cases. Comments and tags can be deleted (setting a rating to 0 removes the rating) and a value must not be provided in such cases. To update or delete a comment, the path should be provided with the comment identifier (e.g.:- /foo/bar;comments:1). To delete a tag, the path should be provided with the tag identifier (e.g.:- /foo/bar;tags:foobar).

See Managing the Resources for more information.

Associations and Dependencies

To create associations or dependencies between resources, put the required details inside Microsoft Excel Workbooks (.xls files) starting with the name association inside the data folder. Only the rows in the first sheet are considered. This file needs to have the values in the given order.

  1. Source Resource Path
  2. Target Resource Path
  3. Association Type

Please note that all these fields are mandatory. To add dependencies, simply set the association type as depends.

See Associations and Dependencies for more information.

Lifecycle Operations

The populator is also capable of performing various lifecycle operations on resources and collections such as adding/removing lifecycle, voting, checking items on the checklist or performing an action (e.g.:- Promote, Demote). To perform lifecycle operations you need to create Microsoft Excel Workbooks (.xls files) starting with the name actions inside the lifecycle-operations folder. Only the rows in the first sheet are considered. These files need to have the values in the given order.

  1. Resource Path
  2. Lifecycle Name (e.g.:- ServiceLifeCycle)
  3. Action (e.g.:- itemClick, voteClick, Promote, Demote)
  4. Item State
  5. Operation Input Parameters

The resource path and the lifecycle name is mandatory. If only these two fields are present, the lifecycle is either added or removed from the resource depending on whether it currently exists or not. If an action is provided, the item state also needs to be provided. For example, if you checked the first two items on a checklist having three items in total, the state would be {true,true,false}. Some operations do require additional input parameters, depending on the type of resource involved. This depends on the transition executions and scripts that are triggered (read more under Configuring Lifecycles).

See Lifecycles for more information.

Resource Permissions

Permissions for resources and collections can be populated by placing the corresponding details inside Microsoft Excel Workbooks (.xls files) starting with the name permission inside the data folder. Only the rows in the first sheet are considered. The populator expects the file to have the following values.

  1. Resource Path
  2. Role Name
  3. Permission String

All of the above is mandatory. The permission string is a comma-separated list of {ra, wa, da, aa, rd, wd, dd, and ad}. The first character denotes the type of operation, read, write, delete or authorize and the second represents allow or deny. (e.g.:- to allow read/write and to deny delete set the permission string as "ra,wa,dd").

See also Role Permissions.

Multitenancy Aspects

Tenants can be added using the populator. You need to place the required details inside Microsoft Excel Workbooks found in the users-and-roles folder. Only the rows in the first sheet are considered. To add tenants, you need to include the details inside a .xls file starting with the name tenants. This file needs to have the values in the given order.

  1. Admin Username
  2. Admin Password
  3. Admin's E-mail Address
  4. Admin's First Name
  5. Admin's Last Name
  6. Tenant Domain

All of the above are mandatory. Once tenants have been created either through the populator or using the management console, all of the above mentioned operations (except for creating tenants) can be run as a tenant user. In order to do this, change the username and password in the build.xml file to match those of the tenant. Please note that the username of a tenant includes the tenant domain.

See Multitenancy for more information.

com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.