assertEquals("KBase1", kbaseName);
}
@Test
public void testKieModuleFromMavenWithTransitiveDependencies() throws Exception {
final KieServices ks = new KieServicesImpl() {
@Override
public KieRepository getRepository() {
return new KieRepositoryImpl(); // override repository to not store the artifact on deploy to trigger load from maven repo
}
};
ReleaseId dependency = ks.newReleaseId("org.drools", "drools-core", "5.5.0.Final");
ReleaseId releaseId = ks.newReleaseId("org.kie", "maven-test", "1.0-SNAPSHOT");
String pomText = getPom(releaseId, dependency);
InternalKieModule kJar1 = createKieJar(ks, releaseId, pomText, true, "rule1", "rule2");
File pomFile = new File(System.getProperty("java.io.tmpdir"), MavenRepository.toFileName(releaseId, null) + ".pom");
try {
FileOutputStream fos = new FileOutputStream(pomFile);
fos.write(pomText.getBytes());
fos.flush();
fos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
MavenRepository.getMavenRepository().deployArtifact(releaseId, kJar1, pomFile);
KieContainer kieContainer = ks.newKieContainer(releaseId);
Collection<ReleaseId> expectedDependencies = new HashSet<ReleaseId>();
expectedDependencies.add(ks.newReleaseId("org.drools", "knowledge-api", "5.5.0.Final"));
expectedDependencies.add(ks.newReleaseId("org.drools", "knowledge-internal-api", "5.5.0.Final"));
expectedDependencies.add(ks.newReleaseId("org.drools", "drools-core", "5.5.0.Final"));
expectedDependencies.add(ks.newReleaseId("org.mvel", "mvel2", "2.1.3.Final"));
expectedDependencies.add(ks.newReleaseId("org.slf4j", "slf4j-api", "1.6.4"));
Collection<ReleaseId> dependencies = ((InternalKieModule)((KieContainerImpl) kieContainer).getKieModuleForKBase("KBase1")).getJarDependencies();
assertNotNull(dependencies);
assertEquals(5, dependencies.size());