@Override public void process(WebMetaData metaData, Class<?> type) { super.process(metaData, type); EnvironmentRefsGroupMetaData env = new EnvironmentRefsGroupMetaData(); super.process(env, type); metaData.setJndiEnvironmentRefsGroup(env); // @RunAs ServletsMetaData servlets = metaData.getServlets(); if(servlets == null) { servlets = new ServletsMetaData(); metaData.setServlets(servlets); } super.processClass(servlets, type); // @DeclareRoles SecurityRolesMetaData securityRoles = metaData.getSecurityRoles(); if(securityRoles == null) { securityRoles = new SecurityRolesMetaData(); metaData.setSecurityRoles(securityRoles); } super.processClass(securityRoles, type); } }
public static void merge(WebMetaData merged, WebMetaData xml, WebMetaData annotation) { //Merge the servlets meta data ServletsMetaData servletsMetaData = new ServletsMetaData(); merge(servletsMetaData,xml.getServlets(), annotation.getServlets()); merged.setServlets(servletsMetaData); //Security Roles SecurityRolesMetaData securityRolesMetaData = new SecurityRolesMetaData(); merge(securityRolesMetaData, xml.getSecurityRoles(), annotation.getSecurityRoles()); merged.setSecurityRoles(securityRolesMetaData); //Env EnvironmentRefsGroupMetaData environmentRefsGroup = new EnvironmentRefsGroupMetaData(); Environment xmlEnv = xml != null ? xml.getJndiEnvironmentRefsGroup() : null; Environment annEnv = annotation != null ? annotation.getJndiEnvironmentRefsGroup() : null; environmentRefsGroup.merge(xmlEnv,annEnv, "", "", false); merged.setJndiEnvironmentRefsGroup(environmentRefsGroup); //Message Destinations MessageDestinationsMetaData messageDestinations = new MessageDestinationsMetaData(); messageDestinations.merge(xml.getMessageDestinations(), annotation.getMessageDestinations()); merged.setMessageDestinations(messageDestinations); //merge annotation mergeIn(merged,annotation); //merge xml override mergeIn(merged,xml); }