Created
December 17, 2015 15:31
-
-
Save vdevigere/b8a4a22fd07e5a100671 to your computer and use it in GitHub Desktop.
Loading a .drl file and running a stateless Drools 6 session using Scala.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.File | |
import java.util.{ArrayList, List} | |
import com.typesafe.scalalogging.LazyLogging | |
import org.kie.api.KieServices | |
import org.kie.api.io.ResourceType | |
/** | |
* Created by Viddu on 12/12/2015. | |
*/ | |
object CampaignSelector extends LazyLogging { | |
// KieServices is the factory for all KIE services | |
val kieServices: KieServices = KieServices.Factory.get() | |
val file = new File("src/main/resources/com/github/rdc/CampaignRules.drl") | |
val resource = kieServices.getResources().newFileSystemResource(file).setResourceType(ResourceType.DRL) | |
val kFileSystem = kieServices.newKieFileSystem().write(resource) | |
kieServices.newKieBuilder(kFileSystem).buildAll() | |
// kieModule is automatically deployed to KieRepository if successfully built. | |
val kc = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId()) | |
def select(context: Context): List[Campaign] = { | |
val ksession = kc.newKieSession() | |
val campaigns = new ArrayList[Campaign]() | |
ksession.setGlobal("campaignList", campaigns) | |
ksession.insert(context) | |
ksession.fireAllRules() | |
ksession.dispose() | |
return campaigns | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment