Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## tle.framework.component.impl.rp
Class DefaultRequestProcessor

    java.lang.Object
      tle.framework.component.impl.ComponentBase
          tle.framework.component.impl.rp.DefaultRequestProcessor

All Implemented Interfaces:
  Component, ComponentMBean, DefaultRequestProcessorMBean, RequestProcessor

public class DefaultRequestProcessor
extends ComponentBase
implements RequestProcessor, DefaultRequestProcessorMBean

RequestProcessor의 기본 구현체.

TLEFramework의 초기 설정 파일의 "configFile" 초기화 파라미터로 명시한 파일로부터 초기 설정 정보를 읽어온다. 만약 "configFile" 초기화 프로퍼티를 명시하지 않았을 경우에는 사용자 홈 디렉토리의 "DefaultRequestProcessor.xml" 파일을 사용한다.

Since:
  2.0
Author:
  최범균

Field Summary

Fields inherited from class tle.framework.component.impl.ComponentBase
`componentState, config`

Constructor Summary
`DefaultRequestProcessor()`

Method Summary
`java.lang.String` | `getConfigFilePath()` 설정 파일의 경로를 리턴한다.
`java.lang.String[]` | `getHandlerIndependentClassPath()` 독립적인 클래스 패스를 사용해서 핸들러 클래스를 읽어올 경우 사용하는 클래스 패스를 리턴한다.
`protected void` | `initing(ComponentConfig config)` 설정 파일로부터 정보를 읽어와 CommandHandlerFactory를 생성한다.
`boolean` | `isUsingHandlerIndependentClassPath()` 클라이언트의 요청을 처리하는 핸들러 클래스가 독립적인 클래스 패스에 존재할 경우 true를 리턴한다.
`Result` | `process(RequestInfo ri)` 명령어를 처리하는 CommandHandler를 사용하여 클라이언트의 요청을 처리한 뒤 그 결과인 DefaultResult를 리턴한다.
`void` | `reloadConfiguration()` 설정 파일을 리로딩한다.
`void` | `reloadHandlerClasses()` 핸들러 클래스를 위한 독립적인 클래스 패스를 사용하는 경우, CommandHandlerFactory.reloadHandlerClasses() 메소드를 호출한다.

Methods inherited from class tle.framework.component.impl.ComponentBase
`close, closing, getDescription, getID, getState, init, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, resuming, start, starting, stop, stopping, suspend, suspending`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface tle.framework.component.Component
`close, getID, init, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, start, stop, suspend`

Methods inherited from interface tle.framework.component.ComponentMBean
`getDescription, getID, getState`

Constructor Detail

### DefaultRequestProcessor

    public DefaultRequestProcessor()

Method Detail

### getConfigFilePath

    public java.lang.String getConfigFilePath()

  Description copied from interface: `DefaultRequestProcessorMBean`
  설정 파일의 경로를 리턴한다.

  Specified by:
    `getConfigFilePath` in interface `DefaultRequestProcessorMBean`
  Returns:
    설정 파일 경로
  See Also:
    `DefaultRequestProcessorMBean.getConfigFilePath()`

### isUsingHandlerIndependentClassPath

    public boolean isUsingHandlerIndependentClassPath()

  Description copied from interface: `DefaultRequestProcessorMBean`
  클라이언트의 요청을 처리하는 핸들러 클래스가 독립적인 클래스 패스에 존재할 경우 true를 리턴한다.

  Specified by:
    `isUsingHandlerIndependentClassPath` in interface `DefaultRequestProcessorMBean`
  Returns:
    독립적인 클래스 패스를 사용할 경우 true
  See Also:
    `DefaultRequestProcessorMBean.isUsingHandlerIndependentClassPath()`

### getHandlerIndependentClassPath

    public java.lang.String[] getHandlerIndependentClassPath()

  Description copied from interface: `DefaultRequestProcessorMBean`
  독립적인 클래스 패스를 사용해서 핸들러 클래스를 읽어올 경우 사용하는 클래스 패스를 리턴한다.

  Specified by:
    `getHandlerIndependentClassPath` in interface `DefaultRequestProcessorMBean`
  Returns:
    독립적으로 사용하는 핸들러 클래스들의 클래스 패스
  See Also:
    `DefaultRequestProcessorMBean.getHandlerIndependentClassPath()`

### reloadHandlerClasses

    public void reloadHandlerClasses()

  핸들러 클래스를 위한 독립적인 클래스 패스를 사용하는 경우, CommandHandlerFactory.reloadHandlerClasses() 메소드를 호출한다.

  Specified by:
    `reloadHandlerClasses` in interface `DefaultRequestProcessorMBean`
  Throws:
    `java.lang.UnsupportedOperationException` - 독립적인 클래스 패스를 사용하지 않는 걸로 설정되어 있는 경우 발생한다.
  See Also:
    `DefaultRequestProcessorMBean.reloadHandlerClasses()`

### reloadConfiguration

    public void reloadConfiguration()
                             throws ComponentException

  설정 파일을 리로딩한다.

  핸들러 클래스 목록을 다시 생성하고 명령어와 핸들러 사이의 매핑 정보도 다시 생성한다.

  Specified by:
    `reloadConfiguration` in interface `DefaultRequestProcessorMBean`
  Throws:
    `ComponentException`
  See Also:
    `DefaultRequestProcessorMBean.reloadConfiguration()`

### initing

    protected void initing(ComponentConfig config)
                    throws ComponentException

  설정 파일로부터 정보를 읽어와 CommandHandlerFactory를 생성한다.

  설정 파일의 경로는 configFile 초기화 파라미터로부터 가져온다.

  Overrides:
    `initing` in class `ComponentBase`
  Parameters:
    `config` - 컴포넌트 초기화 설정 정보를 담고 있는 객체
  Throws:
    `ComponentException`
  See Also:
    `ComponentBase.initing(tle.framework.component.ComponentConfig)`

### process

    public Result process(RequestInfo ri)
                   throws ComponentException

  명령어를 처리하는 CommandHandler를 사용하여 클라이언트의 요청을 처리한 뒤 그 결과인 DefaultResult를 리턴한다.

  CommandHandler는 가급적이면 process() 메소드에서 클라이언트의 요청을 처리하는 과정에서 발생한 예외의 경우 리턴하는 Result에 명시해주어야 하며 예외를 발생시키면 안 된다.

  Specified by:
    `process` in interface `RequestProcessor`
  Parameters:
    `ri` - 요청 분석 정보
  Returns:
    처리 결과
  Throws:
    `ComponentException` - 명령어 ID에 해당하는 CommandHandler가 NoHandlerCommandHandler인 경우에 발생한다.
  See Also:
    `RequestProcessor.process(tle.framework.component.spi.ra.RequestInfo)`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD