private void checkAFullBuildHasBeenPerformed() { if (!isBuilt()) { throw new IllegalStateException("A full build needs to be performed before any incremental operations."); } }
@Override public boolean isBuilt(final Module module) { final Builder builder = cache.assertBuilder(module); return builder.isBuilt(); }
public org.kie.api.builder.KieModule getKieModuleIgnoringErrors() { //Kie classes are only available once built if (!isBuilt()) { build(); } synchronized (kieFileSystem) { return ((InternalKieBuilder) kieBuilder).getKieModuleIgnoringErrors(); } }
public org.kie.api.builder.KieModule getKieModule() { //Kie classes are only available once built if (!isBuilt()) { build(); } synchronized (kieFileSystem) { return kieBuilder.getKieModule(); } }
public IncrementalBuildResults applyBatchResourceChanges(final Module module, final Map<Path, Collection<ResourceChange>> changes) { IncrementalBuildResults results = new IncrementalBuildResults(); try { if (module == null) { return results; } final Builder builder = cache.assertBuilder(module); if (!builder.isBuilt()) { throw new IllegalStateException("Incremental Build requires a full build be completed first."); } else { results = builder.applyBatchResourceChanges(changes); } return results; } catch (Exception e) { logger.error(e.getMessage(), e); throw ExceptionUtilities.handleException(e); } }
/** * Gets the BuildInfo for a given module. The BuildInfoService decides internally whenever the module should be * built prior to construct the BuildInfo. * @param module The module for getting the BuildInfo. * @return the BuildInfo for the given module. */ public BuildInfo getBuildInfo(final Module module) { final Builder[] result = {builderCache.getBuilder(module)}; if (result[0] == null || !result[0].isBuilt()) { ((BuildServiceImpl) buildService).build(module, builder -> result[0] = builder); } return new BuildInfoImpl(result[0]); } }
public IncrementalBuildResults updatePackageResource(final Path resource) { try { final Module module = moduleService.resolveModule(resource); if (module == null) { return new IncrementalBuildResults(); } final Builder builder = cache.assertBuilder(module); if (!builder.isBuilt()) { throw new IllegalStateException("Incremental Build requires a full build be completed first."); } return builder.updateResource(Paths.convert(resource)); } catch (Exception e) { logger.error(e.getMessage(), e); throw ExceptionUtilities.handleException(e); } }
public IncrementalBuildResults addPackageResource(final Path resource) { try { IncrementalBuildResults results = new IncrementalBuildResults(); final KieModule module = moduleService.resolveModule(resource); if (module == null) { return results; } final Builder builder = cache.assertBuilder(module); if (!builder.isBuilt()) { throw new IllegalStateException("Incremental Build requires a full build be completed first."); } else { results = builder.addResource(Paths.convert(resource)); } return results; } catch (Exception e) { logger.error(e.getMessage(), e); throw ExceptionUtilities.handleException(e); } }
public IncrementalBuildResults deletePackageResource(final Path resource) { try { IncrementalBuildResults results = new IncrementalBuildResults(); final KieModule module = moduleService.resolveModule(resource); if (module == null) { return results; } final Builder builder = cache.assertBuilder(module); if (!builder.isBuilt()) { throw new IllegalStateException("Incremental Build requires a full build be completed first."); } else { results = builder.deleteResource(Paths.convert(resource)); } return results; } catch (Exception e) { logger.error(e.getMessage(), e); throw ExceptionUtilities.handleException(e); } }
@Test public void testGetBuildInfoWhenModuleIsNotBuilt() { //the builder exists, but was never built. when(cache.getBuilder(module)).thenReturn(builderNotBuilt); when(builderNotBuilt.isBuilt()).thenReturn(false); testBuildIsRequired(); }
private void verifyBuilder(KieModule module, GAV gav) { Builder builder = cache.getBuilder(module); assertNotNull(builder); assertTrue(builder.isBuilt()); verify(m2RepoService, times(1)).deployJar(any(InputStream.class), eq(gav)); }
@Test public void testIsBuiltFalse() { when(cache.assertBuilder(module)).thenReturn(builder); when(builder.isBuilt()).thenReturn(false); assertFalse(buildService.isBuilt(module)); }
@Test public void testIsBuiltTrue() { when(cache.assertBuilder(module)).thenReturn(builder); when(builder.isBuilt()).thenReturn(true); assertTrue(buildService.isBuilt(module)); }
@Test public void testGetBuildInfoWhenModuleIsBuilt() { when(cache.getBuilder(module)).thenReturn(builder); when(builder.isBuilt()).thenReturn(true); BuildInfo expectedBuildInfo = new BuildInfoImpl(builder); BuildInfo result = buildInfoService.getBuildInfo(module); assertEquals(expectedBuildInfo, result); verify(cache, times(1)).getBuilder(module); verify(buildService, never()).build(eq(module), any(Consumer.class)); }
public KieContainer getKieContainer() { BuildResults results = null; //Kie classes are only available once built if (!isBuilt()) { results = build(); } else { results = new BuildResults(); results.addAllBuildMessages(convertMessages(kieBuilder.getResults().getMessages(), handles)); } //It's impossible to retrieve a KieContainer if the KieModule contains errors if (results.getErrorMessages().isEmpty()) { // Do not retrieve the KieContainer with KieServices.newKieContainer(releaseId) since this looks-up the KieModule to // create the KieContainer from KieRepository. This holds the most recent KieModule (for the ReleaseId) that was built with // kieBuilder.buildAll() which *may* be a KieModule created during asset validation and hence will lack many assets. // See https://bugzilla.redhat.com/show_bug.cgi?id=1202551 final org.kie.api.builder.KieModule kieModule = kieBuilder.getKieModule(); final ReleaseId releaseId = kieModule.getReleaseId(); final org.drools.compiler.kie.builder.impl.KieProject kieProject = new KieModuleKieProject((InternalKieModule) kieBuilder.getKieModule(), null); final KieContainer kieContainer = new KieContainerImpl(kieProject, KieServices.Factory.get().getRepository(), releaseId); return kieContainer; } else { return null; } }