Search in sources :

Example 31 with MemoryFileSystem

use of org.drools.compiler.compiler.io.memory.MemoryFileSystem in project drools by kiegroup.

the class MemoryKieModuleResourceProviderTest method testGetResourceForFolderWithOnlySubFolders.

@Test
public void testGetResourceForFolderWithOnlySubFolders() throws Exception {
    MemoryFileSystem mfs = new MemoryFileSystem();
    mfs.createFolder(new MemoryFolder(mfs, "src/main/java"));
    mfs.createFolder(new MemoryFolder(mfs, "src/main/java/org"));
    mfs.createFolder(new MemoryFolder(mfs, "src/main/java/com"));
    MemoryKieModule mkm = new MemoryKieModule(releaseId, kieModuleModel, mfs);
    ResourceProvider resourceProvider = mkm.createResourceProvider();
    String folderContents = IOUtils.toString(resourceProvider.getResource("src/main/java").openStream());
    Assertions.assertThat(folderContents).hasLineCount(2).contains("com", "org");
}
Also used : MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) ResourceProvider(org.drools.core.common.ResourceProvider) MemoryFolder(org.drools.compiler.compiler.io.memory.MemoryFolder) Test(org.junit.Test)

Example 32 with MemoryFileSystem

use of org.drools.compiler.compiler.io.memory.MemoryFileSystem in project drools by kiegroup.

the class MemoryKieModuleResourceProviderTest method testGetResourceForEmptyFolder.

@Test
public void testGetResourceForEmptyFolder() throws Exception {
    MemoryFileSystem mfs = new MemoryFileSystem();
    mfs.createFolder(new MemoryFolder(mfs, "src/main/java"));
    MemoryKieModule mkm = new MemoryKieModule(releaseId, kieModuleModel, mfs);
    ResourceProvider resourceProvider = mkm.createResourceProvider();
    String folderContents = IOUtils.toString(resourceProvider.getResource("src/main/java").openStream());
    Assertions.assertThat(folderContents).isEmpty();
}
Also used : MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) ResourceProvider(org.drools.core.common.ResourceProvider) MemoryFolder(org.drools.compiler.compiler.io.memory.MemoryFolder) Test(org.junit.Test)

Example 33 with MemoryFileSystem

use of org.drools.compiler.compiler.io.memory.MemoryFileSystem in project drools by kiegroup.

the class MemoryFolderTest method testNestedRelativePath.

@Test
public void testNestedRelativePath() {
    FileSystem fs = new MemoryFileSystem();
    Folder f1 = fs.getFolder("src/main/java");
    Folder f2 = fs.getFolder("src/main/java/org");
    f1.create();
    f2.create();
    assertEquals("org", f2.getPath().toRelativePortableString(f1.getPath()));
    fs = new MemoryFileSystem();
    f1 = fs.getFolder("src/main/java");
    f2 = fs.getFolder("src/main/java/org/drools/reteoo");
    f1.create();
    f2.create();
    assertEquals("org/drools/reteoo", f2.getPath().toRelativePortableString(f1.getPath()));
}
Also used : MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) FileSystem(org.drools.compiler.compiler.io.FileSystem) MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) Folder(org.drools.compiler.compiler.io.Folder) MemoryFolder(org.drools.compiler.compiler.io.memory.MemoryFolder) Test(org.junit.Test)

Example 34 with MemoryFileSystem

use of org.drools.compiler.compiler.io.memory.MemoryFileSystem in project drools by kiegroup.

the class MemoryFolderTest method testGetParentWithLeadingAndTrailingSlash.

@Test
public void testGetParentWithLeadingAndTrailingSlash() {
    MemoryFileSystem mfs = new MemoryFileSystem();
    assertEquals("", new MemoryFolder(mfs, "/src").getParent().getPath().toPortableString());
    assertEquals("", new MemoryFolder(mfs, "src/").getParent().getPath().toPortableString());
    assertEquals("", new MemoryFolder(mfs, "/src/").getParent().getPath().toPortableString());
    assertEquals("src", new MemoryFolder(mfs, "/src/main").getParent().getPath().toPortableString());
    assertEquals("src", new MemoryFolder(mfs, "src/main/").getParent().getPath().toPortableString());
    assertEquals("src", new MemoryFolder(mfs, "/src/main/").getParent().getPath().toPortableString());
    assertEquals("src/main", new MemoryFolder(mfs, "/src/main/java").getParent().getPath().toPortableString());
    assertEquals("src/main", new MemoryFolder(mfs, "src/main/java/").getParent().getPath().toPortableString());
    assertEquals("src/main", new MemoryFolder(mfs, "/src/main/java/").getParent().getPath().toPortableString());
}
Also used : MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) MemoryFolder(org.drools.compiler.compiler.io.memory.MemoryFolder) Test(org.junit.Test)

