정책 조정자 샘플

샘플 정책 조정자를 사용하여 사용자 정의 검토 정책을 작성할 수 있습니다. 정책 작성 지시사항은 사용자 정의 정책 검토 API를 사용하여 사용자 정의 정책 작성을 참조하십시오.
WebServerPath/extensionExamples/customPolicyGovernor/SampleGovernor.jar의 샘플 정책 조정자에서 사용자 정의 정책 예제를 찾을 수 있습니다. 여기서 WebServerPathRational® Asset Manager 저장소의 웹 서버 경로입니다.
정책 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) 메소드에 정책 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.";
}

다음 메소드는 해당 정책 ID를 사용하는 단일 정책을 리턴합니다.

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

다음 메소드는 개인용 정책 스토어를 리턴합니다. 이 리턴값은 조정자에 정의된 모든 사용 가능한 정책을 나열하는 배열입니다. 정책은 맵에 저장됩니다. getPolicies().get(id) 메소드를 사용하여 정책을 검색할 수 있습니다.

private Map getPolicies(){
 	if(policies == null){
 			query.setMaxResults(maxResults);
 	}
	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); 	
}

피드백