private DeployUnit createDeployUnit() { DeployUnit du = factory.createDeployUnit(); du.setName(project.getArtifact().getArtifactId()); String hashcode = ModelBuilderHelper.createKey(namespace, project.getArtifactId(), project.getVersion(), null); du.setHashcode(hashcode); du.setVersion(project.getArtifact().getBaseVersion()); Value platform = factory.createValue(); platform.setName("platform"); platform.setValue("java"); du.addFilters(platform); Value kevoreeVersion = factory.createValue(); kevoreeVersion.setName("kevoree_version"); kevoreeVersion.setValue(factory.getVersion()); du.addFilters(kevoreeVersion); Value timestamp = factory.createValue(); timestamp.setName("timestamp"); timestamp.setValue(String.valueOf(System.currentTimeMillis())); du.addFilters(timestamp); // add repositories for (Repository repo : project.getRepositories()) { Value repoVal = factory.createValue(); repoVal.setName("repo_" + repo.getId()); repoVal.setValue(repo.getUrl()); du.addFilters(repoVal); } // set Maven groupId:artifactId:version du.setUrl(project.getArtifact().getGroupId() + ":" + du.getName() + ":" + du.getVersion()); return du; }
KMFContainer previousValue = modelService.getCurrentModel().getModel().findByPath(dicValue.path()); if (previousValue != null && previousValue instanceof Value) { valueToInject = ((Value) previousValue).getValue(); } else { Instance instance = (Instance) dicValue.eContainer().eContainer(); DictionaryAttribute dicAtt = instance.getTypeDefinition().getDictionaryType().findAttributesByID(dicValue.getName()); if (dicAtt.getDefaultValue() != null && !dicAtt.getDefaultValue().equals("")) { valueToInject = dicAtt.getDefaultValue(); fakeDicoValue.setValue(valueToInject); fakeDicoValue.setName(dicValue.getName()); Object reffoundO = registry.lookup(c); if (reffoundO != null) {
private Map<String, String> getRepositories(DeployUnit deployUnit) { Map<String, String> repositories = new HashMap<>(); // hacky way to treat Maven repositories as I don't want to change the Kevoree MM for (Value val : deployUnit.getFilters()) { if (val.getName().startsWith("repo_")) { repositories.put(val.getName().substring(5), val.getValue()); } } return repositories; }
private void debug(Value value) { Instance instance = (Instance) value.eContainer().eContainer(); DictionaryAttribute attr = instance.getTypeDefinition().getDictionaryType().findAttributesByID(value.getName()); if (attr.getFragmentDependant()) { Log.debug("Update param for {}.{}/{} = '{}'", instance.getName(), value.getName(), ((NamedElement) value.eContainer()).getName(), value.getValue()); } else { Log.debug("Update param for {}.{} = '{}'", instance.getName(), value.getName(), value.getValue()); } }
private DeployUnit getJavaDeployUnit(Instance instance) { TypeDefinition tdef = instance.getTypeDefinition(); if (tdef != null) { return tdef.getDeployUnits().stream().filter(du -> { Value filter = du.findFiltersByID("platform"); return filter != null && filter.getValue() != null && filter.getValue().equals("java"); }).findFirst().orElse(null); } return null; }
private TypeDefinition createTypeDefinition(Class<?> clazz) throws Exception { TypeDefinition tdef; Value desc = (Value) factory.createValue().withName("description"); ComponentType ca = ReflectUtils.findAnnotation(clazz, ComponentType.class); tdef.setVersion(String.valueOf(ca.version())); desc.setValue(ca.description()); NodeType ca = ReflectUtils.findAnnotation(clazz, NodeType.class); tdef.setVersion(String.valueOf(ca.version())); desc.setValue(ca.description()); GroupType ca = ReflectUtils.findAnnotation(clazz, GroupType.class); tdef.setVersion(String.valueOf(ca.version())); desc.setValue(ca.description()); ChannelType ca = ReflectUtils.findAnnotation(clazz, ChannelType.class); tdef.setVersion(String.valueOf(ca.version())); desc.setValue(ca.description()); } else { if (!desc.getValue().isEmpty()) { tdef.addMetaData(desc);
public boolean execute() { if (!forceInject) { ContainerRoot previousModel = modelService.getCurrentModel().getModel(); KMFContainer previousValue = previousModel.findByPath(dicValue.path()); if (previousValue == null) { Instance instance = (Instance) dicValue.eContainer().eContainer(); if (instance != null) { KMFContainer previousInstance = previousModel.findByPath(c.path()); if (previousInstance != null) { DictionaryType dt = instance.getTypeDefinition().getDictionaryType(); DictionaryAttribute dicAtt = dt.findAttributesByID(dicValue.getName()); if (dicAtt != null && dicAtt.getDefaultValue() != null && dicAtt.getDefaultValue().equals(dicValue.getValue())) { return true;
TupleObjPrim updateVal = new TupleObjPrim(val, AdaptationType.UpdateDictionaryInstance); if (!elementAlreadyProcessed.containsKey(updateVal.getKey())) { Object[] values = new Object[] { val.eContainer().eContainer(), val }; adaptationModel.getAdaptations().add(adapt(AdaptationType.UpdateDictionaryInstance, values)); elementAlreadyProcessed.put(updateVal.getKey(), updateVal); TupleObjPrim updateVal = new TupleObjPrim(val, AdaptationType.UpdateDictionaryInstance); if (!elementAlreadyProcessed.containsKey(updateVal.getKey())) { Object[] values = new Object[] { val.eContainer().eContainer(), val }; adaptationModel.getAdaptations().add(adapt(AdaptationType.UpdateDictionaryInstance, values)); elementAlreadyProcessed.put(updateVal.getKey(), updateVal);
private String printDesc(TypeDefinition tdef) { Value descMeta = tdef.findMetaDataByID("description"); if (descMeta != null) { String desc = descMeta.getValue(); if (desc.isEmpty()) { return "<none>"; } else { if (desc.length() > 50) { return desc.substring(0, 50) + "..."; } else { return desc; } } } else { return "<none>"; } }
private Map<String, String> getDUVersions(List<DeployUnit> dus) { Map<String, String> versions = new HashMap<>(); dus.forEach(du -> { String platform = du.findFiltersByID("platform").getValue(); versions.put(platform, du.getVersion()); }); return versions; } }
private ConfigurableMavenResolverSystem getResolver(DeployUnit deployUnit) { String offlineProp = System.getProperty("offline", "false"); boolean offline = Boolean.valueOf(offlineProp); ConfigurableMavenResolverSystem resolver = Maven .configureResolver() .useLegacyLocalRepo(true) .workOffline(offline); try { LogManager.getLogManager().readConfiguration(new FileInputStream(propFile)); } catch (IOException e) { throw new RuntimeException("Unable to read " + propFile.getAbsolutePath()); } // hacky way to treat Maven repositories as I don't want to change the Kevoree MM for (Value val : deployUnit.getFilters()) { if (val.getName().startsWith("repo_")) { try { resolver.withRemoteRepo(val.getName().substring(5), new URL(val.getValue()), "default"); } catch (MalformedURLException e) { throw new RuntimeException("Invalid repository URL: " + val.getValue()); } } } return resolver; }
private boolean isInstallable(TypeDefinition tdef) { List<DeployUnit> dus = tdef.getDeployUnits(); for (DeployUnit du : dus) { Value platform = du.findFiltersByID("platform"); if (platform != null && platform.getValue().equals("java")) { return true; } } return false; }
private boolean checkDUS(TypeDefinition tdef, Map<String, Object> duVersions) { boolean satisfied = true; for (Map.Entry<String, Object> entry : duVersions.entrySet()) { boolean found = false; for (int i=0; i < tdef.getDeployUnits().size(); i++) { DeployUnit du = tdef.getDeployUnits().get(i); String p = du.findFiltersByID("platform").getValue(); if (p.equals(entry.getKey()) && du.getVersion().equals(entry.getValue().toString())) { found = true; break; } } if (!found) { satisfied = false; break; } } return satisfied; } }