use of org.jboss.weld.config.ConfigurationKey in project core by weld.
the class Reports method addConfiguration.
private static void addConfiguration(HtmlTag body, BeanManagerImpl manager) {
body.add(HtmlTag.aname(CONFIG));
body.add(HtmlTag.h2(TITLE_CONFIG));
HtmlTag table = HtmlTag.stripedTable().appendTo(HtmlTag.div(CONFIG).appendTo(body));
HtmlTag.tr().add(HtmlTag.th(""), HtmlTag.th("Key"), HtmlTag.th("Default Value"), HtmlTag.th("Value"), HtmlTag.th("Description")).appendTo(table);
int idx = 0;
WeldConfiguration configuration = manager.getServices().get(WeldConfiguration.class);
for (ConfigurationKey key : getSortedConfigurationKeys()) {
Object defaultValue = key.getDefaultValue();
Object value = getValue(key, configuration);
if (value == null) {
// Unsupported property type
continue;
}
if (!defaultValue.equals(value)) {
String desc = getDesc(key);
table.add(HtmlTag.tr().add(HtmlTag.td(++idx + "."), HtmlTag.td(key.get()), HtmlTag.td(defaultValue.toString()), HtmlTag.td(value.toString()), HtmlTag.td().add(desc != null ? SafeString.of(desc) : "")));
}
}
}
use of org.jboss.weld.config.ConfigurationKey in project core by weld.
the class JsonObjects method createDeploymentJson.
/**
* @param beanManager
* @return the root resource representation
*/
@SuppressFBWarnings(value = "REC_CATCH_EXCEPTION", justification = "We want to catch all exceptions, runtime included.")
static String createDeploymentJson(BeanManagerImpl beanManager, Probe probe) {
Map<BeanDeploymentArchive, BeanManagerImpl> beanDeploymentArchivesMap = Container.instance(beanManager).beanDeploymentArchives();
AnnotationApiAbstraction annotationApi = beanManager.getServices().get(AnnotationApiAbstraction.class);
JsonObjectBuilder deploymentBuilder = Json.objectBuilder();
// INIT TS
deploymentBuilder.add(INIT_TS, probe.getInitTs());
// CONTEXT ID
deploymentBuilder.add(CONTEXT_ID, beanManager.getContextId());
// WELD VERSION
deploymentBuilder.add(VERSION, Formats.getSimpleVersion());
// BEAN DEPLOYMENT ARCHIVES
JsonArrayBuilder bdasBuilder = Json.arrayBuilder();
List<BeanDeploymentArchive> bdas = new ArrayList<BeanDeploymentArchive>(beanDeploymentArchivesMap.keySet());
Collections.sort(bdas, probe.getBdaComparator());
for (BeanDeploymentArchive bda : bdas) {
JsonObjectBuilder bdaBuilder = createSimpleBdaJson(bda.getId());
// If beans.xml is not found it's likely an implicit bean archive
BeansXml beansXml = bda.getBeansXml();
bdaBuilder.add(BEAN_DISCOVERY_MODE, beansXml != null ? beansXml.getBeanDiscoveryMode().toString() : BeanDiscoveryMode.ANNOTATED.toString());
// beans.xml
if (beansXml != null) {
JsonObjectBuilder beansXmlBuilder = Json.objectBuilder();
if (beansXml.equals(BeansXml.EMPTY_BEANS_XML)) {
beansXmlBuilder.add(MARKER, Boolean.TRUE);
} else {
beansXmlBuilder.add(Strings.URL, beansXml.getUrl() != null ? beansXml.getUrl().toString() : EMPTY);
beansXmlBuilder.add(VERSION, beansXml.getVersion() != null ? beansXml.getVersion().toString() : EMPTY);
beansXmlBuilder.add(TRIMMED, beansXml.isTrimmed());
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);
}
}
bdaBuilder.add(Strings.BEANS_XML, beansXmlBuilder);
}
// Enablement - interceptors, decorators, alternatives
JsonObjectBuilder enablementBuilder = Json.objectBuilder(true);
ModuleEnablement enablement = beanDeploymentArchivesMap.get(bda).getEnabled();
JsonArrayBuilder interceptors = Json.arrayBuilder();
for (Class<?> interceptor : Components.getSortedProbeComponetCandidates(enablement.getInterceptors())) {
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()) {
if (meta.getValue().equals(interceptorBean.getBeanClass().getName())) {
// Locally enabled
builder.add(BEANS_XML, true);
}
}
}
Object priority = interceptorBean.getBeanClass().getAnnotation(annotationApi.PRIORITY_ANNOTATION_CLASS);
if (priority != null) {
builder.add(PRIORITY, annotationApi.getPriority(priority));
}
if (builder.has(PRIORITY) && builder.has(BEANS_XML)) {
builder.add(CONFLICTS, true);
}
interceptors.add(builder);
}
}
enablementBuilder.add(INTERCEPTORS, interceptors);
JsonArrayBuilder decorators = Json.arrayBuilder();
for (Class<?> decorator : enablement.getDecorators()) {
Bean<?> decoratorBean = findEnabledBean(decorator, BeanKind.DECORATOR, probe);
if (decoratorBean != null) {
JsonObjectBuilder builder = createSimpleBeanJson(decoratorBean, probe);
if (beansXml != null) {
for (Metadata<String> meta : beansXml.getEnabledDecorators()) {
if (meta.getValue().equals(decoratorBean.getBeanClass().getName())) {
// Locally enabled
builder.add(BEANS_XML, true);
}
}
}
Object priority = decoratorBean.getBeanClass().getAnnotation(annotationApi.PRIORITY_ANNOTATION_CLASS);
if (priority != null) {
builder.add(PRIORITY, annotationApi.getPriority(priority));
}
if (builder.has(PRIORITY) && builder.has(BEANS_XML)) {
builder.add(CONFLICTS, true);
}
decorators.add(builder);
}
}
enablementBuilder.add(DECORATORS, decorators);
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);
}
if (enablement.getGlobalAlternatives().contains(clazz)) {
Object priority = clazz.getAnnotation(annotationApi.PRIORITY_ANNOTATION_CLASS);
if (priority != null) {
builder.add(PRIORITY, annotationApi.getPriority(priority));
}
}
alternatives.add(builder);
}
}
for (Class<? extends Annotation> stereotype : enablement.getAlternativeStereotypes()) {
Set<Bean<?>> beans = findAlternativeStereotypeBeans(stereotype, probe);
if (!beans.isEmpty()) {
for (Bean<?> bean : beans) {
JsonObjectBuilder builder = createSimpleBeanJson(bean, probe);
builder.add(BEANS_XML, true);
alternatives.add(builder);
}
}
}
enablementBuilder.add(ALTERNATIVES, alternatives);
bdaBuilder.add(ENABLEMENT, enablementBuilder);
// Accessible BDAs
BeanManagerImpl manager = beanDeploymentArchivesMap.get(bda);
JsonArrayBuilder accesibleBdasBuilder = Json.arrayBuilder();
for (BeanManagerImpl accesible : manager.getAccessibleManagers()) {
accesibleBdasBuilder.add(Components.getId(accesible.getId()));
}
bdaBuilder.add(ACCESSIBLE_BDAS, accesibleBdasBuilder);
bdaBuilder.add(BEANS, Components.getNumberOfEnabledBeans(manager));
bdasBuilder.add(bdaBuilder);
}
deploymentBuilder.add(BDAS, bdasBuilder);
// CONFIGURATION
JsonArrayBuilder configBuilder = Json.arrayBuilder();
WeldConfiguration configuration = beanManager.getServices().get(WeldConfiguration.class);
for (ConfigurationKey key : Reports.getSortedConfigurationKeys()) {
Object defaultValue = key.getDefaultValue();
String desc = Reports.getDesc(key);
if (desc == null) {
// Don't show config options without description
continue;
}
Object value = Reports.getValue(key, configuration);
if (value == null) {
// Unsupported property type
continue;
}
configBuilder.add(Json.objectBuilder().add(NAME, key.get()).add(DEFAULT_VALUE, defaultValue.toString()).add(VALUE, value.toString()).add(DESCRIPTION, desc));
}
deploymentBuilder.add(CONFIGURATION, configBuilder);
// INSPECTABLE CONTEXTS
deploymentBuilder.add(CONTEXTS, createContextsJson(beanManager, probe));
// DASHBOARD DATA
JsonObjectBuilder dashboardBuilder = Json.objectBuilder();
// Application
JsonObjectBuilder appBuilder = Json.objectBuilder();
appBuilder.add(BEANS, probe.getApplicationBeansCount());
appBuilder.add(OBSERVERS, probe.getApplicationObserversCount());
dashboardBuilder.add(APPLICATION, appBuilder);
// Bootstrap
dashboardBuilder.add(BOOSTRAP_STATS, createBootstrapStatsJson(probe));
deploymentBuilder.add(DASHBOARD, dashboardBuilder);
return deploymentBuilder.build();
}
Aggregations