use of org.jvnet.hk2.config in project Payara by payara.
the class SetConfigOrdinal method execute.
@Override
public void execute(AdminCommandContext context) {
Config configVal = targetUtil.getConfig(target);
MicroprofileConfigConfiguration serviceConfig = configVal.getExtensionByType(MicroprofileConfigConfiguration.class);
if (serviceConfig != null) {
try {
// to perform a transaction on the domain.xml you need to use this construct
// see https://github.com/hk2-project/hk2/blob/master/hk2-configuration/persistence/hk2-xml-dom/hk2-config/src/main/java/org/jvnet/hk2/config/ConfigSupport.java
ConfigSupport.apply(new SingleConfigCode<MicroprofileConfigConfiguration>() {
@Override
public Object run(MicroprofileConfigConfiguration config) {
switch(source) {
case "domain":
{
config.setDomainOrdinality(Integer.toString(ordinal));
break;
}
case "config":
{
config.setConfigOrdinality(Integer.toString(ordinal));
break;
}
case "server":
{
config.setServerOrdinality(Integer.toString(ordinal));
break;
}
case "application":
{
config.setApplicationOrdinality(Integer.toString(ordinal));
break;
}
case "module":
{
config.setModuleOrdinality(Integer.toString(ordinal));
break;
}
case "cluster":
{
config.setClusterOrdinality(Integer.toString(ordinal));
break;
}
case "jndi":
{
config.setJNDIOrdinality(Integer.toString(ordinal));
break;
}
case "secrets":
{
config.setSecretDirOrdinality(Integer.toString(ordinal));
break;
}
}
return null;
}
}, serviceConfig);
} catch (TransactionFailure ex) {
// set failure
context.getActionReport().failure(Logger.getLogger(SetConfigOrdinal.class.getName()), "Failed to update message", ex);
}
} else {
context.getActionReport().failure(Logger.getLogger(SetConfigOrdinal.class.getName()), "No configuration with name " + target);
}
}
use of org.jvnet.hk2.config in project Payara by payara.
the class ConfigConfigSource method setValue.
public boolean setValue(final String propertyName, final String propertyValue) throws TransactionFailure {
boolean success = false;
Config config = domainConfiguration.getConfigs().getConfigByName(configurationName);
if (config != null) {
Property p = config.getProperty(PROPERTY_PREFIX + propertyName);
if (p == null) {
ConfigSupport.apply(new SingleConfigCode<Config>() {
@Override
public Object run(Config config) throws TransactionFailure, PropertyVetoException {
Property prop = config.createChild(Property.class);
prop.setName(PROPERTY_PREFIX + propertyName);
prop.setValue(propertyValue);
config.getProperty().add(prop);
return null;
}
}, config);
} else {
ConfigSupport.apply(new SingleConfigCode<Property>() {
@Override
public Object run(Property config) throws TransactionFailure, PropertyVetoException {
config.setValue(propertyValue);
return null;
}
}, p);
}
success = true;
}
return success;
}
use of org.jvnet.hk2.config in project Payara by payara.
the class ConfigConfigSource method deleteValue.
public boolean deleteValue(String propertyName) throws TransactionFailure {
boolean result = false;
Config config = domainConfiguration.getConfigs().getConfigByName(configurationName);
if (config != null) {
for (Property object : config.getProperty()) {
if ((PROPERTY_PREFIX + propertyName).equals(object.getName())) {
ConfigSupport.deleteChild((ConfigBean) ConfigBean.unwrap(config), (ConfigBean) ConfigBean.unwrap(object));
result = true;
}
}
}
return result;
}
use of org.jvnet.hk2.config in project Payara by payara.
the class GetRequestTracingConfiguration method execute.
@Override
public void execute(AdminCommandContext context) {
Config config = targetUtil.getConfig(target);
if (config == null) {
context.getActionReport().setMessage("No such config named: " + target);
context.getActionReport().setActionExitCode(ActionReport.ExitCode.FAILURE);
return;
}
ActionReport mainActionReport = context.getActionReport();
RequestTracingServiceConfiguration configuration = config.getExtensionByType(RequestTracingServiceConfiguration.class);
writeVariableToActionReport(mainActionReport, "Enabled?", configuration.getEnabled());
if (Boolean.parseBoolean(configuration.getEnabled())) {
writeVariableToActionReport(mainActionReport, "Sample Rate", configuration.getSampleRate());
// Print adaptive sampling details
writeVariableToActionReport(mainActionReport, "Adaptive Sampling Enabled?", configuration.getAdaptiveSamplingEnabled());
if (Boolean.parseBoolean(configuration.getAdaptiveSamplingEnabled())) {
writeVariableToActionReport(mainActionReport, "Adaptive Sampling Target Count", configuration.getAdaptiveSamplingTargetCount());
writeVariableToActionReport(mainActionReport, "Adaptive Sampling Time Value", configuration.getAdaptiveSamplingTimeValue());
writeVariableToActionReport(mainActionReport, "Adaptive Sampling Time Unit", configuration.getAdaptiveSamplingTimeUnit());
}
// Print filter details
writeVariableToActionReport(mainActionReport, "Application Only?", configuration.getApplicationsOnlyEnabled());
writeVariableToActionReport(mainActionReport, "Threshold Value", configuration.getThresholdValue());
writeVariableToActionReport(mainActionReport, "Threshold Unit", configuration.getThresholdUnit());
writeVariableToActionReport(mainActionReport, "Sample Rate First?", configuration.getSampleRateFirstEnabled());
// Print trace store details
writeVariableToActionReport(mainActionReport, "Reservoir Sampling Enabled?", configuration.getReservoirSamplingEnabled());
writeVariableToActionReport(mainActionReport, "Trace Store Size", configuration.getTraceStoreSize());
if (!Strings.isNullOrEmpty(configuration.getTraceStoreTimeout())) {
writeVariableToActionReport(mainActionReport, "Trace Store Timeout (secs)", configuration.getTraceStoreTimeout());
}
// Print historic trace store details
writeVariableToActionReport(mainActionReport, "Historic Trace Store Enabled?", configuration.getHistoricTraceStoreEnabled());
if (Boolean.parseBoolean(configuration.getHistoricTraceStoreEnabled())) {
writeVariableToActionReport(mainActionReport, "Historic Trace Store Size", configuration.getHistoricTraceStoreSize());
if (!Strings.isNullOrEmpty(configuration.getHistoricTraceStoreTimeout())) {
writeVariableToActionReport(mainActionReport, "Historic Trace Store Timeout (secs)", configuration.getHistoricTraceStoreTimeout());
}
}
}
// Create the extraProps for the general request tracing configuration
Properties mainExtraProps = new Properties();
Map<String, Object> mainExtraPropsMap = new HashMap<>();
mainExtraPropsMap.put("enabled", configuration.getEnabled());
mainExtraPropsMap.put("sampleRate", configuration.getSampleRate());
mainExtraPropsMap.put("adaptiveSamplingEnabled", configuration.getAdaptiveSamplingEnabled());
mainExtraPropsMap.put("adaptiveSamplingTargetCount", configuration.getAdaptiveSamplingTargetCount());
mainExtraPropsMap.put("adaptiveSamplingTimeValue", configuration.getAdaptiveSamplingTimeValue());
mainExtraPropsMap.put("adaptiveSamplingTimeUnit", configuration.getAdaptiveSamplingTimeUnit());
mainExtraPropsMap.put("applicationsOnlyEnabled", configuration.getApplicationsOnlyEnabled());
mainExtraPropsMap.put("thresholdValue", configuration.getThresholdValue());
mainExtraPropsMap.put("thresholdUnit", configuration.getThresholdUnit());
mainExtraPropsMap.put("sampleRateFirstEnabled", configuration.getSampleRateFirstEnabled());
mainExtraPropsMap.put("traceStoreSize", configuration.getTraceStoreSize());
mainExtraPropsMap.put("traceStoreTimeout", configuration.getTraceStoreTimeout());
mainExtraPropsMap.put("reservoirSamplingEnabled", configuration.getReservoirSamplingEnabled());
mainExtraPropsMap.put("historicTraceStoreEnabled", configuration.getHistoricTraceStoreEnabled());
mainExtraPropsMap.put("historicTraceStoreSize", configuration.getHistoricTraceStoreSize());
mainExtraPropsMap.put("historicTraceStoreTimeout", configuration.getHistoricTraceStoreTimeout());
mainExtraProps.put("requestTracingConfiguration", mainExtraPropsMap);
mainActionReport.setExtraProperties(mainExtraProps);
mainActionReport.appendMessage("Below are the configuration details of each notifier listed by its name.");
mainActionReport.appendMessage(StringUtils.EOL);
ActionReport notifiersActionReport = mainActionReport.addSubActionsReport();
List<ServiceHandle<BaseNotifierService>> allServiceHandles = habitat.getAllServiceHandles(BaseNotifierService.class);
if (configuration.getNotifierList().isEmpty()) {
notifiersActionReport.setMessage("No notifier defined");
} else {
String[] headers = { "Notifier Name", "Notifier Enabled" };
ColumnFormatter columnFormatter = new ColumnFormatter(headers);
List<Class<Notifier>> notifierClassList = Lists.transform(configuration.getNotifierList(), new Function<Notifier, Class<Notifier>>() {
@Override
public Class<Notifier> apply(Notifier input) {
return resolveNotifierClass(input);
}
});
Properties notifierExtraProps = new Properties();
for (ServiceHandle<BaseNotifierService> serviceHandle : allServiceHandles) {
Notifier notifier = configuration.getNotifierByType(serviceHandle.getService().getNotifierType());
if (notifier != null) {
ConfigView view = ConfigSupport.getImpl(notifier);
NotifierConfigurationType annotation = view.getProxyType().getAnnotation(NotifierConfigurationType.class);
if (notifierClassList.contains(view.<Notifier>getProxyType())) {
Object[] values = new Object[2];
values[0] = serviceHandle.getActiveDescriptor().getName();
values[1] = notifier.getEnabled();
columnFormatter.addRow(values);
Map<String, Object> notifierExtraPropsMap = new HashMap<>();
notifierExtraPropsMap.put("notifierName", values[0]);
notifierExtraPropsMap.put("notifierEnabled", values[1]);
notifierExtraProps.put("getRequesttracingConfiguration" + annotation.type(), notifierExtraPropsMap);
notifiersActionReport.setExtraProperties(notifierExtraProps);
}
}
}
notifiersActionReport.setMessage(columnFormatter.toString());
}
mainActionReport.setActionExitCode(ActionReport.ExitCode.SUCCESS);
}
use of org.jvnet.hk2.config in project Payara by payara.
the class BaseRequestTracingNotifierConfigurer method execute.
@Override
public void execute(AdminCommandContext context) {
final ActionReport actionReport = context.getActionReport();
Properties extraProperties = actionReport.getExtraProperties();
if (extraProperties == null) {
extraProperties = new Properties();
actionReport.setExtraProperties(extraProperties);
}
Config config = targetUtil.getConfig(target);
final RequestTracingServiceConfiguration configuration = config.getExtensionByType(RequestTracingServiceConfiguration.class);
ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
notifierClass = (Class<C>) genericSuperclass.getActualTypeArguments()[0];
C c = configuration.getNotifierByType(notifierClass);
try {
if (c == null) {
ConfigSupport.apply(new SingleConfigCode<RequestTracingServiceConfiguration>() {
@Override
public Object run(final RequestTracingServiceConfiguration configurationProxy) throws PropertyVetoException, TransactionFailure {
C c = configurationProxy.createChild(notifierClass);
applyValues(c);
configurationProxy.getNotifierList().add(c);
actionReport.setActionExitCode(ActionReport.ExitCode.SUCCESS);
return configurationProxy;
}
}, configuration);
} else {
ConfigSupport.apply(new SingleConfigCode<C>() {
public Object run(C cProxy) throws PropertyVetoException, TransactionFailure {
applyValues(cProxy);
actionReport.setActionExitCode(ActionReport.ExitCode.SUCCESS);
return cProxy;
}
}, c);
}
if (dynamic) {
if (server.isDas()) {
if (targetUtil.getConfig(target).isDas()) {
configureDynamically();
}
} else {
configureDynamically();
}
}
} catch (TransactionFailure ex) {
logger.log(Level.WARNING, "Exception during command ", ex);
actionReport.setMessage(ex.getCause().getMessage());
actionReport.setActionExitCode(ActionReport.ExitCode.FAILURE);
}
}
Aggregations