protected Optional<FeatureConfigSnapshotHolder> getFeatureConfigSnapshotHolder(final ConfigFileInfo c) { try { return Optional.of(new FeatureConfigSnapshotHolder(c, this)); } catch (final JAXBException e) { LOG.warn("Unable to parse configuration snapshot. Config from '{}' will be IGNORED. " + "Note that subsequent config files may fail due to this problem. " + "Xml markup in this file needs to be fixed, for detailed information see enclosed exception.", c.getFinalname(), e); } catch (final XMLStreamException e) { // Files that cannot be loaded are ignored as non config subsystem files e.g. jetty.xml LOG.debug("Unable to read configuration file '{}'. Not a configuration snapshot", c.getFinalname(), e); } return Optional.absent(); }
private void displayConfigFileInformation(Feature feature, String contentType) { List<ConfigFileInfo> configurationFiles = feature.getConfigurationFiles(); if (configurationFiles.isEmpty()) { System.out.println(contentType + " has no configuration files"); } else { System.out.println(contentType + " configuration files: "); for (ConfigFileInfo configFileInfo : configurationFiles) { System.out.println(INDENT + configFileInfo.getFinalname()); } } }
private void displayConfigFileInformation(Feature feature, String contentType) { List<ConfigFileInfo> configurationFiles = feature.getConfigurationFiles(); if (configurationFiles.isEmpty()) { System.out.println(contentType + " has no configuration files"); } else { System.out.println(contentType + " configuration files: "); for (ConfigFileInfo configFileInfo : configurationFiles) { System.out.println(INDENT + configFileInfo.getFinalname()); } } }
public FeatureConfigSnapshotHolder(final ConfigFileInfo fileInfo, final Feature feature) throws JAXBException, XMLStreamException { Preconditions.checkNotNull(fileInfo); Preconditions.checkNotNull(fileInfo.getFinalname()); Preconditions.checkNotNull(feature); this.fileInfo = fileInfo; this.featureChain.add(feature); // TODO extract utility method for umarshalling config snapshots JAXBContext jaxbContext = JAXBContext.newInstance(ConfigSnapshot.class); Unmarshaller um = jaxbContext.createUnmarshaller(); XMLInputFactory xif = XMLInputFactory.newFactory(); xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false); xif.setProperty(XMLInputFactory.SUPPORT_DTD, false); XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource(new File(fileInfo.getFinalname()))); unmarshalled = ((ConfigSnapshot) um.unmarshal(xsr)); } /*
@Override public String toString() { StringBuilder b = new StringBuilder(); Path p = Paths.get(fileInfo.getFinalname()); b.append(p.getFileName()) .append("(") .append(getCauseFeature()) .append(",") .append(getFeature()) .append(")"); return b.toString(); }
static TabularData getConfigFileList(List<ConfigFileInfo> configFiles) throws OpenDataException { TabularDataSupport table = new TabularDataSupport(FEATURE_CONFIG_FILES_TABLE); for (ConfigFileInfo configFile : configFiles) { String[] itemNames = FeaturesServiceMBean.FEATURE_CONFIG_FILES; Object[] itemValues = {configFile.getFinalname()}; CompositeData config = new CompositeDataSupport(FEATURE_CONFIG_FILES, itemNames, itemValues); table.put(config); } return table; }
public LinkedHashSet<FeatureConfigSnapshotHolder> getFeatureConfigSnapshotHolders() throws Exception { final LinkedHashSet <FeatureConfigSnapshotHolder> snapShotHolders = new LinkedHashSet<>(); for(final ConfigFileInfo c: getConfigurationFiles()) { // Skip non config snapshot XML files if(isConfigSnapshot(c.getFinalname())) { final Optional<FeatureConfigSnapshotHolder> featureConfigSnapshotHolder = getFeatureConfigSnapshotHolder(c); if(featureConfigSnapshotHolder.isPresent()) { snapShotHolders.add(featureConfigSnapshotHolder.get()); } } } return snapShotHolders; }
installConfigurationFile(configFile.getLocation(), configFile.getFinalname(), configFile.isOverride());