@WebRemote @Restrict("#{identity.loggedIn}") public AnalysisReport analysePackage(String packageUUID) throws SerializationException { if (Contexts.isSessionContextActive()) { Identity.instance() .checkPermission(new PackageUUIDType(packageUUID), RoleType.PACKAGE_DEVELOPER.getName()); } PackageItem packageItem = getAssetService().getRulesRepository().loadPackageByUUID(packageUUID); VerifierRunner runner = new VerifierRunner(defaultVerifier); AnalysisReport report = runner.verify( packageItem, new ScopesAgendaFilter(true, ScopesAgendaFilter.VERIFYING_SCOPE_KNOWLEDGE_PACKAGE)); defaultVerifier.flushKnowledgeSession(); return report; }
private AnalysisReport performAssetVerification( RuleAsset asset, boolean useVerifierDefaultConfig, Set<String> activeWorkingSets) throws SerializationException { long startTime = System.currentTimeMillis(); if (Contexts.isSessionContextActive()) { Identity.instance() .checkPermission( new PackageNameType(asset.getMetaData().getPackageName()), RoleType.PACKAGE_DEVELOPER.getName()); } PackageItem packageItem = getAssetService().getRulesRepository().loadPackage(asset.getMetaData().getPackageName()); List<String> constraintRules = applyWorkingSets(activeWorkingSets); Verifier verifierToBeUsed = null; if (useVerifierDefaultConfig) { verifierToBeUsed = defaultVerifier; } else { verifierToBeUsed = getWorkingSetVerifier(constraintRules); } log.debug("constraints rules: " + constraintRules); try { VerifierRunner runner = new VerifierRunner(verifierToBeUsed); AnalysisReport report = runner.verify(packageItem, chooseScopesAgendaFilterFor(asset)); verifierToBeUsed.flushKnowledgeSession(); log.debug("Asset verification took: " + (System.currentTimeMillis() - startTime)); return report; } catch (Throwable t) { throw new SerializationException(t.getMessage()); } }