static { List aliasList = new ArrayList(); Enumeration pe = ConfigurationManager.propertyNames(); while (pe.hasMoreElements()) { String key = (String) pe.nextElement(); if (key.startsWith(CONFIG_PREFIX)) aliasList.add(key.substring(CONFIG_PREFIX.length())); } aliases = (String[]) aliasList.toArray(new String[aliasList.size()]); }
// load the namespace and schema from config private void init() throws CrosswalkInternalException { if (namespaces != null || schemaLocation != null) return; String myAlias = getPluginInstanceName(); if (myAlias == null) { log.error( "Must use PluginManager to instantiate XSLTDisseminationCrosswalk so the class knows its name."); throw new CrosswalkInternalException( "Must use PluginManager to instantiate XSLTDisseminationCrosswalk so the class knows its name."); } // all configs for this plugin instance start with this: String prefix = CONFIG_PREFIX + DIRECTION + "." + myAlias + "."; // get the schema location string, should already be in the // right format for value of "schemaLocation" attribute. schemaLocation = ConfigurationManager.getProperty(prefix + "schemaLocation"); if (schemaLocation == null) log.warn("No schemaLocation for crosswalk=" + myAlias + ", key=" + prefix + "schemaLocation"); // sanity check: schemaLocation should have space. else if (schemaLocation.length() > 0 && schemaLocation.indexOf(" ") < 0) log.warn( "Possible INVALID schemaLocation (no space found) for crosswalk=" + myAlias + ", key=" + prefix + "schemaLocation" + "\n\tCorrect format is \"{namespace} {schema-URL}\""); // grovel for namespaces of the form: // crosswalk.diss.{PLUGIN_NAME}.namespace.{PREFIX} = {URI} String nsPrefix = prefix + "namespace."; Enumeration pe = ConfigurationManager.propertyNames(); List nsList = new ArrayList(); while (pe.hasMoreElements()) { String key = (String) pe.nextElement(); if (key.startsWith(nsPrefix)) nsList.add( Namespace.getNamespace( key.substring(nsPrefix.length()), ConfigurationManager.getProperty(key))); } namespaces = (Namespace[]) nsList.toArray(new Namespace[nsList.size()]); preferList = ConfigurationManager.getBooleanProperty(prefix + "preferList", false); }
/** * Loads maps from configuration unless it's already done. The configuration properties are a map * starting with the "metadata.hide." prefix followed by schema, element and qualifier separated * by dots and the value is true (hidden) or false (exposed). */ protected synchronized void init() { if (!isInitialized()) { hiddenElementSets = new HashMap<>(); hiddenElementMaps = new HashMap<>(); Enumeration pne = ConfigurationManager.propertyNames(); while (pne.hasMoreElements()) { String key = (String) pne.nextElement(); if (key.startsWith(CONFIG_PREFIX)) { String mdField = key.substring(CONFIG_PREFIX.length()); String segment[] = mdField.split("\\.", 3); // got schema.element.qualifier if (segment.length == 3) { Map<String, Set<String>> eltMap = hiddenElementMaps.get(segment[0]); if (eltMap == null) { eltMap = new HashMap<String, Set<String>>(); hiddenElementMaps.put(segment[0], eltMap); } if (!eltMap.containsKey(segment[1])) { eltMap.put(segment[1], new HashSet<String>()); } eltMap.get(segment[1]).add(segment[2]); } // got schema.element else if (segment.length == 2) { if (!hiddenElementSets.containsKey(segment[0])) { hiddenElementSets.put(segment[0], new HashSet<String>()); } hiddenElementSets.get(segment[0]).add(segment[1]); } // oops.. else { log.warn( "Bad format in hidden metadata directive, field=\"" + mdField + "\", config property=" + key); } } } } }
/** * Initialize an IP authenticator, reading in the configuration. Note this will never fail if the * configuration is bad -- a warning will be logged. */ public IPAuthentication() { ipMatchers = new ArrayList<IPMatcher>(); ipNegativeMatchers = new ArrayList<IPMatcher>(); ipMatcherGroupIDs = new HashMap<IPMatcher, Integer>(); ipMatcherGroupNames = new HashMap<IPMatcher, String>(); Enumeration e = ConfigurationManager.propertyNames(); while (e.hasMoreElements()) { String propName = (String) e.nextElement(); if (propName.startsWith("authentication.ip.")) { String[] nameParts = propName.split("\\."); if (nameParts.length == 3) { addMatchers(nameParts[2], ConfigurationManager.getProperty(propName)); } else { log.warn("Malformed configuration property name: " + propName); } } } }