Component specification

When you create a custom review zone provider, you are creating a custom component. For detailed information about custom components, see Developing Components in Programming with LiveCycle ES2.5 .

The name of the component must be ReviewZoneProviderService since the Review Commenting & Approval Core service directly calls the service by that name to store and retrieve content. You cannot change the service names, operation names, or parameters.

Use the following component.xml file as a basis for your custom component implementation:

<component xmlns="http://adobe.com/idp/dsc/component/document"> 
    <component-id>com.adobe.livecycle.rca.ReviewZoneProvider</component-id> 
    <version>1.0</version> 
    <import-packages> 
        <package version="1.0" isOptional="false">com.adobe.livecycle.rca.rzp</package> 
        <package version="1.0" isOptional="false">com.adobe.livecycle.rca.common.exception</package> 
    </import-packages> 
    <services> 
    <service name="ReviewZoneProviderService" orchestrateable="false" title="ReviewZoneProviderService"> 
    <implementation-class>custom.rzp.ReviewZoneProviderImpl</implementation-class> 
    <description>Custom implementation of ReviewZoneProvider</description> 
    <hint>Filesystem-based implementation of ReviewZoneProvider</hint> 
    <auto-deploy service-id="ReviewZoneProviderService" major-version="1" minor-version="0" category-id="CustomRZP" /> 
    <!-- FileSystem based RZP configurations [Implementation-specific configuration]--> 
    <config-parameter name="reviewZoneRoot" type="java.lang.String" title="Root directory of Review Zone (applies to FileSystem based RZP)"> 
        <description>Path to directory for review zone root</description> 
    </config-parameter> 
    <config-parameter name="reviewZoneRootShareLocation" type="java.lang.String" title="Share name of Review Zone (applies to FileSystem based RZP)"> 
        <description>Share location of review zone root, this must be a network share path like //host/RCA/</description> 
    </config-parameter> 
    <operations> 
                <operation name="createSpace" method="createSpace" title="createSpace" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                    <hint>Creates a new space in the underlying persistence store.</hint> 
                    <input-parameter name="spacePath" type="java.lang.String" required="true" title="spacePath"> 
                        <description>UNIX like path of the space to be created.</description> 
                        <hint> </hint> 
                    </input-parameter> 
                    <output-parameter name="spaceUri" type="java.lang.String" title="spaceUri"> 
                        <description>URI of the space created.</description> 
                        <hint> </hint> 
                    </output-parameter> 
                </operation> 
                <operation name="deleteNode" method="deleteNode" title="deleteNode" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                    <hint>Deletes a node.</hint> 
                    <input-parameter name="nodePath" type="java.lang.String" required="true" title="nodePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <output-parameter name="success" type="java.lang.Boolean" title="success"> 
                        <description></description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
                <operation name="getSpaceContent" method="getSpaceContent" title="getSpaceContent" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="spacePath" type="java.lang.String" required="true" title="spacePath"> 
                        <description>                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="getOnlyFiles" type="java.lang.Boolean" required="true" title="getOnlyFiles"> 
                        <description></description> 
                            <hint></hint> 
                    </input-parameter> 
                    <output-parameter name="spaceContent" type="java.util.List" title="spaceContent"> 
                        <description></description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
                <operation name="nodeExists" method="nodeExists" title="nodeExists" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="parentSpacePath" type="java.lang.String" required="true" title="parentSpacePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="nodeName" type="java.lang.String" required="true" title="nodeName"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <output-parameter name="nodeExists" type="java.lang.Boolean" title="nodeExists"> 
                        <description></description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
                <operation name="retrieveContent" method="retrieveContent" title="retrieveContent" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="nodePath" type="java.lang.String" required="true" title="nodePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <output-parameter name="content" type="com.adobe.idp.Document" title="content"> 
                        <description></description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
                <operation name="storeContent" method="storeContent" title="storeContent" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="spacePath" type="java.lang.String" required="true" title="spacePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="nodeName" type="java.lang.String" required="true" title="nodeName"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="content" type="com.adobe.idp.Document" required="true" title="content"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="contentType" type="java.lang.String" required="false" title="contentType"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <output-parameter name="nodeUri" type="java.lang.String" title="nodeUri"> 
                        <description></description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
                <operation name="spaceExists" method="spaceExists" title="spaceExists" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="parentSpacePath" type="java.lang.String" required="true" title="parentSpacePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="spaceName" type="java.lang.String" required="true" title="spaceName"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <output-parameter name="spaceExists" type="java.lang.Boolean" title="spaceExists"> 
                        <description></description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
                <operation name="grantPermission" method="grantPermission" title="grantPermission" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="nodePath" type="java.lang.String" required="true" title="nodePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="usersWithReadPermission" type="java.util.List" required="false" title="usersWithReadPermission"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="usersWithReadWritePermission" type="java.util.List" required="false" title="usersWithReadWritePermission"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="applyToChild" type="java.lang.Boolean" required="false" title="applyToChild"> 
                        <description></description> 
                        <default-value>false</default-value> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="inheritParent" type="java.lang.Boolean" required="false" title="inheritParent"> 
                        <description>Inherit Parent Node Permission</description> 
                        <default-value>false</default-value> 
                        <hint></hint> 
                    </input-parameter> 
                </operation> 
                <operation name="revokePermission" method="revokePermission" title="revokePermission" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                    <hint></hint> 
                    <input-parameter name="nodePath" type="java.lang.String" required="true" title="nodePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="usersWithReadPermission" type="java.util.List" required="false" title="usersWithReadPermission"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="usersWithReadWritePermission" type="java.util.List" required="false" title="usersWithReadWritePermission"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="applyToChild" type="java.lang.Boolean" required="false" title="applyToChild"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                </operation> 
                <operation name="grantContributePermission" method="grantContributePermission" title="grantContributePermission" anonymous access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="nodePath" type="java.lang.String" required="true" title="nodePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="usersWithContributePermission" type="java.util.List" required="false" title="usersWithContributePermission"> 
                        <description>Contributor can view space contents, but can add new content and view content. But cannot modify/delete other user's content</description> 
                        <hint>Contributor can view space contents, but can add new content and view content. But cannot modify/delete other user's content</hint> 
                    </input-parameter> 
                    <input-parameter name="applyToChild" type="java.lang.Boolean" required="false" title="applyToChild"> 
                        <description></description> 
                        <default-value>false</default-value> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="inheritParent" type="java.lang.Boolean" required="false" title="inheritParent"> 
                        <description>Inherit Parent Node Permission</description> 
                        <default-value>false</default-value> 
                        <hint></hint> 
                    </input-parameter> 
                </operation> 
                <operation name="revokeContributePermission" method="revokeContributePermission" title="revokeContributePermission" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                        <hint></hint> 
                    <input-parameter name="nodePath" type="java.lang.String" required="true" title="nodePath"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                    <input-parameter name="usersWithContributePermission" type="java.util.List" required="false" title="usersWithContributePermission"> 
                        <description>Contributor can view space contents, but can add new content and view content. But cannot modify/delete other user's content</description> 
                        <hint>Contributor can view space contents, but can add new content and view content. But 
cannot modify/delete other user's content</hint> 
                    </input-parameter> 
                    <input-parameter name="applyToChild" type="java.lang.Boolean" required="false" title="applyToChild"> 
                        <description></description> 
                        <hint></hint> 
                    </input-parameter> 
                </operation> 
                <operation name="supportsContributePermission" method="supportsContributePermission" title="supportsContributePermission" anonymous-access="false"> 
                    <transaction-type>Service</transaction-type> 
                    <hint>Returns whether RZP implementation supports contributor permission. Contributor can view space contents, but can add new content and view content. But cannot modify/delete other user's content 
                    </hint> 
                    <output-parameter name="supportsContributePermission" type="java.lang.Boolean" title="supportsContributePermission"> 
                        <description>true if RZP implementation supports contributor permission and false if it does not</description> 
                        <hint></hint> 
                    </output-parameter> 
                </operation> 
            </operations> 
        </service> 
    </services> 
</component>

// Ethnio survey code removed