private static org.uberfire.backend.vfs.Path convertPath(String kieBuilderPath, Handles handles) { if (kieBuilderPath == null || kieBuilderPath.isEmpty()) { return null; } //look for a resource related path org.uberfire.backend.vfs.Path path = handles.get(Handles.RESOURCE_PATH + "/" + getBaseFileName(kieBuilderPath)); if (path == null) { //give a second chance, it might be a java resource error. Java paths has the form src/main/java/org/File.java path = handles.get(getBaseFileName(kieBuilderPath)); } return path; } }
private void addNewResource(final Path path, final InputStream inputStream) { final String destinationPath = destinationPath(path); final Resource inputStreamResource = KieServices.Factory.get().getResources().newInputStreamResource(new BufferedInputStream(inputStream)); kieFileSystem.write(destinationPath, inputStreamResource); handles.put(getBaseFileName(destinationPath), Paths.convert(path)); addJavaClass(path); }
private void buildIncrementally(final IncrementalBuildResults results, final String... destinationPath) { try { final IncrementalResults incrementalResults = ((InternalKieBuilder) kieBuilder).createFileSet(destinationPath).build(); results.addAllAddedMessages(convertMessages(incrementalResults.getAddedMessages(), handles)); results.addAllRemovedMessages(convertMessages(incrementalResults.getRemovedMessages(), handles)); //Tidy-up removed message handles for (Message message : incrementalResults.getRemovedMessages()) { handles.remove(Handles.RESOURCE_PATH + "/" + getBaseFileName(message.getPath())); } } catch (LinkageError e) { final String msg = MessageFormat.format(ERROR_CLASS_NOT_FOUND, e.getLocalizedMessage()); logger.warn(msg); results.addAddedMessage(makeWarningMessage(msg)); } catch (Throwable e) { final String msg = e.getLocalizedMessage(); logger.error(msg, e); results.addAddedMessage(makeErrorMessage(msg)); } }