コード例 #1
0
  @Test
  public void testGetPackageNames() {
    final KieServices ks = KieServices.Factory.get();

    final KieFileSystem kfs = ks.newKieFileSystem();
    kfs.write("src/main/resources/test.drl", "package org.test declare Bean end");

    final KieBuilder kieBuilder = ks.newKieBuilder(kfs);
    final List<Message> messages = kieBuilder.buildAll().getResults().getMessages();
    assertTrue(messages.isEmpty());

    final KieModule kieModule = kieBuilder.getKieModule();
    final KieModuleMetaData kieModuleMetaData =
        KieModuleMetaData.Factory.newKieModuleMetaData(kieModule);

    assertFalse(kieModuleMetaData.getPackages().isEmpty());
    TestCase.assertTrue(kieModuleMetaData.getPackages().contains("org.test"));
  }
コード例 #2
0
  @Test
  @Ignore("https://bugzilla.redhat.com/show_bug.cgi?id=1049674")
  public void testKieMavenPluginEmptyProject() {
    // According to https://bugzilla.redhat.com/show_bug.cgi?id=1049674#c2 the below is the minimal
    // POM required to use KieMavenPlugin.
    // However when we attempt to retrieve meta-data about the classes in the KieModule some are not
    // accessible. IDK whether the minimal
    // POM is correct; or whether KieModuleMetaData needs to ignore certain classes (e.g. if a
    // transient dependency is optional?!?)
    final KieServices ks = KieServices.Factory.get();

    final KieFileSystem kfs = ks.newKieFileSystem();
    kfs.write(
        "pom.xml",
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
            + "<project xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\" xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
            + "<modelVersion>4.0.0</modelVersion>"
            + "<groupId>org.kie</groupId>"
            + "<artifactId>plugin-test</artifactId>"
            + "<version>1.0</version>"
            + "<packaging>kjar</packaging>"
            + "<dependencies>"
            + "<dependency>"
            + "<groupId>org.drools</groupId>"
            + "<artifactId>drools-compiler</artifactId>"
            + "<version>6.1.0-SNAPSHOT</version>"
            + "</dependency>"
            + "</dependencies>"
            + "<build>"
            + "<plugins>"
            + "<plugin>"
            + "<groupId>org.kie</groupId>"
            + "<artifactId>kie-maven-plugin</artifactId>"
            + "<version>6.1.0-SNAPSHOT</version>"
            + "<extensions>true</extensions>"
            + "</plugin>"
            + "</plugins>"
            + "</build>"
            + "</project>");

    kfs.write(
        "/src/main/resources/META-INF/kmodule.xml",
        "<kmodule xmlns=\"http://jboss.org/kie/6.0.0/kmodule\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>");

    final KieBuilder kieBuilder = ks.newKieBuilder(kfs);
    final List<Message> messages = kieBuilder.buildAll().getResults().getMessages();
    assertTrue(messages.isEmpty());

    final KieModule kieModule = kieBuilder.getKieModule();
    final KieModuleMetaData kieModuleMetaData =
        KieModuleMetaData.Factory.newKieModuleMetaData(kieModule);

    boolean fail = false;
    for (final String packageName : kieModuleMetaData.getPackages()) {
      for (final String className : kieModuleMetaData.getClasses(packageName)) {
        try {
          kieModuleMetaData.getClass(packageName, className);
        } catch (Throwable e) {
          fail = true;
          System.out.println(e);
        }
      }
    }
    if (fail) {
      fail("See console for details.");
    }
  }