001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.q2.iso; 020 021import org.jdom2.Element; 022import org.jpos.q2.QBeanSupport; 023import org.jpos.q2.QFactory; 024import org.jpos.util.Destroyable; 025import org.jpos.util.NameRegistrar; 026 027/** 028 * Task Adaptor 029 * 030 * @author Alejandro Revilla 031 * @version $Revision$ $Date$ 032 */ 033public class TaskAdaptor extends QBeanSupport { 034 Object task; 035 036 public TaskAdaptor () { 037 super (); 038 } 039 040 protected void initService () throws Exception { 041 QFactory factory = getServer().getFactory(); 042 Element e = getPersist (); 043 task = factory.newInstance (e.getChildTextTrim ("class")); 044 factory.setLogger (task, e); 045 } 046 protected void startService () throws Exception { 047 getServer().getFactory().setConfiguration(task, getPersist()); 048 NameRegistrar.register (getName (), task); 049 if (task instanceof Runnable) { 050 new Thread ((Runnable) task).start (); 051 } 052 } 053 protected void stopService () throws Exception { 054 NameRegistrar.unregister (getName ()); 055 if (task instanceof Destroyable) 056 ((Destroyable)task).destroy (); 057 } 058 public Object getObject () { 059 return task; 060 } 061} 062