private KieScannerResource getScannerResource(KieContainerInstance kci) { InternalKieScanner scanner = kci.getScanner(); KieScannerResource info = null; if (scanner != null) { info = new KieScannerResource(mapStatus(scanner.getStatus()), scanner.getPollingInterval()); } else { info = new KieScannerResource( KieScannerStatus.DISPOSED); } return info; }
public void scanNow() { if (this.scanner == null) { throw new IllegalStateException("Can not run (scanNow) non-existing (null) scanner!"); } this.scanner.scanNow(); }
public void disposeScanner() { if (this.scanner == null) { throw new IllegalStateException("Can not dispose non-existing (null) scanner!"); } this.scanner.shutdown(); this.scanner = null; this.getResource().setScanner(new KieScannerResource(KieScannerStatus.DISPOSED)); }
public void startScanner(long pollingInterval) { if (this.scanner == null) { throw new IllegalStateException("Can not start non-existing (null) scanner!"); } this.scanner.start(pollingInterval); this.scanner.addListener(scannerListener); this.getResource().setScanner(new KieScannerResource(KieScannerStatus.STARTED, pollingInterval)); }
public void stopScanner() { if (this.scanner == null) { throw new IllegalStateException("Can not stop non-existing (null) scanner!"); } this.scanner.stop(); this.scanner.removeListener(scannerListener); this.getResource().getScanner().setStatus(KieScannerStatus.STOPPED); }
private ServiceResponse<KieScannerResource> stopScanner(String id, KieScannerResource resource, KieContainerInstance kci) { if (kci.getScanner() == null) { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Invalid call. Scanner is not instantiated. ", getScannerResource(kci)); } if (KieScannerStatus.STARTED.equals(mapStatus(kci.getScanner().getStatus())) || KieScannerStatus.SCANNING.equals(mapStatus(kci.getScanner().getStatus()))) { kci.getScanner().stop(); return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.SUCCESS, "Kie scanner successfully stopped.", getScannerResource(kci)); } else { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Invalid kie scanner status: " + mapStatus(kci.getScanner().getStatus()), getScannerResource(kci)); } }
private ServiceResponse<KieScannerResource> disposeScanner(String id, KieScannerResource resource, KieContainerInstance kci) { if (kci.getScanner() == null) { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.SUCCESS, "Invalid call. Scanner already disposed. ", getScannerResource(kci)); } if (KieScannerStatus.STARTED.equals(mapStatus(kci.getScanner().getStatus())) || KieScannerStatus.SCANNING.equals(mapStatus(kci.getScanner().getStatus()))) { ServiceResponse<KieScannerResource> response = stopScanner(id, resource, kci); if (ResponseType.FAILURE.equals(response.getType())) { return response; } } kci.getScanner().shutdown(); kci.setScanner(null); return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.SUCCESS, "Kie scanner successfully shutdown.", getScannerResource(kci)); }
private ServiceResponse<KieScannerResource> scanNow(String id, KieScannerResource resource, KieContainerInstance kci) { if (kci.getScanner() == null) { createScanner( id, kci ); } KieScannerStatus kss = mapStatus( kci.getScanner().getStatus() ); if (KieScannerStatus.STOPPED.equals( kss ) || KieScannerStatus.CREATED.equals( kss ) || KieScannerStatus.STARTED.equals( kss )) { kci.getScanner().scanNow(); return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.SUCCESS, "Scan successfully executed.", getScannerResource(kci)); } else { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Invalid kie scanner status: " + kss, getScannerResource(kci)); } }
private ServiceResponse<KieScannerResource> startScanner(String id, KieScannerResource resource, KieContainerInstance kci) { if (kci.getScanner() == null) { ServiceResponse<KieScannerResource> response = createScanner(id, kci); if (ResponseType.FAILURE.equals(response.getType())) { return response; } } if (KieScannerStatus.STOPPED.equals(mapStatus(kci.getScanner().getStatus())) && resource.getPollInterval() != null) { kci.getScanner().start(resource.getPollInterval()); return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.SUCCESS, "Kie scanner successfully created.", getScannerResource(kci)); } else if (!KieScannerStatus.STOPPED.equals(mapStatus(kci.getScanner().getStatus()))) { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Invalid kie scanner status: " + mapStatus(kci.getScanner().getStatus()), getScannerResource(kci)); } else if (resource.getPollInterval() == null) { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Invalid polling interval: " + resource.getPollInterval(), getScannerResource(kci)); } return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Unknown error starting scanner. Scanner was not started." + resource, getScannerResource(kci)); }
private KieScannerStatus mapScannerStatus(KieContainerInstanceImpl kieContainerInstance) { return KieContainerInstanceImpl.mapScannerStatus(kieContainerInstance.getScanner().getStatus()); }
" failed to dispose, exception was raised: " + e.getClass().getName() + ": " + e.getMessage()); if (kci.getScanner() != null && kci.getScanner().getStatus() != Status.SHUTDOWN) { kci.stopScanner();
public void createScanner() { this.scanner = (InternalKieScanner) KieServices.Factory.get().newKieScanner(kieContainer); // we also need to update the underlaying scanner resource to avoid inconsistency KieScannerStatus status = KieContainerInstanceImpl.mapScannerStatus(scanner.getStatus()); long pollingInterval = scanner.getPollingInterval(); resource.setScanner(new KieScannerResource(status, pollingInterval)); }