Search in sources :

Example 1 with MgmtListener

use of com.swiftmq.swiftlet.mgmt.event.MgmtListener in project swiftmq-ce by iitsoftware.

the class NetworkSwiftletImpl method startup.

@Override
protected void startup(Configuration config) throws SwiftletException {
    try {
        ctx = new SwiftletContext(config, this);
    } catch (Exception e) {
        throw new SwiftletException(e.getMessage());
    }
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "startup ...");
    setConnectionManager(new ConnectionManagerImpl(ctx));
    ivmScheduler = new IntraVMScheduler(ctx);
    ioScheduler = new NettyIOScheduler(ctx);
    Property prop = config.getProperty("reuse-serversockets");
    reuseServerSocket = (Boolean) prop.getValue();
    prop = config.getProperty("dns-resolve-enabled");
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            dnsResolve = (Boolean) newValue;
        }
    });
    dnsResolve = (Boolean) prop.getValue();
    prop = config.getProperty("zombi-connection-timeout");
    zombiConnectionTimeout = (Long) prop.getValue();
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            zombiConnectionTimeout = (Long) newValue;
        }
    });
    prop = config.getProperty("collect-interval");
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            collectInterval = (Long) newValue;
            collectChanged((Long) oldValue, collectInterval);
        }
    });
    collectInterval = (Long) prop.getValue();
    if (collectOn) {
        if (collectInterval > 0) {
            if (ctx.traceSpace.enabled)
                ctx.traceSpace.trace(getName(), "startup: registering byte count collector");
            ctx.timerSwiftlet.addTimerListener(collectInterval, this);
        } else if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace(getName(), "startup: collect interval <= 0; no byte count collector");
    }
    try {
        SwiftletManager.getInstance().addSwiftletManagerListener("sys$mgmt", new SwiftletManagerAdapter() {

            public void swiftletStarted(SwiftletManagerEvent evt) {
                try {
                    ctx.mgmtSwiftlet = (MgmtSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$mgmt");
                    if (ctx.traceSpace.enabled)
                        ctx.traceSpace.trace(getName(), "registering MgmtListener ...");
                    ctx.mgmtSwiftlet.addMgmtListener(new MgmtListener() {

                        public void adminToolActivated() {
                            collectOn = true;
                            collectChanged(-1, collectInterval);
                        }

                        public void adminToolDeactivated() {
                            collectChanged(collectInterval, -1);
                            collectOn = false;
                        }
                    });
                } catch (Exception e) {
                    if (ctx.traceSpace.enabled)
                        ctx.traceSpace.trace(getName(), "swiftletStartet, exception=" + e);
                }
            }
        });
    } catch (Exception e) {
        throw new SwiftletException(e.getMessage());
    }
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "startup DONE");
}
Also used : MgmtListener(com.swiftmq.swiftlet.mgmt.event.MgmtListener) MgmtSwiftlet(com.swiftmq.swiftlet.mgmt.MgmtSwiftlet) PropertyChangeException(com.swiftmq.mgmt.PropertyChangeException) SwiftletException(com.swiftmq.swiftlet.SwiftletException) PropertyChangeException(com.swiftmq.mgmt.PropertyChangeException) SwiftletManagerAdapter(com.swiftmq.swiftlet.event.SwiftletManagerAdapter) SwiftletManagerEvent(com.swiftmq.swiftlet.event.SwiftletManagerEvent) SwiftletException(com.swiftmq.swiftlet.SwiftletException) PropertyChangeAdapter(com.swiftmq.mgmt.PropertyChangeAdapter) Property(com.swiftmq.mgmt.Property)

Example 2 with MgmtListener

use of com.swiftmq.swiftlet.mgmt.event.MgmtListener in project swiftmq-ce by iitsoftware.

the class StreamsSwiftlet method startup.

