/** * @return the list of required services */ public List<ServiceDependencyModel> getDependencies() { DependencyHandlerDescription handler = (DependencyHandlerDescription) architecture.getInstanceDescription() .getHandlerDescription("org.apache.felix.ipojo:requires"); if (handler == null) { return Collections.emptyList(); } else { List<ServiceDependencyModel> list = new ArrayList<>(handler.getDependencies().length); for (DependencyDescription dependency : handler.getDependencies()) { list.add(new ServiceDependencyModel(dependency)); } return list; } }
private List<InstanceDescription> getInvalidControllers() { List<InstanceDescription> invalid = new ArrayList<>(); for (Architecture architecture : architectures) { final InstanceDescription description = architecture.getInstanceDescription(); // Is it invalid ? if (description.getState() == ComponentInstance.INVALID) { // Is it a controller ProvidedServiceHandlerDescription hd = (ProvidedServiceHandlerDescription) description.getHandlerDescription("org.apache.felix.ipojo:provides"); if (hd != null) { for (ProvidedServiceDescription psd : hd.getProvidedServices()) { if (Arrays.asList(psd.getServiceSpecifications()).contains(org.wisdom.api.Controller.class .getName())) { invalid.add(description); } } } } } return invalid; }
/** * @return the list of provided services */ public List<ProvidedServiceModel> getServices() { ProvidedServiceHandlerDescription pshd = (ProvidedServiceHandlerDescription) architecture.getInstanceDescription().getHandlerDescription("org" + ".apache.felix.ipojo:provides"); if (pshd == null) { return Collections.emptyList(); } else { List<ProvidedServiceModel> list = new ArrayList<>(pshd.getProvidedServices().length); for (ProvidedServiceDescription description : pshd.getProvidedServices()) { list.add(new ProvidedServiceModel(description)); } return list; } }
private static String extractInvalidityReason(InstanceDescription description) { // As it generally comes from the @Requires, let's have a look DependencyHandlerDescription deps = (DependencyHandlerDescription) description.getHandlerDescription("org.apache.felix.ipojo:requires"); if (deps != null && !deps.isValid()) { for (DependencyDescription dd : deps.getDependencies()) { if (dd.getState() == DependencyModel.UNRESOLVED) { if (dd.getSpecification().equals(Template.class.getName())) { // View case return "Missing template : " + extractTemplateName(dd.getFilter()); } else if (dd.getSpecification().equals(Crud.class.getName())) { // Crud case return "Missing model : " + extractModelName(dd.getFilter()); } // General case return "Missing service : " + dd.getSpecification(); } } } // It's not the dependency handler for (HandlerDescription hd : description.getHandlers()) { if (!hd.isValid()) { return "Invalid handler " + hd.getHandlerName(); } } return ""; }
pw.value(instance.getComponentDescription().getName()); getProvidedServiceDetail(pw, instance.getHandlerDescription("org.apache.felix.ipojo:provides")); getRequiredServiceDetail(pw, instance.getHandlerDescription("org.apache.felix.ipojo:requires"));