Quick Start (SOAP mode): Modifying an abstract policy using the Java API

The following Java code example modifies an abstract policy named AllowCopy. The policy set in which the policy is modfied is named Global Policy Set. This policy set exists by default. (See Creating Policies.)

/* 
 * This Java Quick Start uses the SOAP mode and contains the following JAR files 
 * in the class path: 
 * 1. adobe-rightsmanagement-client.jar 
 * 2. adobe-livecycle-client.jar 
 * 3. adobe-usermanager-client.jar 
 * 4. activation.jar (required for SOAP mode) 
 * 5. axis.jar (required for SOAP mode) 
 * 6. commons-codec-1.3.jar (required for SOAP mode) 
 * 7.  commons-collections-3.1.jar  (required for SOAP mode) 
 * 8. commons-discovery.jar (required for SOAP mode) 
 * 9. commons-logging.jar (required for SOAP mode) 
 * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
 * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
 * 12. jaxrpc.jar (required for SOAP mode) 
 * 13. log4j.jar (required for SOAP mode) 
 * 14. mail.jar (required for SOAP mode) 
 * 15. saaj.jar (required for SOAP mode) 
 * 16. wsdl4j.jar (required for SOAP mode) 
 * 17. xalan.jar (required for SOAP mode) 
 * 18. xbean.jar (required for SOAP mode) 
 * 19. xercesImpl.jar (required for SOAP mode) 
 * 
 *  These JAR files are located in the following path: 
 * <install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs/common 
 * 
 * <install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs/jboss 
 * 
 * <install directory>/Adobe/Adobe_Experience_Manager_forms/jboss/bin/client 
 * 
 * SOAP required JAR files are located in the following path: 
 * <install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs/thirdparty 
 * 
 * If you want to invoke a remote forms server instance and there is a 
 * firewall between the client application and forms server, then it is 
 * recommended that you use the SOAP mode. When using the SOAP mode, 
 * you have to include these additional JAR files 
 * 
 * For information about the SOAP 
 * mode, see "Setting connection properties" in Programming 
 * with forms server 
 */ 
import java.util.*; 
 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; 
import com.adobe.livecycle.rightsmanagement.client.*; 
import com.adobe.livecycle.rightsmanagement.client.infomodel.*; 
 
public class ModifyingAbstractPolicySoap { 
 
    public static void main(String args[]) { 
                
    try{    
         
        //Set connection properties required to invoke forms server using SOAP mode                                
        Properties connectionProps = new Properties(); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);          
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "Jboss"); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator"); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password"); 
                
          //Create a ServiceClientFactory object 
        ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps); 
    
        //Create a RightsManagementClient object 
        RightsManagementClient rightsClient = new RightsManagementClient(myFactory); 
        
        AbstractPolicyManager abstractPolicyManager = rightsClient.getAbstractPolicyManager(); 
        
        AbstractPolicy abstractPolicy = abstractPolicyManager.getAbstractPolicy("Global Policy Set","AllowCopy"); 
        
        //Modify policy attributes 
        abstractPolicy.setOfflineLeasePeriod(40); 
        abstractPolicy.setTracked(true); 
                    
        //Set the validity period to 40 days 
        ValidityPeriod validityPeriod = InfomodelObjectFactory.createValidityPeriod(); 
        validityPeriod.setRelativeExpirationDays(40); 
        abstractPolicy.setValidityPeriod(validityPeriod); 
        
        abstractPolicyManager.updateAbstractPolicy(abstractPolicy); 
        
        System.out.println("The Abstract Policy was updated:" + abstractPolicy.getName()); 
                
        } 
        catch (Exception ex) { 
            ex.printStackTrace(); 
        } 
    } 
}

// Ethnio survey code removed