public String getName() { if (name == null) { if (methodAccess != null) { name = methodAccess.name(); } } return name; }
public ServiceMethodMeta(MethodAccess methodAccess, List<RequestMeta> list) { this(true, methodAccess, methodAccess.name(), list, TypeType.OBJECT, Collections.emptyList(), false, GenericReturnType.NONE, null, null, null, null, null, null, null, -1, null); }
private void registerMethod(MethodAccess methodAccess) { if (!methodAccess.isPrivate()) { String methodAddress = readAddressFromAnnotation(methodAccess); if (methodAddress != null && !methodAddress.isEmpty()) { doRegisterMethodUnderURI(methodAccess, methodAddress); } } doRegisterMethodUnderURI(methodAccess, methodAccess.name()); doRegisterMethodUnderURI(methodAccess, methodAccess.name().toLowerCase()); doRegisterMethodUnderURI(methodAccess, methodAccess.name().toUpperCase()); }
public void addMethods(final String path, final Collection<MethodAccess> methods) { /* Only add methods that could be REST endpoints. */ methods.stream().filter(methodAccess -> !methodAccess.isPrivate() && //No private methods !methodAccess.isStatic() && //No static methods !methodAccess.method().isSynthetic() && //No synthetic methods !methodAccess.method().getDeclaringClass().getName().contains("$$EnhancerByGuice$$") && !methodAccess.name().contains("$")) //No methods with $ as this could be Scala generated // method or byte code lib generated .forEach(methodAccess -> addMethod(path, methodAccess)); }
public ServiceBuilder setServiceObject(final Object serviceObject) { if (serviceObject == null) { throw new IllegalArgumentException("ServiceBuilder setServiceObject:: serviceObject cant be null"); } ClassMeta<?> classMeta = ClassMeta.classMeta(serviceObject.getClass()); Iterable<MethodAccess> methods = classMeta.methods(); Set<String> methodNames = new HashSet<>(); for (MethodAccess methodAccess : methods) { if (methodAccess.isPrivate() || methodAccess.method().getDeclaringClass().getName().contains("$$EnhancerByGuice$$")) { continue; } if (methodNames.contains(methodAccess.name())) { logger.error("QBit does not support method overloading methods in Service Queues" + " problem name " + methodAccess.name() + " is overloaded " + methodNames + " from class " + classMeta.longName()); } else { methodNames.add(methodAccess.name()); } } this.serviceObject = serviceObject; return this; }
@SuppressWarnings("Convert2Lambda") private void extractListenerForRegularObject(final Object listener, final MethodAccess methodAccess, final String channel, final boolean consume) { logger.info("EventManager {}:: {} is listening with method {} on channel {} and is consuming? {}", name, listener.getClass().getSimpleName(), methodAccess.name(), channel, consume); if (consume) { /* Do not use Lambda, this has to be a consume! */ this.register(channel, new EventConsumer<Object>() { @Override public void listen(Event<Object> event) { invokeEventMethod(event, methodAccess, listener); } }); } else { /* Do not use Lambda, this has to be a subscriber! */ this.register(channel, new EventSubscriber<Object>() { @Override public void listen(Event<Object> event) { invokeEventMethod(event, methodAccess, listener); } }); } }
private void extractEventListenerFromMethod(final Object listener, final MethodAccess methodAccess, final AnnotationData listen, final ServiceQueue serviceQueue) { logger.info("EventManager {} ::extractEventListenerFromMethod :: " + "{} is listening with method {} using annotation data {} ", name, serviceQueue, methodAccess.name(), listen.getValues()); final String channel = listen.getValues().get("value").toString(); if (Str.isEmpty(channel)) { return; } final boolean consume = (boolean) listen.getValues().get("consume"); if (serviceQueue == null) { extractListenerForRegularObject(listener, methodAccess, channel, consume); } else { extractListenerForService(serviceQueue, channel, consume); } }
private <T> Map<String, String> createMethodToChannelMap(final String channelPrefix, final Class<T> eventBusProxyInterface) { final Map<String, String> methodToChannelMap = new ConcurrentHashMap<>(20); final ClassMeta<T> classMeta = classMeta(eventBusProxyInterface); final AnnotationData classAnnotation = classMeta.annotation(AnnotationUtils.EVENT_CHANNEL_ANNOTATION_NAME); final String classEventBusName = AnnotationUtils.getClassEventChannelName(classMeta, classAnnotation); classMeta.methods().forEach(methodAccess -> { AnnotationData methodAnnotation = methodAccess.annotation(AnnotationUtils.EVENT_CHANNEL_ANNOTATION_NAME); String methodEventBusName = methodAnnotation != null && methodAnnotation.getValues().get("value") != null ? methodAnnotation.getValues().get("value").toString() : null; if (Str.isEmpty(methodEventBusName)) { methodEventBusName = methodAccess.name(); } final String channelName = createChannelName(channelPrefix, classEventBusName, methodEventBusName); methodToChannelMap.put(methodAccess.method().toString(), channelName); }); return methodToChannelMap; }
break; case DYNAMIC: switch (methodAccess.name()) { case "queueIdle": queueIdle = methodAccess;
private void extractPathsFromRequestMetaList(final String servicePath, final Map<String, PathBuilder> pathBuilderMap, final List<ServiceMethodMeta> methodMetas) { for (ServiceMethodMeta methodMeta : methodMetas) { final List<RequestMeta> requestEndpoints = methodMeta.getRequestEndpoints(); final MethodAccess methodAccess = methodMeta.getMethodAccess(); if (methodAccess.method().isSynthetic()) { continue; } if (methodAccess.annotation("HideMethod") != null) { continue; } for (RequestMeta requestMeta : requestEndpoints) { final String requestURI = (servicePath + requestMeta.getRequestURI()).replaceAll("//", "/"); final PathBuilder pathBuilder = createPathBuilderIfAbsent(pathBuilderMap, requestURI); final List<RequestMethod> requestMethods = requestMeta.getRequestMethods(); for (RequestMethod requestMethod : requestMethods) { /* If one fails, we want to continue processing. */ try { extractPathFromRequestMeta(methodMeta, methodAccess, requestMeta, pathBuilder, requestMethod); } catch (Exception ex) { logger.warn("Problem processing path {} {}", requestURI, methodAccess.name()); logger.debug("Problem processing path", ex); } } } } }
methodEventBusName = methodAccess.name();
methodEventBusName = methodAccess.name();
public String getName() { if (name == null) { if (methodAccess!=null) { name = methodAccess.name(); } } return name; }
public String getName() { if (name == null) { if (methodAccess != null) { name = methodAccess.name(); } } return name; }
public ServiceMethodMeta(MethodAccess methodAccess, List<RequestMeta> list) { this(true, methodAccess, methodAccess.name(), list, TypeType.OBJECT, Collections.emptyList(), false, GenericReturnType.NONE, null, null, null, null, null, null, null, -1, null); }
public ServiceMethodMeta(MethodAccess methodAccess, List<RequestMeta> list) { this(true, methodAccess, methodAccess.name(), list, TypeType.OBJECT, Collections.emptyList(), false, GenericReturnType.NONE, null, null, null, null, null, null, null, -1, null); }
private void registerMethod(MethodAccess methodAccess) { if (!methodAccess.isPrivate()) { String methodAddress = readAddressFromAnnotation(methodAccess); if (methodAddress != null && !methodAddress.isEmpty()) { doRegisterMethodUnderURI(methodAccess, methodAddress); } } doRegisterMethodUnderURI(methodAccess, methodAccess.name()); doRegisterMethodUnderURI(methodAccess, methodAccess.name().toLowerCase()); doRegisterMethodUnderURI(methodAccess, methodAccess.name().toUpperCase()); }
private void registerMethod(MethodAccess methodAccess) { if (!methodAccess.isPrivate()) { String methodAddress = readAddressFromAnnotation(methodAccess); if (methodAddress != null && !methodAddress.isEmpty()) { doRegisterMethodUnderURI(methodAccess, methodAddress); } } doRegisterMethodUnderURI(methodAccess, methodAccess.name()); doRegisterMethodUnderURI(methodAccess, methodAccess.name().toLowerCase()); doRegisterMethodUnderURI(methodAccess, methodAccess.name().toUpperCase()); }
operationBuilder.setSummary(methodMeta.getSummary()); addParameters(operationBuilder, requestMeta.getParameters()); operationBuilder.setOperationId(methodAccess.name());