com.poscoict.glueframework.scheduling.server
Class GlueServerHandler

java.lang.Object
  extended by org.apache.mina.common.IoHandlerAdapter
      extended by com.poscoict.glueframework.scheduling.server.GlueServerHandler
All Implemented Interfaces:
org.apache.mina.common.IoHandler

public class GlueServerHandler
extends org.apache.mina.common.IoHandlerAdapter

GlueSchedulerHttpServer가 받은 Request 정보를 기반으로 Job을 처리하는 핸들러 클래스.


Field Summary
static int DEFAULT_IDLE_TIME
          디폴트 세션 Idle 시간 (단위, 초)
protected static String PARAM_HEADER
          Job Parameter Header
 
Constructor Summary
GlueServerHandler()
           
GlueServerHandler(GlueJobEventReceiver jobEvent)
           
 
Method Summary
protected  GlueJobDefinition createJobDefinition(GlueHttpRequestMessage message)
          GlueHttpRequestMessage로부터 Job Definition을 생성한다. - JobName, RequestId, ClientIp - Job Parameters 정보 설정
 void exceptionCaught(org.apache.mina.common.IoSession session, Throwable cause)
           
protected  String executeJob(GlueJobDefinition jobdef)
          해당 Scheduled Job을 기동한다.
protected  void loggingRequestMessage(org.apache.mina.common.IoSession session, Object message)
          IoSession 정보와 GlueHttpRequestMessage 정보를 로깅한다.
 void messageReceived(org.apache.mina.common.IoSession session, Object message)
          GlueGlueSchedulerHttpServer가 메시지(HttpRequest)를 받을 때 호출되는 callback 메소드.
 void sessionIdle(org.apache.mina.common.IoSession session, org.apache.mina.common.IdleStatus status)
           
 void sessionOpened(org.apache.mina.common.IoSession session)
          세션 오픈 시 callback 메소드.
 void setJobEvent(GlueJobEventReceiver jobEvent)
           
 
Methods inherited from class org.apache.mina.common.IoHandlerAdapter
messageSent, sessionClosed, sessionCreated
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_IDLE_TIME

public static final int DEFAULT_IDLE_TIME
디폴트 세션 Idle 시간 (단위, 초)

See Also:
Constant Field Values

PARAM_HEADER

protected static final String PARAM_HEADER
Job Parameter Header

See Also:
Constant Field Values
Constructor Detail

GlueServerHandler

public GlueServerHandler()

GlueServerHandler

public GlueServerHandler(GlueJobEventReceiver jobEvent)
Method Detail

sessionOpened

public void sessionOpened(org.apache.mina.common.IoSession session)
세션 오픈 시 callback 메소드. 세션 IDEL 시간을 설정한다. (디폴트 1분)

Specified by:
sessionOpened in interface org.apache.mina.common.IoHandler
Overrides:
sessionOpened in class org.apache.mina.common.IoHandlerAdapter
Parameters:
session - IoSession

loggingRequestMessage

protected void loggingRequestMessage(org.apache.mina.common.IoSession session,
                                     Object message)
IoSession 정보와 GlueHttpRequestMessage 정보를 로깅한다. (디버그 레벨인 경우만)

Parameters:
session - IoSession
message - GlueHttpRequestMessage

executeJob

protected String executeJob(GlueJobDefinition jobdef)
해당 Scheduled Job을 기동한다.

Parameters:
jobdef - Job Definition 정보
Returns:
성공 시 "success"

createJobDefinition

protected GlueJobDefinition createJobDefinition(GlueHttpRequestMessage message)
GlueHttpRequestMessage로부터 Job Definition을 생성한다. - JobName, RequestId, ClientIp - Job Parameters 정보 설정

Parameters:
message - GlueHttpRequestMessage
Returns:
생성된 JobDefinition

messageReceived

public void messageReceived(org.apache.mina.common.IoSession session,
                            Object message)
GlueGlueSchedulerHttpServer가 메시지(HttpRequest)를 받을 때 호출되는 callback 메소드. 메시지로부터 JobDefinition을 생성한 후 JobEventReicever를 이용하여 해당 Scheduled Job을 기동한다. Job 실행 등록이 정상적으로 이루어지면 Response에 "success"가 설정되고 StatusCode는 GlueHttpResponseMessage.STATUS_JOB_SUCCESS 값(700)이 설정된다. 반대로 등록에 실패하면 "failure"가 설정되고 StatusCode는 GlueHttpResponseMessage.STATUS_JOB_ERROR 값(800)이 설정된다. TODO: job state 확인 후 해당 리턴 코드 응답하는 로직 추가 - catch GlueAlreadyCompletedJobException, GlueAlreadyRunningJobException

Specified by:
messageReceived in interface org.apache.mina.common.IoHandler
Overrides:
messageReceived in class org.apache.mina.common.IoHandlerAdapter
Parameters:
session - IoSession
message - GlueHttpRequestMessage

setJobEvent

public void setJobEvent(GlueJobEventReceiver jobEvent)

sessionIdle

public void sessionIdle(org.apache.mina.common.IoSession session,
                        org.apache.mina.common.IdleStatus status)
Specified by:
sessionIdle in interface org.apache.mina.common.IoHandler
Overrides:
sessionIdle in class org.apache.mina.common.IoHandlerAdapter

exceptionCaught

public void exceptionCaught(org.apache.mina.common.IoSession session,
                            Throwable cause)
Specified by:
exceptionCaught in interface org.apache.mina.common.IoHandler
Overrides:
exceptionCaught in class org.apache.mina.common.IoHandlerAdapter


Copyright © 2013–2014 POSCO ICT SW제품기술팀. All rights reserved.