当前位置: 首页>>代码示例>>Java>>正文


Java KieFileSystem类代码示例

本文整理汇总了Java中org.kie.api.builder.KieFileSystem的典型用法代码示例。如果您正苦于以下问题:Java KieFileSystem类的具体用法?Java KieFileSystem怎么用?Java KieFileSystem使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


KieFileSystem类属于org.kie.api.builder包,在下文中一共展示了KieFileSystem类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createKJar

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
public static byte[] createKJar(ReleaseId releaseId, List<String> drls) {
    KieServices kieServices = KieServices.Factory.get();
    KieFileSystem kfs = kieServices.newKieFileSystem();
    kfs.generateAndWritePomXML(releaseId);
    drls.forEach(drl -> kfs.write("src/main/resources/" + drl.hashCode() + ".drl", drl));
    KieBuilder kb = kieServices.newKieBuilder(kfs).buildAll();
    if (kb.getResults().hasMessages(Message.Level.ERROR)) {
        for (Message result : kb.getResults().getMessages()) {
            System.out.println(result.getText());
        }
        return null;
    }
    InternalKieModule kieModule = (InternalKieModule) kieServices.getRepository().getKieModule(releaseId);
    byte[] jar = kieModule.getBytes();
    return jar;
}
 
开发者ID:barrykalok,项目名称:spring-boot-drools-example,代码行数:17,代码来源:RuleEngineUtil.java

示例2: loadContainerFromString

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
private  KieContainer loadContainerFromString(List<Rule> rules) {
    long startTime = System.currentTimeMillis();
    KieServices ks = KieServices.Factory.get();
    KieRepository kr = ks.getRepository();
    KieFileSystem kfs = ks.newKieFileSystem();

    for (Rule rule:rules) {
        String  drl=rule.getContent();
        kfs.write("src/main/resources/" + drl.hashCode() + ".drl", drl);
    }

    KieBuilder kb = ks.newKieBuilder(kfs);

    kb.buildAll();
    if (kb.getResults().hasMessages(Message.Level.ERROR)) {
        throw new RuntimeException("Build Errors:\n" + kb.getResults().toString());
    }
    long endTime = System.currentTimeMillis();
    System.out.println("Time to build rules : " + (endTime - startTime)  + " ms" );
    startTime = System.currentTimeMillis();
    KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
    endTime = System.currentTimeMillis();
    System.out.println("Time to load container: " + (endTime - startTime)  + " ms" );
    return kContainer;
}
 
开发者ID:ityouknow,项目名称:drools-examples,代码行数:26,代码来源:ReloadDroolsRulesService.java

示例3: createKieFileSystemWithKProject

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
/** 
 * 创建默认的kbase和stateful的kiesession 
 * 
 * @param ks 
 * @param isdefault 
 * @return 
 */  
public static KieFileSystem createKieFileSystemWithKProject(KieServices ks, boolean isdefault) {  
    KieModuleModel kproj = ks.newKieModuleModel();  
    KieBaseModel kieBaseModel1 = kproj.newKieBaseModel("KBase").setDefault(isdefault)  
            .setEqualsBehavior(EqualityBehaviorOption.EQUALITY).setEventProcessingMode(EventProcessingOption.STREAM);  
    // Configure the KieSession.  
    kieBaseModel1.newKieSessionModel("KSession").setDefault(isdefault)  
            .setType(KieSessionModel.KieSessionType.STATEFUL);  
    KieFileSystem kfs = ks.newKieFileSystem();  
    kfs.writeKModuleXML(kproj.toXML());  
    return kfs;  
}
 
开发者ID:lansheng228,项目名称:kie-dynamic-rule,代码行数:19,代码来源:DroolsUtils.java

示例4: buildRelease

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
private static void buildRelease(ReleaseId releaseId, Resource pomResource, Resource kmodule, String... resources) {
    if (releases.contains(releaseId)) {
        ks.getRepository().removeKieModule(releaseId);
    }
    KieServices kieServices = KieServices.Factory.get();

    KieFileSystem kfs = kieServices.newKieFileSystem();

    kfs.write("pom.xml", pomResource);

    kfs.write("src/main/resources/META-INF/kmodule.xml", kmodule);

    for (String res : resources) {
        Resource resource = new ClassPathResource(res);
        kfs.write("src/main/resources/" + res, resource);
    }

    hasErrors(kieServices.newKieBuilder(kfs).buildAll().getResults());

    releases.add(releaseId);
}
 
开发者ID:redhat-italy,项目名称:hacep,代码行数:22,代码来源:KieAPITestUtils.java

