/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.persistence.infinispan; import org.drools.core.time.InternalSchedulerService; import org.drools.core.time.Job; import org.drools.core.time.JobContext; import org.drools.core.time.JobHandle; import org.drools.core.time.TimerService; import org.drools.core.time.Trigger; import org.drools.core.time.impl.CommandServiceTimerJobFactoryManager; import org.drools.core.time.impl.DefaultTimerJobInstance; import org.drools.core.time.impl.TimerJobFactoryManager; import org.kie.api.runtime.ExecutableRunner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class InfinispanTimerJobInstance extends DefaultTimerJobInstance { private static Logger logger = LoggerFactory.getLogger( InfinispanTimerJobInstance.class ); public InfinispanTimerJobInstance(Job job, JobContext ctx, Trigger trigger, JobHandle handle, InternalSchedulerService scheduler) { super( job, ctx, trigger, handle, scheduler ); } public Void call() throws Exception { try { JDKCallableJobCommand command = new JDKCallableJobCommand( this ); TimerJobFactoryManager timerJobFactoryManager = ( (TimerService)scheduler ).getTimerJobFactoryManager(); ExecutableRunner commandService = ( (CommandServiceTimerJobFactoryManager) timerJobFactoryManager ).getRunner(); commandService.execute( command ); return null; } catch( Exception e ) { logger.error("Unable to execute timer job!", e); throw e; } } Void internalCall() throws Exception { return super.call(); } }