private TypeDefinition findBestTdef(TypeFQN fqn, ContainerRoot model) { TypeDefinition[] tdefs = new TypeDefinition[1]; // trick the final lambda stuff :o org.kevoree.Package pkg = model.findPackagesByID(fqn.namespace); if (pkg != null) { String path = "typeDefinitions[name=" + fqn.name; if (fqn.version.tdef.equals(TypeFQN.Version.LATEST)) { path += ']'; } else { path += ",version=" + fqn.version.tdef + ']'; } pkg.select(path) .stream() .map(t -> (TypeDefinition) t) .forEach(t -> { // if they are multiple versions of a TypeDefinition // then we need the LATEST one // or the only one if a version has been specified if (tdefs[0] != null) { long t0 = Long.valueOf(tdefs[0].getVersion()); long t1 = Long.valueOf(t.getVersion()); if (t0 < t1) { tdefs[0] = t; } } else { tdefs[0] = t; } }); } return tdefs[0]; }
tdefTags.put(key, tdef.getVersion()); Log.trace("TagResolver linked {}/LATEST to {}/{}", key, key, tdef.getVersion()); if (duIsTag) { if (duTag.equals(TypeFQN.Version.LATEST)) { latestDUS.put(key + '/' + tdef.getVersion(), getDUVersions(tdef.getDeployUnits())); Log.trace("TagResolver linked {} to {}/{}/{}", fqn, key, fqn.version.tdef, latestDUS.get(key + '/' + tdef.getVersion())); } else if (duTag.equals(TypeFQN.Version.RELEASE)) { releaseDUS.put(key + '/' + tdef.getVersion(), getDUVersions(tdef.getDeployUnits())); Log.trace("TagResolver linked {} to {}/{}/{}", fqn, key, fqn.version.tdef, releaseDUS.get(key + '/' + tdef.getVersion()));
private String searchMainClassName(final Instance instance) { TypeDefinition td = instance.getTypeDefinition(); List<KMFContainer> filters = td.select("deployUnits[]/filters[name=platform,value=java]"); if (filters.size() > 1) { String filtersStr = ""; for (int i=0; i < filters.size(); i++) { filtersStr += filters.get(i).eContainer().path(); if (i < filters.size() - 1) { filtersStr += ", "; } } throw new RuntimeException("Instance " + instance.path() + " has " + filters.size() + " deployUnits ("+filtersStr+") that matches platform \"java\" (must only be one)"); } DeployUnit du = (DeployUnit) filters.get(0).eContainer(); String tag = "class:" + td.getName() + ":" + td.getVersion(); Value tdefClassName = du.findFiltersByID(tag); if (tdefClassName != null) { return tdefClassName.getValue(); } else { throw new RuntimeException("Cannot find meta-data \"" + tag + "\" in DeployUnit " + du.getHashcode() + "/" + du.getName() + "/" + du.getVersion()); } }
private String instance2fqn(Instance instance) { if (instance instanceof ContainerNode || instance instanceof Group || instance instanceof Channel) { return instance.getName() + ": " + instance.getTypeDefinition().getName() + "/" + instance.getTypeDefinition().getVersion(); } else { return ((NamedElement) instance.eContainer()).getName() + "." + instance.getName() + ": " + instance.getTypeDefinition().getName() + "/" + instance.getTypeDefinition().getVersion(); } } }
tdefStr = serializer.serialize(tdef).trim(); } catch (Exception e) { throw new MojoExecutionException("Unable to serialize TypeDefinition " + namespace + "." + tdef.getName() + "/" + tdef.getVersion()); this.getLog().info("Looking for TypeDefinition " + namespace + "." + tdef.getName() + "/" + tdef.getVersion() + " in the registry..."); try { HttpResponse<RTypeDefinition> tdefRes = client.getTdef(namespace, tdef.getName(), Long.valueOf(tdef.getVersion())); if (tdefRes.getStatus() == 200) { newTdef.setVersion(Long.valueOf(tdef.getVersion())); newTdef.setModel(tdefStr); if (newTdefRes.getStatus() == 201) { this.getLog().info(""); this.getLog().info("Success: " + namespace + "." + tdef.getName() + "/" + tdef.getVersion() + " published on registry"); } else if (newTdefRes.getStatus() == 403) { throw new MojoExecutionException("You are not a member of namespace \""+namespace+"\""); throw new MojoExecutionException("Namespace \""+namespace+"\" does not exist in the registry"); } else { throw new MojoExecutionException("Unable to create " + namespace + "." + tdef.getName() + "/" + tdef.getVersion() + "(status: " + newTdefRes.getStatusText() + ")"); throw new MojoExecutionException("Unable to find " + namespace + "." + tdef.getName() + "/" + tdef.getVersion() + " (status: " + tdefRes.getStatusText() + ")");
private String searchMainClassName(final Instance instance) throws KevoreeCoreException { TypeDefinition td = instance.getTypeDefinition(); DeployUnit du = validateFilters(instance, td.select("deployUnits[]/filters[name=platform,value=java]")); String tag = "class:" + td.getName() + ":" + td.getVersion(); Value tdefClassName = du.findFiltersByID(tag); if (tdefClassName != null) { return tdefClassName.getValue(); } else { throw new RuntimeException("Cannot find meta-data \"" + tag + "\" in DeployUnit " + du.getHashcode() + "/" + du.getName() + "/" + du.getVersion()); } }
public boolean execute() { List<KMFContainer> metas = c.getTypeDefinition().select("deployUnits[]/filters[name=platform,value=java]"); if (metas.isEmpty()) { Log.error("No DeployUnit found for '" + c.getName() + ": " + c.getTypeDefinition().getName() + "/" + c.getTypeDefinition().getVersion() + "' that matches the 'java' platform"); return false; } Thread subThread = null; try { tg = new KevoreeThreadGroup("kev/" + c.path()); subThread = new Thread(tg, this); subThread.start(); subThread.join(); return resultSub; } catch (Throwable e) { if (subThread != null) { try { //subThread.stop(); //kill sub thread subThread.interrupt(); } catch (Throwable t) { //ignore killing thread } } Log.error("Could not add the instance {}:{}", c.getName(), c.getTypeDefinition().getName(), e); return false; } }
HttpResponse<RDeployUnit> duRes = client.getDu(namespace, tdef.getName(), Long.valueOf(tdef.getVersion()), du.getName(), du.getVersion(), platform); if (duRes.getStatus() == 200) { RDeployUnit regDu = duRes.getBody(); newDu.setPlatform("java"); newDu.setModel(duStr); HttpResponse<RDeployUnit> newDuRes = client.createDu(namespace, tdef.getName(), Long.valueOf(tdef.getVersion()), newDu); if (newDuRes.getStatus() == 201) { getLog().info("Successfully created");
getLog().info("TypeDefinition"); getLog().info(" name " + tdef.getName()); getLog().info(" version " + tdef.getVersion()); getLog().info(" description " + printDesc(tdef)); getLog().info(""); Value classFilter = (Value) factory.createValue().withName("class:" + tdef.getName() + ":" + tdef.getVersion()); classFilter.setValue(tdefClass.getName()); du.addFilters(classFilter);
private static void processTypeDefinition(TypeDefinition td, DeployUnit du, CtClass clazz, ContainerRoot root, KevoreeFactory factory) throws Exception { if (Modifier.isAbstract(clazz.getModifiers())) { td.setAbstract(true); } else { td.setAbstract(false); } final Value javaClazz = factory.createValue(); javaClazz.setName("class:" + td.getName() + ":" + td.getVersion()); javaClazz.setValue(clazz.getName()); du.addFilters(javaClazz); td.addDeployUnits(du); try { checkParent(td, clazz.getSuperclass(), clazz, root, factory); } catch (NotFoundException e) { e.printStackTrace(); } try { for (CtClass interf : clazz.getInterfaces()) { checkParent(td, interf, clazz, root, factory); } } catch (NotFoundException e) { e.printStackTrace(); } }
throw new KevoreeDeployException("You are trying to start a NodeType that does not target this runtime version", e); } catch (KevoreeCoreException e) { throw new KevoreeDeployException("Unable to create instance " + node.getName() + ": " + node.getTypeDefinition().getName() + "/" + node.getTypeDefinition().getVersion() + "/" + node.getTypeDefinition().getDeployUnits().get(0).getVersion(), e);