示例5: createKieContainer

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
private KieContainer createKieContainer(String... ruleFiles) {
    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem();
    KieBuilder kieBuilder = ks.newKieBuilder(kfs);

    for (String ruleFile : ruleFiles) {
        InputStream ruleFileIs = DroolsTestSupport.class.getResourceAsStream("/" + ruleFile);
        Assert.assertNotNull("Can't open stream for rule file. Does it exist?", ruleFileIs);
        kfs.write(ks.getResources().newInputStreamResource(ruleFileIs).setSourcePath(ruleFile));
        try {
            ruleFileIs.close();
        } catch (IOException e) {
            throw new RuntimeException("InputStream of rule file could not be closed.");
        }
    }
    kieBuilder.buildAll();

    StringBuilder message = new StringBuilder();
    List<Message> messages = kieBuilder.getResults().getMessages();
    for (Message m : messages) {
        message.append(m.toString()).append("\n");
    }
    Assert.assertEquals(message.toString(), 0, messages.size());
    return ks.newKieContainer(ks.getRepository().getDefaultReleaseId());
}
 
开发者ID:jeichler,项目名称:junit-drools,代码行数:26,代码来源:DroolsTestSupport.java

示例6: getKieSession

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
/** create empty knowledge base */
private KieSession getKieSession() {
    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem();
    KieResources kieResources = ks.getResources();

    kfs.write(kieResources.newClassPathResource("getOlder.drl", getClass()).setResourceType(ResourceType.DRL));

    KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();

    List<Message> errors = kieBuilder.getResults().getMessages(Message.Level.ERROR);
    if (!errors.isEmpty()) {
        fail("" + errors);
    }

    return ks.newKieContainer(ks.getRepository().getDefaultReleaseId()).newKieSession();
}
 
开发者ID:jboss-integration,项目名称:fuse-bxms-integ,代码行数:18,代码来源:JsonQueryTest.java

示例7: registerKnowledgeRuntime

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
protected KieSession registerKnowledgeRuntime(String identifier, String rule) {
    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem();
    KieResources kieResources = ks.getResources();

    if (rule != null && rule.length() > 0) {
        kfs.write("src/main/resources/rule.drl", rule);
    }

    KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();

    List<Message> errors = kieBuilder.getResults().getMessages(Message.Level.ERROR);
    if (!errors.isEmpty()) {
        fail("" + errors);
    }

    KieSession ksession = ks.newKieContainer(ks.getRepository().getDefaultReleaseId()).newKieSession();

    try {
        jndiContext.bind(identifier, ksession);
    } catch (NamingException e) {
        throw new RuntimeException(e);
    }

    return ksession;
}
 
开发者ID:jboss-integration,项目名称:fuse-bxms-integ,代码行数:27,代码来源:KieCamelTestSupport.java

示例8: clone

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
public Builder clone() {
    final KieFileSystem kieFileSystemClone = kieFileSystemClone();
    final KieBuilderImpl kieBuilder = kieBuilderClone(kieFileSystemClone);

    return new Builder(project,
                       ioService,
                       moduleService,
                       importsService,
                       buildValidationHelpers,
                       dependenciesClassLoaderCache,
                       pomModelCache,
                       packageNameWhiteListService,
                       classFilter,
                       kieBuilder,
                       kieFileSystemClone);
}
 
开发者ID:kiegroup,项目名称:kie-wb-common,代码行数:17,代码来源:Builder.java

示例9: initKieJar

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
/** 
 * 初始化一个kjar:把原有的drl包含进新建的kjar中 
 * 
 * @param ks 
 * @param releaseId 
 * @return 
 * @throws IOException 
 */  
public static InternalKieModule initKieJar(KieServices ks, ReleaseId releaseId) throws IOException {  
    KieFileSystem kfs = createKieFileSystemWithKProject(ks, true);  
    kfs.writePomXML(getPom(releaseId));  
    for (File file : getRuleFiles()) {  
        kfs.write("src/main/resources/" + file.getName(),  
                ResourceFactory.newClassPathResource(RULES_PATH + File.separator + file.getName(), "UTF-8"));  
    }  
    KieBuilder kieBuilder = ks.newKieBuilder(kfs);  
    if (!kieBuilder.buildAll().getResults().getMessages().isEmpty()) {  
        throw new IllegalStateException("Error creating KieBuilder.");  
    }  
    return (InternalKieModule) kieBuilder.getKieModule();  
}
 
开发者ID:lansheng228,项目名称:kie-dynamic-rule,代码行数:22,代码来源:DroolsUtils.java

示例10: createKieJar

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
public static InternalKieModule createKieJar(KieServices ks, ReleaseId releaseId, ResourceWrapper resourceWrapper) {  
    KieFileSystem kfs = createKieFileSystemWithKProject(ks, true);  
    kfs.writePomXML(getPom(releaseId));  
    kfs.write("src/main/resources/" + resourceWrapper.getTargetResourceName(), resourceWrapper.getResource());  
    KieBuilder kieBuilder = ks.newKieBuilder(kfs);  
    if (!kieBuilder.getResults().getMessages().isEmpty()) {  
        System.out.println(kieBuilder.getResults().getMessages());  
        throw new IllegalStateException("Error creating KieBuilder.");  
    }  
    return (InternalKieModule) kieBuilder.getKieModule();  
}
 
开发者ID:lansheng228,项目名称:kie-dynamic-rule,代码行数:12,代码来源:DroolsUtils.java

