策略管理器样本

您可以使用样本策略管理器来创建定制复审策略。 有关创建策略的指示信息,请参阅使用定制策略复审 API 来创建定制策略
您可以在 WebServerPath/extensionExamples/customPolicyGovernor/SampleGovernor.jar 中的样本策略管理器中找到定制策略示例,其中 WebServerPathRational® Asset Manager 存储库的 Web 服务器路径。
策略 Java 归档文件 CustomPolicyAPI.jar 位于同一文件夹中。其特定位置为 WebServerPath/extensionExamples/customPolicyGovernor/CustomPolicyAPI.jar
package com.ibm.ram.extension.demo.policy;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import com.ibm.ram.extension.PolicyGovernor;
import com.ibm.ram.policy.AssetPolicy;
import com.ibm.ram.policy.Policy;

要将管理器映射到 Rational Asset Manager,请参阅定义外部策略管理器

以下代码是样本 Rational Asset Manager 策略管理器:
public class MyGovernor extends PolicyGovernor {
注: 策略存储在映射中。要从映射中检索策略,请在 getPolicies().get(id) 方法中输入策略标识。

以下代码返回策略控制器中可用的所有资产策略的列表:

public AssetPolicy[] getAssetPolicies() { 		
	Collection policiesCollection = getPolicies().values(); 		 		
	AssetPolicy[] policies = (AssetPolicy[])policiesCollection.toArray(new
	AssetPolicy[policiesCollection.size()]);
	return policies; 
}

以下方法返回策略控制器的显示名称:

public String getDescription() {
 	return "A sample governor with a few policies.";
}

以下方法通过使用策略标识来返回单个策略:

public Policy getPolicy(String id) {
 	return (Policy)getPolicies().get(id);
}

以下方法返回专用策略存储。此返回值是列出了控制器中定义的所有可用策略的数组。这些策略存储在映射中;您可以通过使用 getPolicies().get(id) 方法来检索这些策略。

private Map getPolicies(){
 	if(policies == null){
 		initPolicies();
 	}
	return policies; 
}

控制器由以下策略组成:

//Policy = Set up policy store
private synchronized void initPolicies(){
 	policies = new HashMap();

//Policy = My XML Policy
Policy policy = new MyPolicy(this);
 	policies.put(policy.getID(), policy);

//Policy = Odd MinutePolicy
policy = new OddMinutePolicy(this);
 	policies.put(policy.getID(), policy);

//Policy = Asset Level Messages Policy
policy = new AssetMessagesPolicy(this);
 	policies.put(policy.getID(), policy);

//Policy = Artifact Level Messages Policy
policy = new ArtifactMessagesPolicy(this);
 	policies.put(policy.getID(), policy);

//WS-I WSDL Policy
policy = new WSIPolicy(this);
 	policies.put(policy.getID(), policy); 	
}

反馈