프로그래밍을 통한 애플리케이션 관리 조작 확장
공통 전개 프레임워크를 사용하여 애플리케이션 관리 조작에 로직을 더 추가할 수 있습니다. 추가 로직은 코드 생성, 구성 조작, 추가 유효성 검증 등과 같은 태스크를 수행할 수 있습니다. 이 주제는 프로그래밍을 통해 공통 전개 프레임워크에 플러그인하여 애플리케이션 관리 조작을 확장하는 방법을 보여줍니다.
시작하기 전에
이 태스크에서는 Java™ API(Application Programming Interface)에 대한 기본 사항을 알고 있는 것으로 가정합니다. API(Application Programming Interface) 문서에서 Java API에 대해 읽어 보십시오.
애플리케이션 관리 조작을 확장하려면 먼저 WebSphere® Application Server를 설치해야 합니다.
이 태스크 정보
이 예제를 사용하여 프로그래밍을 통한 애플리케이션 관리를 확장하십시오. 확장으로 제공되는 태스크는 모든 관리 클라이언트(예: wsadmin 도구), 관리 콘솔 또는 AppManagement MBean이 제공하는 프로그램 방식 API를 통해 사용할 수 있습니다.
프로시저
- 해당 확장을 Eclipse 플러그인으로 정의하고 plugin.xml
파일을 추가하여 배치 프레임워크에 확장 제공자를 등록하십시오.
- plugin.xml 파일에서 공통-배치-프레임워크-확장 제공자 확장점에 대한 확장 제공자 구현 클래스를 제공하십시오.
- WebSphere Application Server 설치의 plugins 디렉토리에 플러그인 JAR(Java Archive) 파일을 배치하십시오.
<?xml version="1.0" encoding="UTF-8"?> <plugin id=“com.ibm.myproduct.MyExtensionProvider” name=“My Extension" version="1.0.0"> <extension point=“common-deployment-framework-extensionprovider”> <action class=“com.acme.MyExtendProviderImpl“/> </extension> </plugin>
- 확장 제공자를 제공하십시오.
확장자 프로바이더 클래스는 애플리케이션 엔터프라이즈 아카이브(EAR) 파일에 대한 특정 조작 단계를 제공합니다. 조작이 실행되기 전에, 전개 프레임워크는 등록된 모든 확장자 프로바이더에서 추가 단계를 조회합니다. 각 프로바이더에게는 단일 단계 목록이 전달됩니다. 각 프로바이더는 목록에 단계를 추가할 수 있습니다. 전개 프레임워크가 제공하는 기본 프로바이더가 호출되면 먼저 해당 목록을 기본 단계로 채웁니다. 다른 확장자 프로바이더는 다음에 호출됩니다.
공통 전개 프레임워크를 통해 확장할 수 있는 다양한 조작은 DeploymentConstants 클래스에서 상수로 정의됩니다. 이 조작은 다음 표에서 설명됩니다. 일부 조작은 인쇄를 위해 여러 줄로 표시됩니다.표 1. 확장 가능한 DeploymentConstants 조작. 확장할 조작을 선택하십시오. 조작 설명 DeploymentConstants.CDF_OP_INSTALLJ2EE Java EE(Java Platform, Enterprise Edition) EAR 파일을 설치합니다. DeploymentConstants.CDF_OP_EDITJ2EE 배치 애플리케이션 구성을 편집하십시오. DeploymentConstants.CDF_OP_UPDATEJ2EE 세분화된 업데이트사항을 애플리케이션에 적용합니다(예: 파일 또는 모듈의 추가, 제거 또는 업데이트이나 애플리케이션의 부분 업데이트). DeploymentConstants.CDF_OP_UNINSTALLJ2EE Java EE 애플리케이션을 설치 제거합니다. DeploymentConstants. CDF_OP_CREATE_EAR_WRAPPERJ2EE
애플리케이션 설치에 대한 컨텐츠 입력을 EAR 파일에 랩핑합니다. AppManagement MBean은 WebSphere Application Server의 Java EE 애플리케이션을 전개하고 관리하며, CDF_OP_CREATE_EAR_WRAPPERJ2EE 조작을 제외한 모든 조작을 실행합니다. 이러한 조작을 확장하는 확장자를 배치 관리자의 plugins 디렉토리에 전개하십시오.
wsadmin 유틸리티 또는 관리 콘솔은 CDF_OP_INSTALLJ2EE 조작에 적용되는 입력 컨텐츠가 EAR 파일로서 패키지화되지 않는 경우 CDF_OP_CREATE_EAR_WRAPPERJ2EE 조작을 실행합니다. CDF_OP_CREATE_EAR_WRAPPERJ2EE 조작을 확장하는 확장자를 wsadmin 설치의 plugins 디렉토리에 전개하십시오.
다음 예제는 다음 태스크를 수행하는 확장자 프로바이더를 제공합니다.- 애플리케이션 설치 조작에 대한 두 가지 단계를 더 추가합니다.
- 입력 컨텐츠를 EAR 파일에 랩핑하는 하나의 단계를 추가합니다.
package com.acme; import com.ibm.websphere.management.deployment.registry.ExtensionProvider; import com.ibm.websphere.management.deployment.core.DeploymentConstants; public class MyExtensionProviderImpl extends ExtensionProvider { public void addSteps (String type, String op, String phase, List steps) { if (op.equals (DeploymentConstants.CDF_OP_INSTALLJ2EE)) { // Add a code generation step. steps.add (0, new com.acme.CodeGenStep()); // Add a configuration step. steps.add (new com.acme.ConfigStep()); } else if (op.equals (DeploymentConstants.CDF_OP_CREATE_EAR_WRAPPERJ2EE)) { // Add an ear-wrapper step. steps.add (new com.acme.EarWrapperStep()); } } }
- 배치 단계 구현을 제공하십시오.
확장자 프로바이더는 전개 단계를 추가합니다. 이 단계에는 애플리케이션 관리 조작에서 추가 처리를 수행하는 로직이 포함됩니다. 이 로직은 전개 컨텍스트 및 전개 가능한 오브젝트에 대한 단계 액세스 권한을 제공합니다. 전개 컨텍스트는 조작 이름, 구성 세션 ID, 임시 파일 작성을 위한 임시 위치, 조작 매개변수 등과 같은 정보를 제공합니다. 배치 가능한 오브젝트는 배치 컨텐츠 입력을 조작에 랩핑합니다. 예를 들어, 전개 가능한 오브젝트는 설치 조작 또는 파일, 모듈에 대한 Java EE EAR 파일 또는 업데이트 조작에 대한 부분 적용을 랩핑합니다.
- 다음 예제는 설치 시 확장이 설치 조작에 대한 입력인 EAR 파일을 완전히 변경하는 방법을 보여 줍니다. 이 예제는 다음 태스크를 수행하는 설치 조작 중 전개 단계를 제공합니다.
- 코드 생성을 실행하여 새 EAR 파일을 생성합니다.
- DeployableObject 클래스의 setContentPath 메소드를 호출하여 새 EAR 파일 경로를 설정합니다. 기본 설치 로직(예를 들어, 기본 설치 로직이 추가하는 단계)은 구성 저장소의 설치를 위해 이 새 EAR 파일을 사용합니다.
package com.acme; import com.ibm.websphere.management.deployment.core.DeploymentStep; import com.ibm.websphere.management.deployment.core.DeployableObject; public class CodeGenStep extends DeploymentStep { public void execute (DeployableObject dObject) { EARFile earFile = (EARFile)dObject.getHandle(); String newEARPath = null; // Use step specific logic to create another EAR file after code generation. … newEARPath = _context.getTempDir() + "new.ear"; dObject.setContentPath (newEARPath); } }
- 다음 예제는 다음과 같은 배치 단계를 제공합니다.
- 입력 EAR 파일의 컨텐츠를 읽으십시오.
- 컨텍스트 인스턴스, _context를 통해 액세스하는 구성 세션을 조작합니다.
package com.acme; public class ConfigStep extends DeploymentStep { public void execute (DeployableObject dObject) { EARFile earFile = (EARFile)dObject.getHandle(); // Use the following example code to perform the configuration. String sessionID = _context.getSessionID(); com.ibm.websphere.management.Session session = new com.ibm.websphere.management.Session (sessionID, true); // Use the configuration service to perform the configuration steps. … // Read the application configuration. Application appDD = earFile.getDeploymentDescriptor(); … String newEARPath = null; } }
다음 예제는 임의의 컨텐츠를 EAR 파일에 랩핑하는 배치 단계를 제공합니다. 애플리케이션 관리 로직은 배치할 EAR 파일만 허용합니다. EAR 파일 이외의 요소를 배치 프로세스에 입력하려면 확장이 필요합니다.
package com.acme; import com.ibm.websphere.management.deployment.core.DeploymentStep; import com.ibm.websphere.management.deployment.core.DeployableObject; public class EarWrapperStep extends DeploymentStep { public void execute (DeployableObject dObject) { Archive archive = (Archive) dObject.getHandle(); String newEARPath = null; // provide your logic to wrap the jar with the ear … newEARPath = //; // Set the new ear path back into DeploymentContext this.getContext().getContextData() .put(DeploymentContext.RETURN_Object_key, newEARPath); } }
결과
애플리케이션 관리 조작을 확장하기 위해 프로그래밍을 통해 공통 배치 프레임워크를 플러그인했습니다.
다음에 수행할 작업
다른 애플리케이션 관리 조작을 확장하거나 다른 관리 조작을 선택하여 수행할 수 있습니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_cdf
파일 이름:tjmx_cdf.html