examples.wslauncher3
Class DelegationServiceImpl

java.lang.Object
  extended byde.fhg.igd.semoa.service.AbstractService
      extended byexamples.wslauncher3.DelegationServiceImpl
All Implemented Interfaces:
DelegationService, Service

public class DelegationServiceImpl
extends AbstractService
implements DelegationService

This service launches an agent via webservice. Publish -class examples.wslauncher3.DelegationServiceImpl -key ${WhatIs:DELEGATION_SERVICE}

Version:
$Id: DelegationServiceImpl.java 1913 2007-08-08 02:41:53Z jpeters $
Author:
C. Nickel

Nested Class Summary
private  class DelegationServiceImpl.PrivilegedLaunchAction
          This action launches the agent.
 
Field Summary
private static String ADDITIONAL_EXCLUDES
          Additional package prefixes which shall not be imported into the agent
private static String AGENT_
          The class of the agent which shall be launched
private static Logger log_
          The Logger instance for this class
private  Map syncmap_
          The syncmap_ is needed to coordinate the webservices and the agents.
private  long TIMEOUT
          Timeout for each thread to wait for the agent's return.
private static int TOKEN_LENGTH
          Length of the token which is used to synchronize agent and webservice.
 
Fields inherited from class de.fhg.igd.semoa.service.AbstractService
REV_POSTFIX, REV_PREFIX
 
Fields inherited from interface examples.wslauncher3.DelegationService
WHATIS
 
Constructor Summary
DelegationServiceImpl()
          Constructor
 
Method Summary
 String author()
          Returns the name of the author of the service.
 String delegate(String wsurl, String method, Object[] params)
          This method generates a token and stores it in the agent's properties as well as in the syncmap_.
 String info()
          Returns the informative string which should describe the service's essence in a sentence.
 void response(String answ, String token)
          Checks if the token is a key in the syncmap.
 String revision()
          Returns the revision number of this class as a string.
 
Methods inherited from class de.fhg.igd.semoa.service.AbstractService
checkDependencies, dependencies, docs, doPrivileged, doPrivileged, getACC, getEnvironment, majorVersion, minorVersion, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log_

private static Logger log_
The Logger instance for this class


TOKEN_LENGTH

private static int TOKEN_LENGTH
Length of the token which is used to synchronize agent and webservice. The token is a random string.


AGENT_

private static String AGENT_
The class of the agent which shall be launched


ADDITIONAL_EXCLUDES

private static String ADDITIONAL_EXCLUDES
Additional package prefixes which shall not be imported into the agent


TIMEOUT

private long TIMEOUT
Timeout for each thread to wait for the agent's return.


syncmap_

private Map syncmap_
The syncmap_ is needed to coordinate the webservices and the agents. When several webservices are running it ensures that the agent gives his response to the right one. The keys in the syncmap_ are the different tokens which are also stored in the properties of the agent. The values are the answers reported by the agents.

Constructor Detail

DelegationServiceImpl

public DelegationServiceImpl()
Constructor

Method Detail

delegate

public String delegate(String wsurl,
                       String method,
                       Object[] params)
This method generates a token and stores it in the agent's properties as well as in the syncmap_. It launches the agent named in AGENT_. DelegationService and agent are synchronized via the token.

Specified by:
delegate in interface DelegationService
Parameters:
wsurl - the url of the webservice
method - the method to invoke at the webservice
Returns:
answ the answer given by the AGENT_
See Also:
DelegationService.delegate(String, String, Object[])

response

public void response(String answ,
                     String token)
Checks if the token is a key in the syncmap. The method then stores the answer under this key and notifies the waiting delegation service.

Specified by:
response in interface DelegationService
Parameters:
answ - answer from the agent2
token - token for the synchronization of Agent2 and the delegation service
See Also:
DelegationService.response(String, String)

info

public String info()
Description copied from class: AbstractService
Returns the informative string which should describe the service's essence in a sentence.

Specified by:
info in interface Service
Specified by:
info in class AbstractService
Returns:
the String with the service's short description.

author

public String author()
Description copied from class: AbstractService
Returns the name of the author of the service. The format to be used should be John Doe <jdoe@zilch.net>.

Specified by:
author in interface Service
Specified by:
author in class AbstractService
Returns:
the String with the author's name.

revision

public String revision()
Description copied from class: AbstractService
Returns the revision number of this class as a string. This class provides default implementations of methods majorVersion(), minorVersion based on the assumption that this method returns a revision string as generated by rcs(1) for the template "$Revision: 1.7 $/$Date: 2007-08-08 04:41:53 +0200 (Wed, 08 Aug 2007) $".

Specified by:
revision in class AbstractService


Copyright © Fraunhofer Gesellschaft. All Rights Reserved.