+ protected void processNameVersion(Session javaSession,
+ NameVersion nameVersion) throws RepositoryException {
+ if (log.isTraceEnabled())
+ log.trace("Check " + nameVersion + "...");
+ if (!(nameVersion instanceof CategorizedNameVersion))
+ throw new SlcException("Unsupported type " + nameVersion.getClass());
+ CategorizedNameVersion nv = (CategorizedNameVersion) nameVersion;
+ Artifact artifact = new DefaultArtifact(nv.getCategory(), nv.getName(),
+ "jar", nv.getVersion());
+ String path = MavenConventionsUtils.artifactPath("/", artifact);
+ if (!javaSession.itemExists(path)) {
+ if (nv instanceof BndWrapper) {
+ if (log.isDebugEnabled())
+ log.debug("Run factory for : " + nv + "...");
+ ((BndWrapper) nv).getFactory().run();
+ } else if (nv instanceof Runnable) {
+ ((Runnable) nv).run();
+ } else {
+ log.warn("Skip unsupported : " + nv);
+ }
+ } else {
+ if (log.isTraceEnabled())
+ log.trace("Already available : " + nv);
+ }
+ }
+
+ /* DEPENDENCY INJECTION */