/********************************************************* begin of preamble
**
** Copyright (C) 2003-2010 Software- und Organisations-Service GmbH.
** All rights reserved.
**
** This file may be used under the terms of either the
**
** GNU General Public License version 2.0 (GPL)
**
** as published by the Free Software Foundation
** http://www.gnu.org/licenses/gpl-2.0.txt and appearing in the file
** LICENSE.GPL included in the packaging of this file.
**
** or the
**
** Agreement for Purchase and Licensing
**
** as offered by Software- und Organisations-Service GmbH
** in the respective terms of supply that ship with this file.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
** BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
** POSSIBILITY OF SUCH DAMAGE.
********************************************************** end of preamble*/
package sos.scheduler.job;
import java.util.HashMap;
import com.sos.DataExchange.SOSDataExchangeEngine;
import com.sos.VirtualFileSystem.FTP.SOSFTPOptions;
/**
* \file SOSDExJSAdapterClass.java
* \class SOSDExJSAdapterClass
*
* \brief
* AdapterClass of SOSDEx for the SOSJobScheduler
*
* This Class SOSDExJSAdapterClass works as an adapter-class between the SOS
* JobScheduler and the worker-class SOSDEx.
*
*
* see \see J:\E\java\development\com.sos.scheduler\src\sos\scheduler\jobdoc\SOSDEx.xml for more details.
*
* \verbatim ;
* mechanicaly created by C:\Users\KB\eclipse\xsl\JSJobDoc2JSAdapterClass.xsl from http://www.sos-berlin.com at 20100930175652
* \endverbatim
*/
public class SOSDExJSAdapterClass extends JobSchedulerJobAdapter {
private final String conClassName = "SOSDExJSAdapterClass"; //$NON-NLS-1$
// private static Logger logger =
// Logger.getLogger(SOSDExJSAdapterClass.class);
public void init() {
@SuppressWarnings("unused")//$NON-NLS-1$
final String conMethodName = conClassName + "::init"; //$NON-NLS-1$
doInitialize();
}
private void doInitialize() {
} // doInitialize
@Override
public boolean spooler_init() {
@SuppressWarnings("unused")//$NON-NLS-1$
final String conMethodName = conClassName + "::spooler_init"; //$NON-NLS-1$
return super.spooler_init();
}
@Override
public boolean spooler_process() throws Exception {
@SuppressWarnings("unused")//$NON-NLS-1$
final String conMethodName = conClassName + "::spooler_process"; //$NON-NLS-1$
try {
super.spooler_process();
doProcessing();
}
catch (Exception e) {
e.printStackTrace();
logger.error(String.format("%1$s ended abnormal.", conClassName));
logger.error(StackTrace2String(e));
return false;
}
finally {
} // finally
// return value for classic and order driven processing
// TODO create method in base-class for this functionality
return (spooler_task.job().order_queue() != null);
} // spooler_process
@Override
public void spooler_exit() {
@SuppressWarnings("unused")//$NON-NLS-1$
final String conMethodName = conClassName + "::spooler_exit"; //$NON-NLS-1$
super.spooler_exit();
}
private void doProcessing() throws Exception {
final String conMethodName = conClassName + "::doProcessing"; //$NON-NLS-1$
SOSDataExchangeEngine objR = new SOSDataExchangeEngine();
SOSFTPOptions objO = objR.Options();
objO.CurrentNodeName(getCurrentNodeName());
HashMap<String, String> hsmParameters = getSchedulerParameterAsProperties(getParameters());
objO.setAllOptions(DeletePrefix(hsmParameters, "ftp_"));
objO.CheckMandatory();
int intLogLevel = spooler_log.level();
if (intLogLevel < 0) {
logger.debug(objO.toString());
}
logger.info(String.format("%1$s with operation %2$s started.", conMethodName, objO.operation.Value()));
objR.setJSJobUtilites(this);
objR.Execute();
objR.Logout();
logger.info(String.format("%1$s with operation %2$s ended.", conMethodName, objO.operation.Value()));
} // doProcessing
}