protected void startup(Configuration config) throws SwiftletException {
    ctx = new SwiftletContext(config, this);
    if (!ctx.HASENGINE) {
        ctx.logSwiftlet.logInformation(ctx.streamsSwiftlet.getName(), "You are using Java " + ctx.JAVAVERSION + " but not GraalVM. Cannot start Streams Swiftlet. Please use GraalVM: https://graalvm.org");
        ctx.logSwiftlet.logWarning(ctx.streamsSwiftlet.getName(), "You are using Java " + ctx.JAVAVERSION + " but not GraalVM. Cannot start Streams Swiftlet. Please use GraalVM: https://graalvm.org");
        return;
    }
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "startup ...");
    isStartup = true;
    ctx.logSwiftlet.logInformation(ctx.streamsSwiftlet.getName(), "starting, available Scripting Engines:");
    ScriptEngineManager manager = new ScriptEngineManager();
    List<ScriptEngineFactory> factories = manager.getEngineFactories();
    for (int i = 0; i < factories.size(); i++) {
        ctx.logSwiftlet.logInformation(ctx.streamsSwiftlet.getName(), "name=" + factories.get(i).getEngineName() + ", version=" + factories.get(i).getEngineVersion() + ", language name=" + factories.get(i).getLanguageName() + ", language version=" + factories.get(i).getLanguageVersion() + ", names=" + factories.get(i).getNames());
    }
    ctx.authenticationSwiftlet.addTopicAuthenticationDelegate(this);
    createDomainAdapter((EntityList) config.getEntity("domains"));
    try {
        startStreams((EntityList) config.getEntity("domains"));
    } catch (Exception e) {
        throw new SwiftletException(e.getMessage());
    }
    /*${evalstartupmark}*/
    jobRegistrar = new JobRegistrar(ctx);
    jobRegistrar.register();
    Property prop = ctx.root.getProperty("collect-interval");
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            collectInterval = ((Long) newValue).longValue();
            collectChanged(((Long) oldValue).longValue(), collectInterval);
        }
    });
    collectInterval = ((Long) prop.getValue()).longValue();
    ctx.mgmtSwiftlet.addMgmtListener(new MgmtListener() {

        public void adminToolActivated() {
            if (ctx.traceSpace.enabled)
                ctx.traceSpace.trace(getName(), "adminToolActivated");
            collectOn = true;
            collectChanged(-1, collectInterval);
        }

        public void adminToolDeactivated() {
            if (ctx.traceSpace.enabled)
                ctx.traceSpace.trace(getName(), "adminToolDeactivated");
            collectChanged(collectInterval, -1);
            collectOn = false;
        }
    });
    try {
        streamLibDeployer = new StreamLibDeployer(ctx);
    } catch (Exception e) {
        throw new SwiftletException(e.toString());
    }
    isStartup = false;
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "startup done.");
}
Also used : MgmtListener(com.swiftmq.swiftlet.mgmt.event.MgmtListener) ScriptEngineManager(javax.script.ScriptEngineManager) JobRegistrar(com.swiftmq.impl.streams.jobs.JobRegistrar) SwiftletException(com.swiftmq.swiftlet.SwiftletException) SwiftletException(com.swiftmq.swiftlet.SwiftletException) ScriptEngineFactory(javax.script.ScriptEngineFactory)

Example 3 with MgmtListener

use of com.swiftmq.swiftlet.mgmt.event.MgmtListener in project swiftmq-ce by iitsoftware.

the class QueueManagerImpl method startup.

/**
 * Startup the swiftlet. Check if all required properties are defined and all other
 * startup conditions are met. Do startup work (i. e. start working thread, get/open resources).
 * If any condition prevends from startup fire a SwiftletException.
 *
 * @throws com.swiftmq.swiftlet.SwiftletException
 */