Example 35 with MemoryFileSystem

use of org.drools.compiler.compiler.io.memory.MemoryFileSystem in project drools by kiegroup.

the class KieModuleMavenTest method testKieModulePojoDependencies.

@Test
public void testKieModulePojoDependencies() throws Exception {
    KieServices ks = KieServices.Factory.get();
    // Create and deploy a standard mavenized pojo jar
    String pojoNS = "org.kie.pojos";
    ReleaseId pojoID = KieServices.Factory.get().newReleaseId(pojoNS, "pojojar", "2.0.0");
    String className = "Message";
    ClassDefinition def = new ClassDefinition(pojoNS + "." + className);
    def.addField(new FieldDefinition("text", String.class.getName()));
    byte[] messageClazz = ClassBuilderFactory.getDefaultBeanClassBuilder().buildClass(def, null);
    MemoryFileSystem mfs = new MemoryFileSystem();
    mfs.write(pojoNS.replace('.', '/') + "/" + className + ".class", messageClazz);
    byte[] pomContent = generatePomXml(pojoID).getBytes();
    mfs.write("META-INF/maven/" + pojoID.getGroupId() + "/" + pojoID.getArtifactId() + "/pom.xml", pomContent);
    mfs.write("META-INF/maven/" + pojoID.getGroupId() + "/" + pojoID.getArtifactId() + "/pom.properties", generatePomProperties(pojoID).getBytes());
    byte[] pojojar = mfs.writeAsBytes();
    MavenRepository.getMavenRepository().installArtifact(pojoID, pojojar, pomContent);
    // Create and deploy a kjar that depends on the previous pojo jar
    String kjarNS = "org.kie.test1";
    ReleaseId kjarID = KieServices.Factory.get().newReleaseId(kjarNS, "rkjar", "1.0.0");
    String rule = getRule(kjarNS, pojoNS, "R1");
    String pom = generatePomXml(kjarID, pojoID);
    byte[] rkjar = createKJar(ks, kjarID, pom, rule);
    KieModule kmodule = deployJar(ks, rkjar);
    assertNotNull(kmodule);
    KieContainer kContainer = ks.newKieContainer(kjarID);
    KieSession kSession = kContainer.newKieSession();
    List<?> list = new ArrayList<Object>();
    kSession.setGlobal("list", list);
    kSession.fireAllRules();
    assertEquals(1, list.size());
}
Also used : MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) FieldDefinition(org.drools.core.factmodel.FieldDefinition) ArrayList(java.util.ArrayList) KieServices(org.kie.api.KieServices) KieSession(org.kie.api.runtime.KieSession) ReleaseId(org.kie.api.builder.ReleaseId) ClassDefinition(org.drools.core.factmodel.ClassDefinition) InternalKieModule(org.drools.compiler.kie.builder.impl.InternalKieModule) KieModule(org.kie.api.builder.KieModule) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Aggregations

MemoryFileSystem (org.drools.compiler.compiler.io.memory.MemoryFileSystem)35 Test (org.junit.Test)30 ReleaseId (org.kie.api.builder.ReleaseId)14 Folder (org.drools.compiler.compiler.io.Folder)12 FileSystem (org.drools.compiler.compiler.io.FileSystem)11 MemoryFolder (org.drools.compiler.compiler.io.memory.MemoryFolder)11 File (org.drools.compiler.compiler.io.File)10 KieFileSystem (org.kie.api.builder.KieFileSystem)10 KieFileSystemImpl (org.drools.compiler.kie.builder.impl.KieFileSystemImpl)7 KieServices (org.kie.api.KieServices)7 KieModule (org.kie.api.builder.KieModule)7 ResourceProvider (org.drools.core.common.ResourceProvider)6 KieModuleModel (org.kie.api.builder.model.KieModuleModel)6 ByteArrayInputStream (java.io.ByteArrayInputStream)4 MemoryFile (org.drools.compiler.compiler.io.memory.MemoryFile)4 InternalKieModule (org.drools.compiler.kie.builder.impl.InternalKieModule)4 Resource (org.kie.api.io.Resource)4 KieSession (org.kie.api.runtime.KieSession)4 KieContainer (org.kie.api.runtime.KieContainer)3 IOException (java.io.IOException)2