/* * 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.games.pong; import org.drools.games.invaders.FPSTimer; import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class PongMain { /** * @param args */ public static void main(String[] args) { KieContainer kc = KieServices.Factory.get().getKieClasspathContainer(); new PongMain().init(kc, true); } public PongMain() { } public void init(final KieContainer kc, boolean exitOnClose) { final KieSession ksession = kc.newKieSession( "PongKS"); PongConfiguration pconf = new PongConfiguration(); pconf.setExitOnClose(exitOnClose); ksession.setGlobal("pconf", pconf); ksession.setGlobal( "fpsTimer", new FPSTimer(10) ); //ksession.getAgenda().getAgendaGroup("Init").setFocus( ); runKSession(ksession); } public void runKSession(final KieSession ksession) { ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(new Runnable() { public void run() { // run forever try { ksession.fireUntilHalt(); } catch ( Exception e ) { e.printStackTrace(); } } }); } }