use of javax.inject.Named in project xwiki-platform by xwiki.
the class AbstractHibernateDataMigration method getName.
@Override
public String getName() {
String hint = null;
Named named = this.getClass().getAnnotation(Named.class);
if (named != null) {
hint = named.value();
}
return hint;
}
use of javax.inject.Named in project portfolio by buchen.
the class OpenBookmarksHandler method execute.
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, ESelectionService selectionService) {
Object object = selectionService.getSelection();
if (!(object instanceof SecuritySelection))
return;
SecuritySelection selection = (SecuritySelection) object;
if (selection.getClient().getSettings().getBookmarks().isEmpty())
return;
List<Bookmark> bookmarks = selection.getClient().getSettings().getBookmarks().stream().filter(b -> !b.isSeparator()).collect(Collectors.toList());
BookmarkPopup<Bookmark> popup = new //
BookmarkPopup<>(//
shell, //
selection.getSecurity().getName(), //
bookmarks, //
Bookmark::getLabel, bm -> DesktopAPI.browse(bm.constructURL(selection.getClient(), selection.getSecurity())));
popup.open();
}
use of javax.inject.Named in project unleash-maven-plugin by shillner.
the class AbstractUnleashMojo method getUnleashOutputFolder.
@MojoProduces
@Named("unleashOutputFolder")
private File getUnleashOutputFolder() {
File folder = new File(this.project.getBuild().getDirectory(), "unleash");
folder.mkdirs();
return folder;
}
use of javax.inject.Named in project fabric8 by fabric8io.
the class KubernetesModelProcessorProcessor method process.
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
CompilationTaskFactory compilationTaskFactory = new CompilationTaskFactory(processingEnv);
Set<TypeElement> processors = new HashSet<>();
// 1st pass collect classes to compile.
for (Element element : roundEnv.getElementsAnnotatedWith(KubernetesModelProcessor.class)) {
processors.add(getClassElement(element));
}
if (processors.isEmpty()) {
return true;
}
StringWriter writer = new StringWriter();
try {
Callable<Boolean> compileTask = compilationTaskFactory.create(processors, writer);
if (!compileTask.call()) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Failed to compile provider classes. See output below.");
printCompileErrors(compilationTaskFactory);
return false;
}
} catch (Exception e) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Error to compile provider classes, due to: " + e.getMessage() + ". See output below.");
return false;
} finally {
String output = writer.toString();
if (Strings.isNullOrBlank(output)) {
output = "success";
}
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Fabric8 model generator compiler output:" + output);
}
// 2nd pass generate json.
for (Element element : roundEnv.getElementsAnnotatedWith(KubernetesModelProcessor.class)) {
KubernetesModelProcessor annotation = element.getAnnotation(KubernetesModelProcessor.class);
String kubernetesJsonFileName = annotation.value();
KubernetesResource json = readJson(kubernetesJsonFileName);
Builder<? extends KubernetesResource> builder;
if (json instanceof KubernetesList) {
builder = new KubernetesListBuilder((KubernetesList) json);
} else if (json instanceof Template) {
builder = new TemplateBuilder((Template) json);
} else if (json != null) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unknown Kubernetes json type:" + json.getClass());
return false;
} else {
return false;
}
try {
if (element instanceof TypeElement) {
for (ExecutableElement methodElement : ElementFilter.methodsIn(element.getEnclosedElements())) {
TypeElement classElement = getClassElement(element);
Class<?> cls = Class.forName(classElement.getQualifiedName().toString());
final Object instance = cls.newInstance();
final String methodName = methodElement.getSimpleName().toString();
if (builder instanceof Visitable) {
((Visitable) builder).accept(new Visitor() {
@Override
public void visit(Object o) {
for (Method m : findMethods(instance, methodName, o.getClass())) {
Named named = m.getAnnotation(Named.class);
if (named != null && !Strings.isNullOrBlank(named.value())) {
String objectName = getName(o);
// If a name has been explicitly specified check if there is a match
if (!named.value().equals(objectName)) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING, "Named method:" + m.getName() + " with name:" + named.value() + " doesn't match: " + objectName + ", ignoring");
return;
}
}
try {
m.invoke(instance, o);
} catch (IllegalAccessException e) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Error invoking visitor method:" + m.getName() + " on:" + instance + "with argument:" + o);
} catch (InvocationTargetException e) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Error invoking visitor method:" + m.getName() + " on:" + instance + "with argument:" + o);
}
}
}
});
} else {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Json type is not visitable.");
}
}
}
json = builder.build();
generateJson(kubernetesJsonFileName, json);
} catch (Exception ex) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Error creating Kubernetes configuration:" + ex.getMessage());
}
}
return true;
}
use of javax.inject.Named in project mule by mulesoft.
the class SimpleRegistry method injectInto.
private <T> T injectInto(T object) {
for (Field field : getAllFields(object.getClass(), withAnnotation(Inject.class))) {
Class<?> dependencyType = field.getType();
boolean nullToOptional = false;
if (dependencyType.equals(Optional.class)) {
Type type = ((ParameterizedType) (field.getGenericType())).getActualTypeArguments()[0];
if (type instanceof ParameterizedType) {
dependencyType = (Class<?>) ((ParameterizedType) type).getRawType();
} else {
dependencyType = (Class<?>) type;
}
nullToOptional = true;
}
Named nameAnnotation = field.getAnnotation(Named.class);
try {
field.setAccessible(true);
Object dependency = resolveObjectToInject(dependencyType, nameAnnotation != null ? nameAnnotation.value() : null, nullToOptional);
if (dependency != null) {
field.set(object, dependency);
}
} catch (Exception e) {
throw new RuntimeException(format("Could not inject dependency on field %s of type %s", field.getName(), object.getClass().getName()), e);
}
}
for (Method method : getAllMethods(object.getClass(), withAnnotation(Inject.class))) {
if (method.getParameters().length == 1) {
Class<?> dependencyType = method.getParameterTypes()[0];
boolean nullToOptional = false;
if (dependencyType.equals(Optional.class)) {
Type type = ((ParameterizedType) (method.getGenericParameterTypes()[0])).getActualTypeArguments()[0];
if (type instanceof ParameterizedType) {
dependencyType = (Class<?>) ((ParameterizedType) type).getRawType();
} else {
dependencyType = (Class<?>) type;
}
nullToOptional = true;
}
Named nameAnnotation = method.getAnnotation(Named.class);
try {
Object dependency = resolveObjectToInject(dependencyType, nameAnnotation != null ? nameAnnotation.value() : null, nullToOptional);
if (dependency != null) {
method.invoke(object, dependency);
}
} catch (Exception e) {
throw new RuntimeException(format("Could not inject dependency on method %s of type %s", method.getName(), object.getClass().getName()), e);
}
}
}
return object;
}
Aggregations