To update a policy by using the Java API, perform the following steps:
Set up your development environment and include all of the JAR files mentioned in Setting up the development environment within your project.
Create a Policy
instance and read in the policy from a file or database.
Policy policy = new Policy(policyBytes);
Update the Policy
object by setting its properties, such as its name and usage rules.
// Change the policy name.
policy.setName("UpdatedDemoPolicy");
// Add DRM module restrictions to the play right
for (Right r: policy.getRights()) {
if (r instanceof PlayRight) {
PlayRight pr = (PlayRight) r;
// Disallow Linux versions up to and including 1.9. Allow
// all other OSes and Linux versions above 1.9
VersionInfo toExclude = new VersionInfo();
toExclude.setOS("Linux");
toExclude.setReleaseVersion("1.9");
Collection<VersionInfo> exclusions = new ArrayList<VersionInfo>();
exclusions.add(toExclude);
ModuleRequirements drmRestrictions = new ModuleRequirements();
drmRestrictions.setExcludedVersions(exclusions);
pr.setDRMModuleRequirements(drmRestrictions);
break;
}
}
Serialize the updated Policy
object and store it in a file or database.
// Serialize the policy.
byte[] policyBytes = policy.getBytes();
System.out.println("New policy revision number: "
+ policy.getRevision());
// Write the policy to a file.
// Alternatively, the policy may be stored in a database.
FileOutputStream out = new FileOutputStream("demopolicy-updated.pol");
out.write(policyBytes);
out.close();
For the full source of this sample code, see com.adobe.flashaccess.samples.policy.UpdatePolicy
in the Reference Implementation Command Line Tools “samples” directory.