@Service @PerLookup public class CrDecorator implements CreationDecorator<SecureAdminInternalUser> { @Param(optional=false, primary=true) private String username; @Param(optional=false) private String passwordAlias; @Inject private SecureAdminHelper helper; @Override public void decorate(AdminCommandContext context, SecureAdminInternalUser instance) throws TransactionFailure, PropertyVetoException { try { helper.validateInternalUsernameAndPasswordAlias( username, passwordAlias); } catch (Exception ex) { throw new TransactionFailure("create", ex); } instance.setUsername(username); instance.setPasswordAlias(passwordAlias); } } }
@Service @PerLookup class DeleteDecorator implements DeletionDecorator<LbConfigs, LbConfig> { @Inject private Domain domain; @Override public void decorate(AdminCommandContext context, LbConfigs parent, LbConfig child) throws PropertyVetoException, TransactionFailure { Logger logger = LogDomains.getLogger(LbConfig.class, LogDomains.ADMIN_LOGGER); LocalStringManagerImpl localStrings = new LocalStringManagerImpl(LbConfig.class); String lbConfigName = child.getName(); LbConfig lbConfig = domain.getExtensionByType(LbConfigs.class).getLbConfig(lbConfigName); //Ensure there are no refs if ( (lbConfig.getClusterRefOrServerRef().size() != 0 ) ) { String msg = localStrings.getLocalString("LbConfigNotEmpty", lbConfigName); throw new TransactionFailure(msg); } logger.info(localStrings.getLocalString("http_lb_admin.LbConfigDeleted", lbConfigName)); } } }
@Service public class ElasticServiceResolver implements CrudResolver { @Param(name="name") String name; @Inject ElasticServices elasticServices; @Override @SuppressWarnings("unchecked") public <T extends ConfigBeanProxy> T resolve(AdminCommandContext context, Class<T> type) { for (ElasticServiceConfig elasticService : elasticServices.getElasticService()) { if (elasticService.getName().equals(name)) { return (T) elasticService; } } return null; } }
@Service(name = "network-listener", metadata = "<property>=collection:org.jvnet.hk2.config.types.Property,@address=optional,@address=default:0.0.0.0,@address=datatype:java.lang.String,@address=leaf,@enabled=optional,@enabled=default:true,@enabled=datatype:java.lang.Boolean,@enabled=leaf,@jk-configuration-file=optional,@jk-configuration-file=default:${com.sun.aas.instanceRoot}/config/glassfish-jk.properties,@jk-configuration-file=datatype:java.lang.String,@jk-configuration-file=leaf,@jk-enabled=optional,@jk-enabled=default:false,@jk-enabled=datatype:java.lang.Boolean,@jk-enabled=leaf,@name=required,@name=datatype:java.lang.String,@name=leaf,@port=required,@port=datatype:java.lang.Integer,@port=leaf,@protocol=required,@protocol=datatype:java.lang.String,@protocol=leaf,@thread-pool=optional,@thread-pool=datatype:java.lang.String,@thread-pool=leaf,@transport=required,@transport=datatype:java.lang.String,@transport=leaf,@type=required,@type=default:standard,@type=datatype:java.lang.String,@type=leaf,key=@name,keyed-as=org.glassfish.grizzly.config.dom.NetworkListener,target=org.glassfish.grizzly.config.dom.NetworkListener") @InjectionTarget(NetworkListener.class) public class NetworkListenerInjector extends NoopConfigInjector { }
public Manager getManagerImplWithName(String name, Class<? extends Manager> subType) { Set<?> managers = managersRef.getSubTypesOf(subType); for (Object clazz : managers) { Service serviceAnno = ((Class<?>) clazz).getAnnotation(Service.class); if (serviceAnno != null && !StringUtils.isEmpty(serviceAnno.name()) && serviceAnno.name().equals(name)) return (Manager) ((Class<?>) clazz).newInstance(); } return null; }
named(elementName).andLoadWith(new MyHk2Loader(clz.getClassLoader())); String metaData = ((Service) clz.getAnnotation(Service.class)).metadata(); Map<String, List<String>> metaMap = new HashMap<String, List<String>>(); for (StringTokenizer st = new StringTokenizer(metaData, ","); st.hasMoreTokens(); ) {
@Service @PerLookup class DeleteDecorator implements DeletionDecorator<LbConfigs, LbConfig> { @Inject private Domain domain; @Override public void decorate(AdminCommandContext context, LbConfigs parent, LbConfig child) throws PropertyVetoException, TransactionFailure { Logger logger = LogDomains.getLogger(LbConfig.class, LogDomains.ADMIN_LOGGER); LocalStringManagerImpl localStrings = new LocalStringManagerImpl(LbConfig.class); String lbConfigName = child.getName(); LbConfig lbConfig = domain.getExtensionByType(LbConfigs.class).getLbConfig(lbConfigName); //Ensure there are no refs if ( (lbConfig.getClusterRefOrServerRef().size() != 0 ) ) { String msg = localStrings.getLocalString("LbConfigNotEmpty", lbConfigName); throw new TransactionFailure(msg); } logger.info(localStrings.getLocalString("http_lb_admin.LbConfigDeleted", lbConfigName)); } } }
/** * Resolver based on type + name. * * @author Jerome Dochez */ @Service public class TypeAndNameResolver implements CrudResolver { @Param(primary = true) String name; @Inject ServiceLocator habitat; final protected static LocalStringManagerImpl localStrings = new LocalStringManagerImpl(GenericCrudCommand.class); @SuppressWarnings("unchecked") @Override public <T extends ConfigBeanProxy> T resolve(AdminCommandContext context, Class<T> type) { T proxy = (T) habitat.getService(type, name); return proxy; } public String name() { return name; } }
@Service(name = "protocols", metadata = "<property>=collection:org.jvnet.hk2.config.types.Property,<protocol>=collection:org.glassfish.grizzly.config.dom.Protocol,target=org.glassfish.grizzly.config.dom.Protocols") @InjectionTarget(Protocols.class) public class ProtocolsInjector extends NoopConfigInjector { }
private String getModuleName(Class<? extends Module> module) { Service service = module.getAnnotation(Service.class); if (service!=null) { return service.name(); } return null; } }
@Service(name = "list-nodes-config") @PerLookup @CommandLock(CommandLock.LockType.NONE) @I18n("list.nodes.config.command") @RestEndpoints({ @RestEndpoint(configBean=Domain.class, opType=RestEndpoint.OpType.GET, public class ListNodesConfigCommand implements AdminCommand{ @Inject Servers servers; @Inject private Nodes nodes; @Param(optional = true, defaultValue = "false", name="long", shortName="l") private boolean long_opt; @Param(optional = true) private boolean terse;