/** * * @param observerMethod * @param probe * @return */ static JsonObjectBuilder createFullObserverJson(ObserverMethod<?> observerMethod, Probe probe) { JsonObjectBuilder observerBuilder = createBasicObserverJson(observerMethod, probe); if (observerMethod instanceof ObserverMethodImpl) { ObserverMethodImpl<?, ?> observerMethodImpl = (ObserverMethodImpl<?, ?>) observerMethod; observerBuilder.add(ANNOTATED_METHOD, annotatedMethodToString(observerMethodImpl.getMethod().getAnnotated(), observerMethodImpl.getBeanClass())); } return observerBuilder; }
switch (representation) { case SIMPLE: beansBuilder.add(createSimpleBeanJsonWithDependencies(bean, probe)); break; case BASIC: beansBuilder.add(createBasicBeanJson(bean, probe)); break; case FULL: beansBuilder.add(createFullBeanJson(bean, true, true, beanManager, probe)); break; default: return createPageJson(page, beansBuilder);
/** * * @param probe * @return the collection of all observer methods, using basic representation */ static String createInvocationsJson(Page<Invocation> page, Probe probe, Representation representation) { JsonArrayBuilder invocationsBuilder = Json.arrayBuilder(); if (representation == null) { representation = Representation.BASIC; } for (Invocation invocation : page.getData()) { switch (representation) { case BASIC: invocationsBuilder.add(createBasicInvocationJson(invocation, probe)); break; case FULL: invocationsBuilder.add(createFullInvocationJson(invocation, probe)); break; default: throw new UnsupportedOperationException(representation.toString()); } } return createPageJson(page, invocationsBuilder); }
/** * * @param probe * @return the collection of all observer methods, using basic representation */ static String createObserversJson(Page<ObserverMethod<?>> page, Probe probe, Representation representation) { JsonArrayBuilder observersBuilder = Json.arrayBuilder(); if (representation == null) { representation = Representation.BASIC; } for (ObserverMethod<?> observerMethod : page.getData()) { switch (representation) { case BASIC: observersBuilder.add(createBasicObserverJson(observerMethod, probe)); break; case FULL: observersBuilder.add(createFullObserverJson(observerMethod, probe)); break; default: throw new UnsupportedOperationException(representation.toString()); } } return createPageJson(page, observersBuilder); }
JsonObjectBuilder beanBuilder = createBasicBeanJson(bean, probe); beanBuilder.add(DECLARING_BEAN, createSimpleBeanJson(producerBean.getDeclaringBean(), probe)); beanBuilder.add(DISPOSAL_METHOD, annotatedMethodToString(producer.getDisposalMethod().getAnnotated(), bean.getBeanClass())); beanBuilder.add(PRODUCER_METHOD, annotatedMethodToString((AnnotatedMethod<?>) producer.getAnnotated(), bean.getBeanClass())); } else if (producerBean.getProducer() instanceof ProducerFieldProducer) { ProducerFieldProducer<?, ?> producer = (ProducerFieldProducer<?, ?>) producerBean.getProducer(); if (producer.getDisposalMethod() != null) { beanBuilder.add(DISPOSAL_METHOD, annotatedMethodToString(producer.getDisposalMethod().getAnnotated(), bean.getBeanClass())); beanBuilder.add(PRODUCER_FIELD, annotatedFieldToString(producer.getAnnotated(), bean.getBeanClass())); JsonArrayBuilder dependencies = createDependencies(null, bean, probe, transientDependencies); if (dependencies != null) { beanBuilder.add(DEPENDENCIES, dependencies); JsonArrayBuilder dependents = createDependents(null, bean, probe, transientDependents); if (dependents != null) { beanBuilder.add(DEPENDENTS, dependents); ObserverMethodImpl<?, ?> observerMethodImpl = (ObserverMethodImpl<?, ?>) observerMethod; if (bean.equals(observerMethodImpl.getDeclaringBean())) { JsonObjectBuilder observerBuilder = createSimpleObserverJson(observerMethodImpl, probe); observerBuilder.add(RECEPTION, observerMethodImpl.getReception().toString()); observerBuilder.add(TX_PHASE, observerMethodImpl.getTransactionPhase().toString()); observerBuilder.add(ANNOTATED_METHOD, annotatedMethodToString(observerMethodImpl.getMethod().getAnnotated(), bean.getBeanClass())); declaredObservers.add(observerBuilder);
Collections.sort(bdas, probe.getBdaComparator()); for (BeanDeploymentArchive bda : bdas) { JsonObjectBuilder bdaBuilder = createSimpleBdaJson(bda.getId()); if (beansXml.getScanning() != null && (!beansXml.getScanning().getExcludes().isEmpty() || !beansXml.getScanning().getExcludes().isEmpty())) { JsonArrayBuilder scanBuilder = Json.arrayBuilder(); createMetadataArrayJson(scanBuilder, beansXml.getScanning().getExcludes(), EXCLUDE); createMetadataArrayJson(scanBuilder, beansXml.getScanning().getIncludes(), INCLUDE); beansXmlBuilder.add(SCAN, scanBuilder); Bean<?> interceptorBean = findEnabledBean(interceptor, BeanKind.INTERCEPTOR, probe); if (interceptorBean != null) { JsonObjectBuilder builder = decorateProbeComponent(interceptor, createSimpleBeanJson(interceptorBean, probe)); if (beansXml != null) { for (Metadata<String> meta : beansXml.getEnabledInterceptors()) { Bean<?> decoratorBean = findEnabledBean(decorator, BeanKind.DECORATOR, probe); if (decoratorBean != null) { JsonObjectBuilder builder = createSimpleBeanJson(decoratorBean, probe); if (beansXml != null) { for (Metadata<String> meta : beansXml.getEnabledDecorators()) { JsonArrayBuilder alternatives = Json.arrayBuilder(); for (Class<?> clazz : Sets.union(enablement.getAlternativeClasses(), enablement.getGlobalAlternatives())) { Bean<?> alternativeBean = findAlternativeBean(clazz, probe); if (alternativeBean != null) { JsonObjectBuilder builder = createSimpleBeanJson(findAlternativeBean(clazz, probe), probe); if (enablement.getAlternativeClasses().contains(clazz)) { builder.add(BEANS_XML, true);
dependenciesBuilder.add(createDependency(null, dep, probe).add(IS_UNSATISFIED, true)); continue; dependenciesBuilder.add(createDependency(null, dep, probe).add(IS_AMBIGUOUS, true)); continue; dependenciesBuilder.add(createBuiltInDependency(dep, probe, beanManager, DEPENDENCIES)); continue; dependenciesBuilder.add(createDependency(dep.getBean(), dep, probe)); continue; JsonObjectBuilder dependency = createDependency(dep.getBean(), dep, probe); dependency.add(DECLARING_BEAN, createDeclaringBean(dep.getBean(), probe)); dependenciesBuilder.add(dependency); dependency.add(DEPENDENCIES, createDependencies(bean, dep.getBean(), probe, true));
/** * * @param bean * @param probe * @return */ static JsonArrayBuilder createDeclaredProducers(Bean<?> bean, Probe probe) { JsonArrayBuilder declaredProducers = Json.arrayBuilder(); for (AbstractProducerBean<?, ?, ?> producerBean : probe.getDeclaredProducers(bean)) { JsonObjectBuilder producerBuilder = createSimpleBeanJson(producerBean, probe); if (producerBean.getProducer() instanceof ProducerMethodProducer) { ProducerMethodProducer<?, ?> producer = (ProducerMethodProducer<?, ?>) producerBean.getProducer(); producerBuilder.add(PRODUCER_INFO, annotatedMethodToString((AnnotatedMethod<?>) producer.getAnnotated(), bean.getBeanClass())); } else if (producerBean.getProducer() instanceof ProducerFieldProducer) { ProducerFieldProducer<?, ?> producer = (ProducerFieldProducer<?, ?>) producerBean.getProducer(); producerBuilder.add(PRODUCER_INFO, annotatedFieldToString(producer.getAnnotated(), bean.getBeanClass())); } declaredProducers.add(producerBuilder); } return declaredProducers; }
/** * * @param invocation * @param probe * @return */ static JsonObjectBuilder createFullInvocationJson(Invocation invocation, Probe probe) { JsonObjectBuilder invocationBuilder = createBasicInvocationJson(invocation, probe); invocationBuilder.add(TYPE, invocation.getType().toString()); if (invocation.hasChildren()) { JsonArrayBuilder childrenBuilder = Json.arrayBuilder(); for (Invocation child : invocation.getChildren()) { childrenBuilder.add(createFullInvocationJson(child, probe)); } invocationBuilder.add(CHILDREN, childrenBuilder); } return invocationBuilder; }
@Override public String receiveBeans(int pageIndex, int pageSize, String filters, String representation) { return JsonObjects.createBeansJson(Queries.find(probe.getBeans(), pageIndex, pageSize, Queries.initFilters(filters, new BeanFilters(probe))), probe, beanManager, Representation.from(representation)); }
@Override public String receiveContext(String id) { final Class<? extends Annotation> scope = Components.INSPECTABLE_SCOPES.get(id); if (scope != null) { return JsonObjects.createContextJson(id, scope, beanManager, probe, null).build(); } return null; }
@Override public String receiveContexts() { return JsonObjects.createContextsJson(beanManager, probe).build(); }
JsonObjectBuilder beanBuilder = createBasicBeanJson(bean, probe); beanBuilder.add(DECLARING_BEAN, createSimpleBeanJson(producerBean.getDeclaringBean(), probe)); beanBuilder.add(DISPOSAL_METHOD, annotatedMethodToString(producer.getDisposalMethod().getAnnotated(), bean.getBeanClass())); beanBuilder.add(PRODUCER_METHOD, annotatedMethodToString((AnnotatedMethod<?>) producer.getAnnotated(), bean.getBeanClass())); } else if (producerBean.getProducer() instanceof ProducerFieldProducer) { ProducerFieldProducer<?, ?> producer = (ProducerFieldProducer<?, ?>) producerBean.getProducer(); if (producer.getDisposalMethod() != null) { beanBuilder.add(DISPOSAL_METHOD, annotatedMethodToString(producer.getDisposalMethod().getAnnotated(), bean.getBeanClass())); beanBuilder.add(PRODUCER_FIELD, annotatedFieldToString(producer.getAnnotated(), bean.getBeanClass())); JsonArrayBuilder dependencies = createDependencies(null, bean, probe, transientDependencies); if (dependencies != null) { beanBuilder.add(DEPENDENCIES, dependencies); JsonArrayBuilder dependents = createDependents(null, bean, probe, transientDependents); if (dependents != null) { beanBuilder.add(DEPENDENTS, dependents); ObserverMethodImpl<?, ?> observerMethodImpl = (ObserverMethodImpl<?, ?>) observerMethod; if (bean.equals(observerMethodImpl.getDeclaringBean())) { JsonObjectBuilder observerBuilder = createSimpleObserverJson(observerMethodImpl, probe); observerBuilder.add(RECEPTION, observerMethodImpl.getReception().toString()); observerBuilder.add(TX_PHASE, observerMethodImpl.getTransactionPhase().toString()); observerBuilder.add(ANNOTATED_METHOD, annotatedMethodToString(observerMethodImpl.getMethod().getAnnotated(), bean.getBeanClass())); declaredObservers.add(observerBuilder);
Collections.sort(bdas, probe.getBdaComparator()); for (BeanDeploymentArchive bda : bdas) { JsonObjectBuilder bdaBuilder = createSimpleBdaJson(bda.getId()); if (beansXml.getScanning() != null && (!beansXml.getScanning().getExcludes().isEmpty() || !beansXml.getScanning().getExcludes().isEmpty())) { JsonArrayBuilder scanBuilder = Json.arrayBuilder(); createMetadataArrayJson(scanBuilder, beansXml.getScanning().getExcludes(), EXCLUDE); createMetadataArrayJson(scanBuilder, beansXml.getScanning().getIncludes(), INCLUDE); beansXmlBuilder.add(SCAN, scanBuilder); Bean<?> interceptorBean = findEnabledBean(interceptor, BeanKind.INTERCEPTOR, probe); if (interceptorBean != null) { JsonObjectBuilder builder = decorateProbeComponent(interceptor, createSimpleBeanJson(interceptorBean, probe)); if (beansXml != null) { for (Metadata<String> meta : beansXml.getEnabledInterceptors()) { Bean<?> decoratorBean = findEnabledBean(decorator, BeanKind.DECORATOR, probe); if (decoratorBean != null) { JsonObjectBuilder builder = createSimpleBeanJson(decoratorBean, probe); if (beansXml != null) { for (Metadata<String> meta : beansXml.getEnabledDecorators()) { JsonArrayBuilder alternatives = Json.arrayBuilder(); for (Class<?> clazz : Sets.union(enablement.getAlternativeClasses(), enablement.getGlobalAlternatives())) { Bean<?> alternativeBean = findAlternativeBean(clazz, probe); if (alternativeBean != null) { JsonObjectBuilder builder = createSimpleBeanJson(alternativeBean, probe); if (enablement.getAlternativeClasses().contains(clazz)) { builder.add(BEANS_XML, true);
dependenciesBuilder.add(createDependency(null, dep, probe).add(IS_UNSATISFIED, true)); continue; dependenciesBuilder.add(createDependency(null, dep, probe).add(IS_AMBIGUOUS, true)); continue; dependenciesBuilder.add(createBuiltInDependency(dep, probe, beanManager, DEPENDENCIES)); continue; dependenciesBuilder.add(createDependency(dep.getBean(), dep, probe)); continue; JsonObjectBuilder dependency = createDependency(dep.getBean(), dep, probe); dependency.add(DECLARING_BEAN, createDeclaringBean(dep.getBean(), probe)); dependenciesBuilder.add(dependency); dependency.add(DEPENDENCIES, createDependencies(bean, dep.getBean(), probe, true));
/** * * @param bean * @param probe * @return */ static JsonArrayBuilder createDeclaredProducers(Bean<?> bean, Probe probe) { JsonArrayBuilder declaredProducers = Json.arrayBuilder(); for (AbstractProducerBean<?, ?, ?> producerBean : probe.getDeclaredProducers(bean)) { JsonObjectBuilder producerBuilder = createSimpleBeanJson(producerBean, probe); if (producerBean.getProducer() instanceof ProducerMethodProducer) { ProducerMethodProducer<?, ?> producer = (ProducerMethodProducer<?, ?>) producerBean.getProducer(); producerBuilder.add(PRODUCER_INFO, annotatedMethodToString((AnnotatedMethod<?>) producer.getAnnotated(), bean.getBeanClass())); } else if (producerBean.getProducer() instanceof ProducerFieldProducer) { ProducerFieldProducer<?, ?> producer = (ProducerFieldProducer<?, ?>) producerBean.getProducer(); producerBuilder.add(PRODUCER_INFO, annotatedFieldToString(producer.getAnnotated(), bean.getBeanClass())); } declaredProducers.add(producerBuilder); } return declaredProducers; }
/** * * @param probe * @return the collection of all observer methods, using basic representation */ static String createObserversJson(Page<ObserverMethod<?>> page, Probe probe, Representation representation) { JsonArrayBuilder observersBuilder = Json.arrayBuilder(); if (representation == null) { representation = Representation.BASIC; } for (ObserverMethod<?> observerMethod : page.getData()) { switch (representation) { case BASIC: observersBuilder.add(createBasicObserverJson(observerMethod, probe)); break; case FULL: observersBuilder.add(createFullObserverJson(observerMethod, probe)); break; default: throw new UnsupportedOperationException(representation.toString()); } } return createPageJson(page, observersBuilder); }
/** * * @param invocation * @param probe * @return */ static JsonObjectBuilder createFullInvocationJson(Invocation invocation, Probe probe) { JsonObjectBuilder invocationBuilder = createBasicInvocationJson(invocation, probe); invocationBuilder.add(TYPE, invocation.getType().toString()); if (invocation.hasChildren()) { JsonArrayBuilder childrenBuilder = Json.arrayBuilder(); for (Invocation child : invocation.getChildren()) { childrenBuilder.add(createFullInvocationJson(child, probe)); } invocationBuilder.add(CHILDREN, childrenBuilder); } return invocationBuilder; }
@Override public String receiveBeans(int pageIndex, int pageSize, String filters, String representation) { return JsonObjects.createBeansJson(Queries.find(probe.getBeans(), pageIndex, pageSize, Queries.initFilters(filters, new BeanFilters(probe))), probe, beanManager, Representation.from(representation)); }
@Override public String receiveContext(String id) { final Class<? extends Annotation> scope = Components.INSPECTABLE_SCOPES.get(id); if (scope != null) { return JsonObjects.createContextJson(id, scope, beanManager, probe, null).build(); } return null; }