示例11: addRuleSet

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
public void addRuleSet(String ruleSetName, File ruleSetDirectory) throws RuleExecutorException {
	// Create the in-memory File System and add the resources files  to it
	KieFileSystem kieFileSystem = kieServices.newKieFileSystem();

	try {
		final RuleLoader ruleLoader = new RuleLoader(kieFileSystem);
		Files.walkFileTree(ruleSetDirectory.toPath(), ruleLoader);
		int rulesLoaded = ruleLoader.getRulesLoaded();
		if (rulesLoaded == 0) {
			logger.warn("No rules loaded. Rules directory: {}", ruleSetDirectory.getAbsolutePath());
		} else {
			logger.info("{} rules loaded.", ruleLoader.getRulesLoaded());
			totalRulesLoaded += rulesLoaded;
		}
	} catch (IOException e) {
		throw new RuleExecutorException("Failed to load rule set " + ruleSetName, e);
	}

	// Create the builder for the resources of the File System
	KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);

	// Build the KieBases
	kieBuilder.buildAll();

	// Check for errors
	if (kieBuilder.getResults().hasMessages(Message.Level.ERROR)) {
		throw new RuleExecutorException(kieBuilder.getResults().toString());
	}

	// Get the Release ID (mvn style: groupId, artifactId,version)
	ReleaseId relId = kieBuilder.getKieModule().getReleaseId();

	// Create the Container, wrapping the KieModule with the given ReleaseId
	ruleSetContainers.put(ruleSetName, kieServices.newKieContainer(relId));
}
 
开发者ID:IHTSDO,项目名称:snomed-drools,代码行数:36,代码来源:RuleExecutor.java

示例12: DecisionTableKieBaseProvider

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
public DecisionTableKieBaseProvider() {
	KieServices kieServices = KieServices.Factory.get();
	KieRepository kieRepository = kieServices.getRepository();
	KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
	
	//addResource(kieFileSystem, "com.redhatbank.brms.tracktrace.model.SLACriteria.gdst");
	addResource(kieFileSystem, "org.acme.insurance.TestDS.xls");

	KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
	kieBuilder.buildAll();
	for (Message message : kieBuilder.getResults().getMessages()) {
		System.out.println(message);
	}
	kieContainer = kieServices.newKieContainer(kieRepository.getDefaultReleaseId());
}
 
开发者ID:anurag-saran,项目名称:sla-mgmt-brms,代码行数:16,代码来源:DecisionTableKieBaseProvider.java

示例13: getStatelessKieSessionFromResource

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
private StatelessKieSession getStatelessKieSessionFromResource(Resource resource) {
    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem();

    kfs.write(resource);

    KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();

    List<Message> errors = kieBuilder.getResults().getMessages(Message.Level.ERROR);
    if (!errors.isEmpty()) {
        fail("" + errors);
    }

    return ks.newKieContainer(ks.getRepository().getDefaultReleaseId()).newStatelessKieSession();
}
 
开发者ID:jboss-integration,项目名称:fuse-bxms-integ,代码行数:16,代码来源:XStreamBatchExecutionTest.java

示例14: getKieSessionFromResource

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
private KieSession getKieSessionFromResource(Resource resource) {
    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem();

    kfs.write(resource);

    KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();

    List<Message> errors = kieBuilder.getResults().getMessages(Message.Level.ERROR);
    if (!errors.isEmpty()) {
        fail("" + errors);
    }

    return ks.newKieContainer(ks.getRepository().getDefaultReleaseId()).newKieSession();
}
 
开发者ID:jboss-integration,项目名称:fuse-bxms-integ,代码行数:16,代码来源:XStreamBatchExecutionTest.java

示例15: registerKnowledgeRuntime

import org.kie.api.builder.KieFileSystem; //导入依赖的package包/类
@Override
protected KieSession registerKnowledgeRuntime(String identifier, String rule) {
    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem();
    KieResources kieResources = ks.getResources();

    Options xjcOpts = new Options();
    xjcOpts.setSchemaLanguage(Language.XMLSCHEMA);

    JaxbConfiguration jaxbConfiguration = KnowledgeBuilderFactory.newJaxbConfiguration(xjcOpts, "xsd");

    kfs.write(kieResources.newClassPathResource("person.xsd", getClass()).setResourceType(ResourceType.XSD).setConfiguration(jaxbConfiguration));

    if (rule != null && rule.length() > 0) {
        kfs.write("src/main/resources/rule.drl", rule);
    }

    KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();

    List<Message> errors = kieBuilder.getResults().getMessages(Message.Level.ERROR);
    if (!errors.isEmpty()) {
        fail("" + errors);
    }

    KieSession ksession = ks.newKieContainer(ks.getRepository().getDefaultReleaseId()).newKieSession();
    classLoader = ((KnowledgeBaseImpl)ksession.getKieBase()).getRootClassLoader();

    try {
        jndiContext.bind(identifier, ksession);
    } catch (NamingException e) {
        throw new RuntimeException(e);
    }

    return ksession;
}
 
开发者ID:jboss-integration,项目名称:fuse-bxms-integ,代码行数:36,代码来源:CamelEndpointWithJaxbXSDModelTest.java


注:本文中的org.kie.api.builder.KieFileSystem类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。