kr.co.hit.live.container.impl
Class ReloadableXmlServiceContainer

java.lang.Object
  extended by kr.co.hit.live.container.impl.XmlConfiguredServiceContainer
      extended by kr.co.hit.live.container.impl.ReloadableXmlServiceContainer
All Implemented Interfaces:
EventListener, ServiceContainer, FileWatchdogListener

public class ReloadableXmlServiceContainer
extends XmlConfiguredServiceContainer
implements FileWatchdogListener

Hot deploy 가 가능한 ServiceContainer의 구현 클래스이다. 내부적으로 별도의 URLClassLoader를 생성하여 이로부터 EnlistedServiceContainer 객체를 생성하여 사용한다. reload() 메소드가 호출되면 새로운 URLClassLoader와 이를 사용한 EnlistedServiceContainer 객체를 다시 생성하는 방식으로 Hot deploy 기능을 구현한다.

Since:
5.0
Author:
kimhd

Field Summary
 
Fields inherited from class kr.co.hit.live.container.impl.XmlConfiguredServiceContainer
containerName, svcContainer
 
Constructor Summary
ReloadableXmlServiceContainer()
          live 설정 파일의 디폴트 설정값을 기준으로 컨테이너 객체를 생성하는 디폴트 생성자이다.
ReloadableXmlServiceContainer(String containerName)
          live 설정 파일에서 주어진 이름의 설정값을 기준으로 컨테이너 객체를 생성한다.
ReloadableXmlServiceContainer(String svcDir, String[] patterns)
           
 
Method Summary
 void addPostProcessor(ServicePostProcessor postProcessor)
          서비스 객체 생성후 후처리를 진행할 ServicePostProcessor 객체를 등록한다.
protected  ServiceContainer buildContainer(String svcDir, String[] patterns)
          서비스 설정파일 디렉토리와 설정 파일 패턴 목록을 사용하여 서비스 컨테이너를 생성한다.
 boolean checkRetry()
           
 void close()
          컨테이너를 종료한다.
 void fileChanged()
           
 void populateServices()
          pre-init, singleton, activate 속성이 모두 true 인 서비스들을 미리 생성한다.
 void reload()
          서비스 객체들을 다시 생성한다.
protected  void runReloader()
           
 
Methods inherited from class kr.co.hit.live.container.impl.XmlConfiguredServiceContainer
buildContainer, buildServiceRegistry, containsService, getAllServiceNames, getClassLoader, getPatternServiceNames, getService, getServiceInfo, getServiceInfo, getServicesOfType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReloadableXmlServiceContainer

public ReloadableXmlServiceContainer()
live 설정 파일의 디폴트 설정값을 기준으로 컨테이너 객체를 생성하는 디폴트 생성자이다.


ReloadableXmlServiceContainer

public ReloadableXmlServiceContainer(String containerName)
live 설정 파일에서 주어진 이름의 설정값을 기준으로 컨테이너 객체를 생성한다.

Parameters:
containerName -

ReloadableXmlServiceContainer

public ReloadableXmlServiceContainer(String svcDir,
                                     String[] patterns)
Method Detail

runReloader

protected void runReloader()

buildContainer

protected ServiceContainer buildContainer(String svcDir,
                                          String[] patterns)
Description copied from class: XmlConfiguredServiceContainer
서비스 설정파일 디렉토리와 설정 파일 패턴 목록을 사용하여 서비스 컨테이너를 생성한다.

Overrides:
buildContainer in class XmlConfiguredServiceContainer

reload

public void reload()
Description copied from interface: ServiceContainer
서비스 객체들을 다시 생성한다.

Specified by:
reload in interface ServiceContainer
Overrides:
reload in class XmlConfiguredServiceContainer

close

public void close()
Description copied from interface: ServiceContainer
컨테이너를 종료한다. 필요한 리소스를 반환하고 서비스들을 제거하는 작업들을 수행한다.

Specified by:
close in interface ServiceContainer
Overrides:
close in class XmlConfiguredServiceContainer

addPostProcessor

public void addPostProcessor(ServicePostProcessor postProcessor)
Description copied from interface: ServiceContainer
서비스 객체 생성후 후처리를 진행할 ServicePostProcessor 객체를 등록한다.

Specified by:
addPostProcessor in interface ServiceContainer
Overrides:
addPostProcessor in class XmlConfiguredServiceContainer

populateServices

public void populateServices()
Description copied from interface: ServiceContainer
pre-init, singleton, activate 속성이 모두 true 인 서비스들을 미리 생성한다.

Specified by:
populateServices in interface ServiceContainer
Overrides:
populateServices in class XmlConfiguredServiceContainer

fileChanged

public void fileChanged()
Specified by:
fileChanged in interface FileWatchdogListener

checkRetry

public boolean checkRetry()
Specified by:
checkRetry in interface FileWatchdogListener


Copyright © 2014. All Rights Reserved.