protected void startup(Configuration config) throws SwiftletException {
    startupTime = System.currentTimeMillis();
    ctx = createSwiftletContext(config);
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "startup ...");
    ctx.usageList.getCommandRegistry().addCommand(new Activate(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Viewer(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Exporter(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Importer(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Remover(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Copier(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Mover(ctx).createCommand());
    ctx.usageList.getCommandRegistry().addCommand(new Resetter(ctx).createCommand());
    if (ctx.smartTree)
        ctx.usageList.getTemplate().removeEntities();
    Property prop = ctx.root.getProperty(PROP_MAX_FLOWCONTROL_DELAY);
    maxFlowControlDelay = ((Long) prop.getValue()).longValue();
    queueControllerList = (EntityList) ctx.root.getEntity("queue-controllers");
    ctx.messageQueueFactory = createMessageQueueFactory();
    ctx.messageGroupDispatchPolicyFactory = createMessaageGroupDispatchPolicyFactory();
    ctx.cacheTableFactory = createCacheTableFactory();
    ctx.dispatchPolicyRegistry = new DispatchPolicyRegistry(ctx);
    ctx.redispatcherController = new RedispatcherController(ctx);
    regularQueueFactory = createRegularQueueFactory();
    tempQueueFactory = createTempQueueFactory();
    systemQueueFactory = createSystemQueueFactory();
    tempQueueController = getQueueController(PREFIX_TEMP_QUEUE + "000");
    if (tempQueueController == null)
        throw new SwiftletException("No Queue Controller for temporary Queues defined!");
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "Queue Controller for temp queues: " + tempQueueController.getName());
    localRouterName = SwiftletManager.getInstance().getRouterName();
    queueTable = new HashMap();
    inboundRedirectors = new HashMap();
    outboundRedirectors = new HashMap();
    // Create DLQ
    try {
        createQueue(DLQ, (ActiveLogin) null);
        ((MessageQueue) getQueueForInternalUse(DLQ)).setAlwaysDeliverExpired(true);
    } catch (Exception e) {
        e.printStackTrace();
        throw new SwiftletException(e.toString());
    }
    createQueues((EntityList) ctx.root.getEntity("queues"));
    SwiftletManager.getInstance().addSwiftletManagerListener("sys$jndi", new SwiftletManagerAdapter() {

        public void swiftletStarted(SwiftletManagerEvent evt) {
            try {
                ctx.jndiSwiftlet = (JNDISwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$jndi");
                ctx.jndiAliasList = (EntityList) SwiftletManager.getInstance().getConfiguration("sys$jndi").getEntity("aliases");
                registerJNDIQueues();
            } catch (Exception e) {
                if (ctx.traceSpace.enabled)
                    ctx.traceSpace.trace(getName(), "swiftletStartet, exception=" + e);
            }
        }

        public void swiftletStopped(SwiftletManagerEvent swiftletManagerEvent) {
            ctx.jndiSwiftlet = null;
            ctx.jndiAliasList = null;
        }
    });
    SwiftletManager.getInstance().addSwiftletManagerListener("sys$mgmt", new SwiftletManagerAdapter() {

        public void swiftletStarted(SwiftletManagerEvent evt) {
            try {
                ctx.mgmtSwiftlet = (MgmtSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$mgmt");
                if (ctx.traceSpace.enabled)
                    ctx.traceSpace.trace(getName(), "registering MgmtListener ...");
                ctx.mgmtSwiftlet.addMgmtListener(new MgmtListener() {

                    public void adminToolActivated() {
                        collectOn = true;
                        collectChanged(-1, collectInterval);
                    }

                    public void adminToolDeactivated() {
                        collectChanged(collectInterval, -1);
                        collectOn = false;
                    }
                });
            } catch (Exception e) {
                if (ctx.traceSpace.enabled)
                    ctx.traceSpace.trace(getName(), "swiftletStartet, exception=" + e);
            }
        }
    });
    prop = ctx.root.getProperty(PROP_LOG_DUPLICATES);
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            logDuplicates = ((Boolean) newValue).booleanValue();
        }
    });
    logDuplicates = ((Boolean) prop.getValue()).booleanValue();
    prop = ctx.root.getProperty(PROP_LOG_EXPIRED);
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            logExpired = ((Boolean) newValue).booleanValue();
        }
    });
    logExpired = ((Boolean) prop.getValue()).booleanValue();
    prop = ctx.root.getProperty(PROP_DELIVER_EXPIRED);
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            deliverExpired = ((Boolean) newValue).booleanValue();
        }
    });
    deliverExpired = ((Boolean) prop.getValue()).booleanValue();
    prop = ctx.root.getProperty(PROP_COLLECT_INTERVAL);
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            collectInterval = ((Long) newValue).longValue();
            collectChanged(((Long) oldValue).longValue(), collectInterval);
        }
    });
    collectInterval = ((Long) prop.getValue()).longValue();
    if (collectOn) {
        if (collectInterval > 0) {
            if (ctx.traceSpace.enabled)
                ctx.traceSpace.trace(getName(), "startup: registering message count collector");
            ctx.timerSwiftlet.addTimerListener(collectInterval, this);
        } else if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace(getName(), "startup: collect interval <= 0; no message count collector");
    }
    prop = ctx.root.getProperty(PROP_MULTI_QUEUE_TX_GLOBAL_LOCK);
    if (prop != null) {
        prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

            public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
                setUseGlobalLocking(((Boolean) newValue).booleanValue());
            }
        });
        setUseGlobalLocking(((Boolean) prop.getValue()).booleanValue());
    }
    SwiftletManager.getInstance().addSwiftletManagerListener("sys$scheduler", new SwiftletManagerAdapter() {

        public void swiftletStarted(SwiftletManagerEvent event) {
            ctx.schedulerSwiftlet = (SchedulerSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$scheduler");
            jobRegistrar = new JobRegistrar(ctx);
            jobRegistrar.register();
        }

        public void swiftletStopInitiated(SwiftletManagerEvent event) {
            jobRegistrar.unregister();
        }
    });
    SwiftletManager.getInstance().addSwiftletManagerListener("sys$routing", new SwiftletManagerAdapter() {

        public void swiftletStarted(SwiftletManagerEvent event) {
            try {
                startCluster();
                startCompositeQueues();
            } catch (Exception e) {
                e.printStackTrace();
            }
            ctx.routingSwiftlet = (RoutingSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$routing");
            routingListener = new ClusterRoutingListener();
            ctx.routingSwiftlet.addRoutingListener(routingListener);
        }

        public void swiftletStopInitiated(SwiftletManagerEvent event) {
            ctx.routingSwiftlet.removeRoutingListener(routingListener);
            try {
                stopCluster();
                stopCompositeQueues();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace(getName(), "startup: done.");
}
Also used : JNDISwiftlet(com.swiftmq.swiftlet.jndi.JNDISwiftlet) SwiftletManagerAdapter(com.swiftmq.swiftlet.event.SwiftletManagerAdapter) RoutingSwiftlet(com.swiftmq.swiftlet.routing.RoutingSwiftlet) SwiftletManagerEvent(com.swiftmq.swiftlet.event.SwiftletManagerEvent) SchedulerSwiftlet(com.swiftmq.swiftlet.scheduler.SchedulerSwiftlet) MgmtListener(com.swiftmq.swiftlet.mgmt.event.MgmtListener) MgmtSwiftlet(com.swiftmq.swiftlet.mgmt.MgmtSwiftlet) JobRegistrar(com.swiftmq.impl.queue.standard.jobs.JobRegistrar) IOException(java.io.IOException) SwiftletException(com.swiftmq.swiftlet.SwiftletException) AuthenticationException(com.swiftmq.swiftlet.auth.AuthenticationException) SwiftletException(com.swiftmq.swiftlet.SwiftletException)

Example 4 with MgmtListener

use of com.swiftmq.swiftlet.mgmt.event.MgmtListener in project swiftmq-ce by iitsoftware.

the class ThreadpoolSwiftletImpl method startup.

protected void startup(Configuration config) throws SwiftletException {
    this.config = config;
    root = config;
    usageList = (EntityList) root.getEntity("usage");
    traceSwiftlet = (TraceSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$trace");
    traceSpace = traceSwiftlet.getTraceSpace(TraceSwiftlet.SPACE_KERNEL);
    if (traceSpace.enabled)
        traceSpace.trace(getName(), "startup ...");
    EntityList poolList = (EntityList) root.getEntity("pools");
    createPool(DEFAULT_POOL, null, poolList.getTemplate());
    PoolDispatcher dp = (PoolDispatcher) pools.get(DEFAULT_POOL);
    dp.setKernelPool(true);
    String[] poolNames = getDefinedPoolnames(poolList);
    if (poolNames != null && poolNames.length > 0) {
        if (traceSpace.enabled)
            traceSpace.trace(getName(), "startup: starting defined thread pools");
        for (int i = 0; i < poolNames.length; i++) {
            createPool(poolNames[i], poolList.getEntity(poolNames[i]), poolList.getTemplate());
            storeThreadNamesForPool(poolNames[i], poolList.getEntity(poolNames[i]));
        }
    }
    poolList.setEntityAddListener(new EntityChangeAdapter(null) {

        public void onEntityAdd(Entity parent, Entity newEntity) throws EntityAddException {
            boolean kp = ((Boolean) newEntity.getProperty(PROP_KERNEL_POOL).getValue()).booleanValue();
            if (kp)
                throw new EntityAddException("You cannot create a kernel pool dynamically.");
            createPool(newEntity.getName(), newEntity, newEntity);
            if (traceSpace.enabled)
                traceSpace.trace(getName(), "onEntityAdd (pool), poolName=" + newEntity.getName());
        }
    });
    poolList.setEntityRemoveListener(new EntityChangeAdapter(null) {

        public void onEntityRemove(Entity parent, Entity delEntity) throws EntityRemoveException {
            PoolDispatcher pd = null;
            synchronized (pools) {
                pd = (PoolDispatcher) pools.get(delEntity.getName());
                if (pd.isKernelPool())
                    throw new EntityRemoveException("You cannot remove a kernel pool dynamically.");
                pd.close();
                pools.remove(delEntity.getName());
                usageList.removeDynamicEntity(pd);
            }
            synchronized (threadNameMaps) {
                for (Iterator iter = threadNameMaps.entrySet().iterator(); iter.hasNext(); ) {
                    String entry = (String) ((Map.Entry) iter.next()).getValue();
                    if (entry.equals(pd.getPoolName()))
                        iter.remove();
                }
            }
            if (traceSpace.enabled)
                traceSpace.trace(getName(), "onEntityRemove (pool): poolName=" + delEntity.getName());
        }
    });
    try {
        SwiftletManager.getInstance().addSwiftletManagerListener("sys$mgmt", new SwiftletManagerAdapter() {

            public void swiftletStarted(SwiftletManagerEvent evt) {
                try {
                    timerSwiftlet = (TimerSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$timer");
                    mgmtSwiftlet = (MgmtSwiftlet) SwiftletManager.getInstance().getSwiftlet("sys$mgmt");
                    if (traceSpace.enabled)
                        traceSpace.trace(getName(), "registering MgmtListener ...");
                    mgmtSwiftlet.addMgmtListener(new MgmtListener() {

                        public void adminToolActivated() {
                            collectOn = true;
                            collectChanged(-1, collectInterval);
                        }

                        public void adminToolDeactivated() {
                            collectChanged(collectInterval, -1);
                            collectOn = false;
                        }
                    });
                } catch (Exception e) {
                    if (traceSpace.enabled)
                        traceSpace.trace(getName(), "swiftletStartet, exception=" + e);
                }
            }
        });
    } catch (Exception e) {
        throw new SwiftletException(e.getMessage());
    }
    Property prop = root.getProperty(PROP_COLLECT_INTERVAL);
    prop.setPropertyChangeListener(new PropertyChangeAdapter(null) {

        public void propertyChanged(Property property, Object oldValue, Object newValue) throws PropertyChangeException {
            collectInterval = ((Long) newValue).longValue();
            collectChanged(((Long) oldValue).longValue(), collectInterval);
        }
    });
    collectInterval = ((Long) prop.getValue()).longValue();
    if (collectOn) {
        if (collectInterval > 0) {
            if (traceSpace.enabled)
                traceSpace.trace(getName(), "startup: registering thread count collector");
            timerSwiftlet.addTimerListener(collectInterval, this);
        } else if (traceSpace.enabled)
            traceSpace.trace(getName(), "startup: collect interval <= 0; no thread count collector");
    }
}
Also used : MgmtListener(com.swiftmq.swiftlet.mgmt.event.MgmtListener) MgmtSwiftlet(com.swiftmq.swiftlet.mgmt.MgmtSwiftlet) SwiftletException(com.swiftmq.swiftlet.SwiftletException) SwiftletManagerAdapter(com.swiftmq.swiftlet.event.SwiftletManagerAdapter) SwiftletManagerEvent(com.swiftmq.swiftlet.event.SwiftletManagerEvent) SwiftletException(com.swiftmq.swiftlet.SwiftletException) Iterator(java.util.Iterator) TimerSwiftlet(com.swiftmq.swiftlet.timer.TimerSwiftlet)

Aggregations

SwiftletException (com.swiftmq.swiftlet.SwiftletException)4 MgmtListener (com.swiftmq.swiftlet.mgmt.event.MgmtListener)4 SwiftletManagerAdapter (com.swiftmq.swiftlet.event.SwiftletManagerAdapter)3 SwiftletManagerEvent (com.swiftmq.swiftlet.event.SwiftletManagerEvent)3 MgmtSwiftlet (com.swiftmq.swiftlet.mgmt.MgmtSwiftlet)3 JobRegistrar (com.swiftmq.impl.queue.standard.jobs.JobRegistrar)1 JobRegistrar (com.swiftmq.impl.streams.jobs.JobRegistrar)1 Property (com.swiftmq.mgmt.Property)1 PropertyChangeAdapter (com.swiftmq.mgmt.PropertyChangeAdapter)1 PropertyChangeException (com.swiftmq.mgmt.PropertyChangeException)1 AuthenticationException (com.swiftmq.swiftlet.auth.AuthenticationException)1 JNDISwiftlet (com.swiftmq.swiftlet.jndi.JNDISwiftlet)1 RoutingSwiftlet (com.swiftmq.swiftlet.routing.RoutingSwiftlet)1 SchedulerSwiftlet (com.swiftmq.swiftlet.scheduler.SchedulerSwiftlet)1 TimerSwiftlet (com.swiftmq.swiftlet.timer.TimerSwiftlet)1 IOException (java.io.IOException)1 Iterator (java.util.Iterator)1 ScriptEngineFactory (javax.script.ScriptEngineFactory)1 ScriptEngineManager (javax.script.ScriptEngineManager)1