Browse Source

update to xmlchai 0.1.3

Jason Rivard 2 years ago
parent
commit
aa5f87a7da
34 changed files with 91 additions and 97 deletions
  1. 1 1
      server/pom.xml
  2. 2 2
      server/src/main/java/password/pwm/config/PwmSettingXml.java
  3. 8 9
      server/src/main/java/password/pwm/config/stored/StoredConfigXmlSerializer.java
  4. 3 3
      server/src/main/java/password/pwm/config/value/AbstractValue.java
  5. 2 2
      server/src/main/java/password/pwm/config/value/ActionValue.java
  6. 2 2
      server/src/main/java/password/pwm/config/value/BooleanValue.java
  7. 2 2
      server/src/main/java/password/pwm/config/value/ChallengeValue.java
  8. 2 2
      server/src/main/java/password/pwm/config/value/CustomLinkValue.java
  9. 2 2
      server/src/main/java/password/pwm/config/value/EmailValue.java
  10. 4 4
      server/src/main/java/password/pwm/config/value/FileValue.java
  11. 2 2
      server/src/main/java/password/pwm/config/value/FormValue.java
  12. 2 2
      server/src/main/java/password/pwm/config/value/LocalizedStringArrayValue.java
  13. 2 2
      server/src/main/java/password/pwm/config/value/LocalizedStringValue.java
  14. 6 6
      server/src/main/java/password/pwm/config/value/NamedSecretValue.java
  15. 2 2
      server/src/main/java/password/pwm/config/value/NumericArrayValue.java
  16. 2 2
      server/src/main/java/password/pwm/config/value/NumericValue.java
  17. 2 2
      server/src/main/java/password/pwm/config/value/OptionListValue.java
  18. 3 3
      server/src/main/java/password/pwm/config/value/PasswordValue.java
  19. 4 4
      server/src/main/java/password/pwm/config/value/PrivateKeyValue.java
  20. 2 2
      server/src/main/java/password/pwm/config/value/RemoteWebServiceValue.java
  21. 2 2
      server/src/main/java/password/pwm/config/value/StringArrayValue.java
  22. 2 2
      server/src/main/java/password/pwm/config/value/StringValue.java
  23. 2 2
      server/src/main/java/password/pwm/config/value/UserPermissionValue.java
  24. 2 2
      server/src/main/java/password/pwm/config/value/VerificationMethodValue.java
  25. 2 2
      server/src/main/java/password/pwm/config/value/X509CertificateValue.java
  26. 2 3
      server/src/main/java/password/pwm/svc/userhistory/LdapXmlUserHistory.java
  27. 1 2
      server/src/main/java/password/pwm/util/java/LicenseInfoReader.java
  28. 4 4
      server/src/test/java/password/pwm/config/PwmSettingTest.java
  29. 2 2
      server/src/test/java/password/pwm/config/PwmSettingXmlTest.java
  30. 8 9
      server/src/test/java/password/pwm/config/value/ActionValueTest.java
  31. 5 5
      server/src/test/java/password/pwm/config/value/FileValueTest.java
  32. 1 2
      server/src/test/java/password/pwm/svc/event/LdapXmlUserHistoryTest.java
  33. 1 2
      server/src/test/java/password/pwm/util/java/XmlFactoryBenchmarkExtendedTest.java
  34. 2 2
      server/src/test/java/password/pwm/util/java/XmlFactoryTest.java

+ 1 - 1
server/pom.xml

@@ -176,7 +176,7 @@
         <dependency>
         <dependency>
             <groupId>org.jrivard.xmlchai</groupId>
             <groupId>org.jrivard.xmlchai</groupId>
             <artifactId>xmlchai</artifactId>
             <artifactId>xmlchai</artifactId>
-            <version>0.1.0</version>
+            <version>0.1.3</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.apache.directory.api</groupId>
             <groupId>org.apache.directory.api</groupId>

+ 2 - 2
server/src/main/java/password/pwm/config/PwmSettingXml.java

@@ -21,9 +21,9 @@
 package password.pwm.config;
 package password.pwm.config;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.util.PwmScheduler;
 import password.pwm.util.PwmScheduler;
 import password.pwm.util.java.EnumUtil;
 import password.pwm.util.java.EnumUtil;
 import password.pwm.util.java.LazySupplier;
 import password.pwm.util.java.LazySupplier;
@@ -83,7 +83,7 @@ public class PwmSettingXml
         try ( InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( SETTING_XML_FILENAME ) )
         try ( InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( SETTING_XML_FILENAME ) )
         {
         {
             final Instant startTime = Instant.now();
             final Instant startTime = Instant.now();
-            final XmlDocument newDoc = XmlChai.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
+            final XmlDocument newDoc = XmlFactory.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
             final TimeDuration parseDuration = TimeDuration.fromCurrent( startTime );
             final TimeDuration parseDuration = TimeDuration.fromCurrent( startTime );
             LOGGER.trace( () -> "parsed PwmSettingXml in " + parseDuration.asCompactString() + ", loads=" + LOAD_COUNTER.getAndIncrement() );
             LOGGER.trace( () -> "parsed PwmSettingXml in " + parseDuration.asCompactString() + ", loads=" + LOAD_COUNTER.getAndIncrement() );
 
 

+ 8 - 9
server/src/main/java/password/pwm/config/stored/StoredConfigXmlSerializer.java

@@ -21,7 +21,6 @@
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlFactory;
 import org.jrivard.xmlchai.XmlFactory;
@@ -86,7 +85,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
         try
         try
         {
         {
             final Instant startTime = Instant.now();
             final Instant startTime = Instant.now();
-            final XmlFactory xmlFactory = XmlChai.getFactory();
+            final XmlFactory xmlFactory = XmlFactory.getFactory();
             final XmlDocument xmlDocument = xmlFactory.parse( inputStream, AccessMode.IMMUTABLE );
             final XmlDocument xmlDocument = xmlFactory.parse( inputStream, AccessMode.IMMUTABLE );
             perfLog( "parseXml", startTime );
             perfLog( "parseXml", startTime );
 
 
@@ -114,7 +113,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
     )
     )
             throws PwmUnrecoverableException, IOException
             throws PwmUnrecoverableException, IOException
     {
     {
-        final XmlFactory xmlFactory = XmlChai.getFactory();
+        final XmlFactory xmlFactory = XmlFactory.getFactory();
         final XmlDocument xmlDocument = xmlFactory.newDocument( StoredConfigXmlConstants.XML_ELEMENT_ROOT );
         final XmlDocument xmlDocument = xmlFactory.newDocument( StoredConfigXmlConstants.XML_ELEMENT_ROOT );
 
 
         XmlOutputHandler.makeXmlOutput( storedConfiguration, xmlDocument.getRootElement(), outputSettings );
         XmlOutputHandler.makeXmlOutput( storedConfiguration, xmlDocument.getRootElement(), outputSettings );
@@ -499,7 +498,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
         {
         {
             final PwmSecurityKey pwmSecurityKey = storedConfiguration.getKey();
             final PwmSecurityKey pwmSecurityKey = storedConfiguration.getKey();
 
 
-            final XmlFactory xmlFactory = XmlChai.getFactory();
+            final XmlFactory xmlFactory = XmlFactory.getFactory();
             final XmlElement settingsElement = xmlFactory.newElement( StoredConfigXmlConstants.XML_ELEMENT_SETTINGS );
             final XmlElement settingsElement = xmlFactory.newElement( StoredConfigXmlConstants.XML_ELEMENT_SETTINGS );
 
 
             final XmlOutputProcessData xmlOutputProcessData = XmlOutputProcessData.builder()
             final XmlOutputProcessData xmlOutputProcessData = XmlOutputProcessData.builder()
@@ -564,7 +563,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
             final PwmSetting pwmSetting = key.toPwmSetting();
             final PwmSetting pwmSetting = key.toPwmSetting();
             final Optional<ProfileID> profileID = key.getProfileID();
             final Optional<ProfileID> profileID = key.getProfileID();
 
 
-            final XmlFactory xmlFactory = XmlChai.getFactory();
+            final XmlFactory xmlFactory = XmlFactory.getFactory();
 
 
             final XmlElement settingElement = xmlFactory.newElement( StoredConfigXmlConstants.XML_ELEMENT_SETTING );
             final XmlElement settingElement = xmlFactory.newElement( StoredConfigXmlConstants.XML_ELEMENT_SETTING );
 
 
@@ -626,7 +625,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
             {
             {
                 if ( valueMetaData.get().getUserIdentity() != null )
                 if ( valueMetaData.get().getUserIdentity() != null )
                 {
                 {
-                    final XmlElement metaElement = XmlChai.getFactory().newElement( StoredConfigXmlConstants.XML_ATTRIBUTE_MODIFY_USER );
+                    final XmlElement metaElement = XmlFactory.getFactory().newElement( StoredConfigXmlConstants.XML_ATTRIBUTE_MODIFY_USER );
                     metaElement.setText( valueMetaData.get().getUserIdentity().toDelimitedKey() );
                     metaElement.setText( valueMetaData.get().getUserIdentity().toDelimitedKey() );
                     xmlElement.attachElement( metaElement );
                     xmlElement.attachElement( metaElement );
                 }
                 }
@@ -640,7 +639,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
 
 
         private static XmlElement makePropertiesElement( final StoredConfiguration storedConfiguration )
         private static XmlElement makePropertiesElement( final StoredConfiguration storedConfiguration )
         {
         {
-            final XmlFactory xmlFactory = XmlChai.getFactory();
+            final XmlFactory xmlFactory = XmlFactory.getFactory();
             final XmlElement propertiesElement = xmlFactory.newElement( StoredConfigXmlConstants.XML_ELEMENT_PROPERTIES );
             final XmlElement propertiesElement = xmlFactory.newElement( StoredConfigXmlConstants.XML_ELEMENT_PROPERTIES );
             propertiesElement.setAttribute( StoredConfigXmlConstants.XML_ATTRIBUTE_TYPE, StoredConfigXmlConstants.XML_ATTRIBUTE_VALUE_CONFIG );
             propertiesElement.setAttribute( StoredConfigXmlConstants.XML_ATTRIBUTE_TYPE, StoredConfigXmlConstants.XML_ATTRIBUTE_VALUE_CONFIG );
 
 
@@ -662,7 +661,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
 
 
         private static List<XmlElement> makeLocaleBundleXmlElements( final StoredConfiguration storedConfiguration )
         private static List<XmlElement> makeLocaleBundleXmlElements( final StoredConfiguration storedConfiguration )
         {
         {
-            final XmlFactory xmlFactory = XmlChai.getFactory();
+            final XmlFactory xmlFactory = XmlFactory.getFactory();
             final List<XmlElement> returnList = new ArrayList<>();
             final List<XmlElement> returnList = new ArrayList<>();
             for ( final DomainID domainID : StoredConfigurationUtil.domainList( storedConfiguration ) )
             for ( final DomainID domainID : StoredConfigurationUtil.domainList( storedConfiguration ) )
             {
             {
@@ -749,7 +748,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
                         final Optional<String> textValue = settingElement.getText();
                         final Optional<String> textValue = settingElement.getText();
                         if ( textValue.isPresent() )
                         if ( textValue.isPresent() )
                         {
                         {
-                            final XmlElement newValueElement = XmlChai.getFactory().newElement( StoredConfigXmlConstants.XML_ELEMENT_VALUE );
+                            final XmlElement newValueElement = XmlFactory.getFactory().newElement( StoredConfigXmlConstants.XML_ELEMENT_VALUE );
                             newValueElement.setText( textValue.get().trim() );
                             newValueElement.setText( textValue.get().trim() );
                             settingElement.attachElement( newValueElement );
                             settingElement.attachElement( newValueElement );
                             final String key = settingElement.getAttribute( StoredConfigXmlConstants.XML_ATTRIBUTE_KEY ).orElse( "" );
                             final String key = settingElement.getAttribute( StoredConfigXmlConstants.XML_ATTRIBUTE_KEY ).orElse( "" );

+ 3 - 3
server/src/main/java/password/pwm/config/value/AbstractValue.java

@@ -20,9 +20,9 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
@@ -118,13 +118,13 @@ public abstract class AbstractValue implements StoredValue
                     .storedValueEncoderMode( StoredValueEncoder.Mode.PLAIN )
                     .storedValueEncoderMode( StoredValueEncoder.Mode.PLAIN )
                     .build();
                     .build();
             final List<XmlElement> xmlValues = storedValue.toXmlValues( StoredConfigXmlConstants.XML_ELEMENT_VALUE, xmlOutputProcessData );
             final List<XmlElement> xmlValues = storedValue.toXmlValues( StoredConfigXmlConstants.XML_ELEMENT_VALUE, xmlOutputProcessData );
-            final XmlDocument document = XmlChai.getFactory().newDocument( "root" );
+            final XmlDocument document = XmlFactory.getFactory().newDocument( "root" );
             document.getRootElement().attachElement( xmlValues );
             document.getRootElement().attachElement( xmlValues );
 
 
             final DigestOutputStream digestOutputStream = new DigestOutputStream(
             final DigestOutputStream digestOutputStream = new DigestOutputStream(
                     OutputStream.nullOutputStream(),
                     OutputStream.nullOutputStream(),
                     PwmHashAlgorithm.SHA512.newMessageDigest() );
                     PwmHashAlgorithm.SHA512.newMessageDigest() );
-            XmlChai.getFactory().output( document, digestOutputStream );
+            XmlFactory.getFactory().output( document, digestOutputStream );
             return JavaHelper.binaryArrayToHex( digestOutputStream.getMessageDigest().digest() );
             return JavaHelper.binaryArrayToHex( digestOutputStream.getMessageDigest().digest() );
         }
         }
         catch ( final IOException e )
         catch ( final IOException e )

+ 2 - 2
server/src/main/java/password/pwm/config/value/ActionValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSettingSyntax;
 import password.pwm.config.PwmSettingSyntax;
@@ -194,7 +194,7 @@ public class ActionValue extends AbstractValue implements StoredValue
                     .webActions( clonedWebActions )
                     .webActions( clonedWebActions )
                     .build();
                     .build();
 
 
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
 
 
             valueElement.setText( JsonFactory.get().serialize( clonedAction ) );
             valueElement.setText( JsonFactory.get().serialize( clonedAction ) );
             returnList.add( valueElement );
             returnList.add( valueElement );

+ 2 - 2
server/src/main/java/password/pwm/config/value/BooleanValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -89,7 +89,7 @@ public class BooleanValue implements StoredValue
     @Override
     @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
     {
-        final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+        final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
         valueElement.setText( String.valueOf( value ) );
         valueElement.setText( String.valueOf( value ) );
         return Collections.singletonList( valueElement );
         return Collections.singletonList( valueElement );
     }
     }

+ 2 - 2
server/src/main/java/password/pwm/config/value/ChallengeValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -159,7 +159,7 @@ public class ChallengeValue extends AbstractValue implements StoredValue
             {
             {
                 if ( value != null )
                 if ( value != null )
                 {
                 {
-                    final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+                    final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
                     valueElement.setText( JsonFactory.get().serialize( value ) );
                     valueElement.setText( JsonFactory.get().serialize( value ) );
                     if ( locale != null && locale.length() > 0 )
                     if ( locale != null && locale.length() > 0 )
                     {
                     {

+ 2 - 2
server/src/main/java/password/pwm/config/value/CustomLinkValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.value.data.CustomLinkConfiguration;
 import password.pwm.config.value.data.CustomLinkConfiguration;
@@ -83,7 +83,7 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final CustomLinkConfiguration value : values )
         for ( final CustomLinkConfiguration value : values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( JsonFactory.get().serialize( value ) );
             valueElement.setText( JsonFactory.get().serialize( value ) );
             returnList.add( valueElement );
             returnList.add( valueElement );
         }
         }

+ 2 - 2
server/src/main/java/password/pwm/config/value/EmailValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.bean.EmailItemBean;
 import password.pwm.bean.EmailItemBean;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
@@ -101,7 +101,7 @@ public class EmailValue extends AbstractValue implements StoredValue
         {
         {
             final String localeValue = entry.getKey();
             final String localeValue = entry.getKey();
             final EmailItemBean emailItemBean = entry.getValue();
             final EmailItemBean emailItemBean = entry.getValue();
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             if ( localeValue.length() > 0 )
             if ( localeValue.length() > 0 )
             {
             {
                 valueElement.setAttribute( "locale", localeValue );
                 valueElement.setAttribute( "locale", localeValue );

+ 4 - 4
server/src/main/java/password/pwm/config/value/FileValue.java

@@ -23,8 +23,8 @@ package password.pwm.config.value;
 import lombok.Builder;
 import lombok.Builder;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import lombok.Value;
 import lombok.Value;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -184,13 +184,13 @@ public class FileValue extends AbstractValue implements StoredValue
         {
         {
             final FileValue.FileInformation fileInformation = entry.getKey();
             final FileValue.FileInformation fileInformation = entry.getKey();
             final FileContent fileContent = entry.getValue();
             final FileContent fileContent = entry.getValue();
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
 
 
-            final XmlElement fileInformationElement = XmlChai.getFactory().newElement( XML_ELEMENT_FILE_INFORMATION );
+            final XmlElement fileInformationElement = XmlFactory.getFactory().newElement( XML_ELEMENT_FILE_INFORMATION );
             fileInformationElement.setText( JsonFactory.get().serialize( fileInformation ) );
             fileInformationElement.setText( JsonFactory.get().serialize( fileInformation ) );
             valueElement.attachElement( fileInformationElement );
             valueElement.attachElement( fileInformationElement );
 
 
-            final XmlElement fileContentElement = XmlChai.getFactory().newElement( XML_ELEMENT_FILE_CONTENT );
+            final XmlElement fileContentElement = XmlFactory.getFactory().newElement( XML_ELEMENT_FILE_CONTENT );
 
 
             try
             try
             {
             {

+ 2 - 2
server/src/main/java/password/pwm/config/value/FormValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSettingSyntax;
 import password.pwm.config.PwmSettingSyntax;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
@@ -101,7 +101,7 @@ public class FormValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final FormConfiguration value : values )
         for ( final FormConfiguration value : values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( JsonFactory.get().serialize( value ) );
             valueElement.setText( JsonFactory.get().serialize( value ) );
             returnList.add( valueElement );
             returnList.add( valueElement );
         }
         }

+ 2 - 2
server/src/main/java/password/pwm/config/value/LocalizedStringArrayValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
@@ -127,7 +127,7 @@ public class LocalizedStringArrayValue extends AbstractValue implements StoredVa
             final String locale = entry.getKey();
             final String locale = entry.getKey();
             for ( final String value : entry.getValue() )
             for ( final String value : entry.getValue() )
             {
             {
-                final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+                final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
                 valueElement.setText( value );
                 valueElement.setText( value );
                 if ( locale != null && locale.length() > 0 )
                 if ( locale != null && locale.length() > 0 )
                 {
                 {

+ 2 - 2
server/src/main/java/password/pwm/config/value/LocalizedStringValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -105,7 +105,7 @@ public class LocalizedStringValue extends AbstractValue implements StoredValue
         {
         {
             final String locale = entry.getKey();
             final String locale = entry.getKey();
             final String loopValue = entry.getValue();
             final String loopValue = entry.getValue();
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( loopValue );
             valueElement.setText( loopValue );
             if ( locale != null && locale.length() > 0 )
             if ( locale != null && locale.length() > 0 )
             {
             {

+ 6 - 6
server/src/main/java/password/pwm/config/value/NamedSecretValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -165,7 +165,7 @@ public class NamedSecretValue implements StoredValue
     {
     {
         if ( values == null )
         if ( values == null )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             return Collections.singletonList( valueElement );
             return Collections.singletonList( valueElement );
         }
         }
         final List<XmlElement> valuesElement = new ArrayList<>();
         final List<XmlElement> valuesElement = new ArrayList<>();
@@ -176,10 +176,10 @@ public class NamedSecretValue implements StoredValue
                 final String name = entry.getKey();
                 final String name = entry.getKey();
                 final PasswordData passwordData = entry.getValue().getPassword();
                 final PasswordData passwordData = entry.getValue().getPassword();
                 final String encodedValue = SecureEngine.encryptToString( passwordData.getStringValue(), xmlOutputProcessData.getPwmSecurityKey(), PwmBlockAlgorithm.CONFIG );
                 final String encodedValue = SecureEngine.encryptToString( passwordData.getStringValue(), xmlOutputProcessData.getPwmSecurityKey(), PwmBlockAlgorithm.CONFIG );
-                final XmlElement newValueElement = XmlChai.getFactory().newElement( "value" );
-                final XmlElement nameElement = XmlChai.getFactory().newElement( ELEMENT_NAME );
+                final XmlElement newValueElement = XmlFactory.getFactory().newElement( "value" );
+                final XmlElement nameElement = XmlFactory.getFactory().newElement( ELEMENT_NAME );
                 nameElement.setText( name );
                 nameElement.setText( name );
-                final XmlElement encodedValueElement = XmlChai.getFactory().newElement( ELEMENT_PASSWORD );
+                final XmlElement encodedValueElement = XmlFactory.getFactory().newElement( ELEMENT_PASSWORD );
                 encodedValueElement.setText( encodedValue );
                 encodedValueElement.setText( encodedValue );
 
 
                 newValueElement.attachElement( nameElement );
                 newValueElement.attachElement( nameElement );
@@ -187,7 +187,7 @@ public class NamedSecretValue implements StoredValue
 
 
                 for ( final String usages : values.get( name ).getUsage() )
                 for ( final String usages : values.get( name ).getUsage() )
                 {
                 {
-                    final XmlElement usageElement = XmlChai.getFactory().newElement( ELEMENT_USAGE );
+                    final XmlElement usageElement = XmlFactory.getFactory().newElement( ELEMENT_USAGE );
                     usageElement.setText( usages );
                     usageElement.setText( usages );
                     newValueElement.attachElement( usageElement );
                     newValueElement.attachElement( usageElement );
                 }
                 }

+ 2 - 2
server/src/main/java/password/pwm/config/value/NumericArrayValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.CollectionUtil;
@@ -81,7 +81,7 @@ public class NumericArrayValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final Long value : this.values )
         for ( final Long value : this.values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( String.valueOf( value ) );
             valueElement.setText( String.valueOf( value ) );
             returnList.add( valueElement );
             returnList.add( valueElement );
         }
         }

+ 2 - 2
server/src/main/java/password/pwm/config/value/NumericValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSettingProperty;
 import password.pwm.config.PwmSettingProperty;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -91,7 +91,7 @@ public class NumericValue extends AbstractValue implements StoredValue
     @Override
     @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
     {
-        final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+        final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
         valueElement.setText( Long.toString( value ) );
         valueElement.setText( Long.toString( value ) );
         return Collections.singletonList( valueElement );
         return Collections.singletonList( valueElement );
     }
     }

+ 2 - 2
server/src/main/java/password/pwm/config/value/OptionListValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.CollectionUtil;
@@ -85,7 +85,7 @@ public class OptionListValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final String value : values )
         for ( final String value : values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( value );
             valueElement.setText( value );
             returnList.add( valueElement );
             returnList.add( valueElement );
         }
         }

+ 3 - 3
server/src/main/java/password/pwm/config/value/PasswordValue.java

@@ -21,8 +21,8 @@
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -157,10 +157,10 @@ public class PasswordValue implements StoredValue
     {
     {
         if ( value == null )
         if ( value == null )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             return Collections.singletonList( valueElement );
             return Collections.singletonList( valueElement );
         }
         }
-        final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+        final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
         try
         try
         {
         {
             final String encodedValue = StoredValueEncoder.encode(
             final String encodedValue = StoredValueEncoder.encode(

+ 4 - 4
server/src/main/java/password/pwm/config/value/PrivateKeyValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.bean.PrivateKeyCertificate;
 import password.pwm.bean.PrivateKeyCertificate;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -174,7 +174,7 @@ public class PrivateKeyValue extends AbstractValue
     @Override
     @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
     {
-        final XmlElement valueElement = XmlChai.getFactory().newElement( StoredConfigXmlConstants.XML_ELEMENT_VALUE );
+        final XmlElement valueElement = XmlFactory.getFactory().newElement( StoredConfigXmlConstants.XML_ELEMENT_VALUE );
         if ( privateKeyCertificate != null )
         if ( privateKeyCertificate != null )
         {
         {
             try
             try
@@ -182,13 +182,13 @@ public class PrivateKeyValue extends AbstractValue
                 {
                 {
                     for ( final X509Certificate certificate : privateKeyCertificate.getCertificates() )
                     for ( final X509Certificate certificate : privateKeyCertificate.getCertificates() )
                     {
                     {
-                        final XmlElement certificateElement = XmlChai.getFactory().newElement( ELEMENT_NAME_CERTIFICATE );
+                        final XmlElement certificateElement = XmlFactory.getFactory().newElement( ELEMENT_NAME_CERTIFICATE );
                         certificateElement.setText( X509Utils.certificateToBase64( certificate ) );
                         certificateElement.setText( X509Utils.certificateToBase64( certificate ) );
                         valueElement.attachElement( certificateElement );
                         valueElement.attachElement( certificateElement );
                     }
                     }
                 }
                 }
                 {
                 {
-                    final XmlElement keyElement = XmlChai.getFactory().newElement( ELEMENT_NAME_KEY );
+                    final XmlElement keyElement = XmlFactory.getFactory().newElement( ELEMENT_NAME_KEY );
                     final String b64EncodedKey = privateKeyCertificate.getPrivateKey();
                     final String b64EncodedKey = privateKeyCertificate.getPrivateKey();
                     final String encryptedKey = StoredValueEncoder.encode(
                     final String encryptedKey = StoredValueEncoder.encode(
                             b64EncodedKey,
                             b64EncodedKey,

+ 2 - 2
server/src/main/java/password/pwm/config/value/RemoteWebServiceValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -105,7 +105,7 @@ public class RemoteWebServiceValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final RemoteWebServiceConfiguration value : values )
         for ( final RemoteWebServiceConfiguration value : values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
 
 
             String encodedValue = value.getPassword();
             String encodedValue = value.getPassword();
             try
             try

+ 2 - 2
server/src/main/java/password/pwm/config/value/StringArrayValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSettingFlag;
 import password.pwm.config.PwmSettingFlag;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -98,7 +98,7 @@ public class StringArrayValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final String value : this.values )
         for ( final String value : this.values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( value );
             valueElement.setText( value );
             returnList.add( valueElement );
             returnList.add( valueElement );
         }
         }

+ 2 - 2
server/src/main/java/password/pwm/config/value/StringValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.bean.DomainID;
 import password.pwm.bean.DomainID;
 import password.pwm.bean.ProfileID;
 import password.pwm.bean.ProfileID;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
@@ -79,7 +79,7 @@ public class StringValue extends AbstractValue implements StoredValue
     @Override
     @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
     {
-        final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+        final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
         valueElement.setText( value );
         valueElement.setText( value );
         return Collections.singletonList( valueElement );
         return Collections.singletonList( valueElement );
     }
     }

+ 2 - 2
server/src/main/java/password/pwm/config/value/UserPermissionValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.stored.XmlOutputProcessData;
@@ -117,7 +117,7 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         final List<XmlElement> returnList = new ArrayList<>( values.size() );
         for ( final UserPermission value : values )
         for ( final UserPermission value : values )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             valueElement.setText( JsonFactory.get().serialize( value ) );
             valueElement.setText( JsonFactory.get().serialize( value ) );
             returnList.add( valueElement );
             returnList.add( valueElement );
         }
         }

+ 2 - 2
server/src/main/java/password/pwm/config/value/VerificationMethodValue.java

@@ -21,8 +21,8 @@
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
 import lombok.Value;
 import lombok.Value;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.option.IdentityVerificationMethod;
 import password.pwm.config.option.IdentityVerificationMethod;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -157,7 +157,7 @@ public class VerificationMethodValue extends AbstractValue implements StoredValu
     @Override
     @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
     {
-        final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+        final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
         valueElement.setText( JsonFactory.get().serialize( value ) );
         valueElement.setText( JsonFactory.get().serialize( value ) );
         return Collections.singletonList( valueElement );
         return Collections.singletonList( valueElement );
     }
     }

+ 2 - 2
server/src/main/java/password/pwm/config/value/X509CertificateValue.java

@@ -20,8 +20,8 @@
 
 
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
@@ -106,7 +106,7 @@ public class X509CertificateValue extends AbstractValue implements StoredValue
         final List<XmlElement> returnList = new ArrayList<>( b64certificates.size() );
         final List<XmlElement> returnList = new ArrayList<>( b64certificates.size() );
         for ( final String b64value : b64certificates )
         for ( final String b64value : b64certificates )
         {
         {
-            final XmlElement valueElement = XmlChai.getFactory().newElement( valueElementName );
+            final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
             final String splitValue = StringUtil.insertRepeatedLineBreaks( b64value, PwmConstants.XML_OUTPUT_LINE_WRAP_LENGTH );
             final String splitValue = StringUtil.insertRepeatedLineBreaks( b64value, PwmConstants.XML_OUTPUT_LINE_WRAP_LENGTH );
             valueElement.setText( splitValue );
             valueElement.setText( splitValue );
 
 

+ 2 - 3
server/src/main/java/password/pwm/svc/userhistory/LdapXmlUserHistory.java

@@ -26,7 +26,6 @@ import com.novell.ldapchai.exception.ChaiUnavailableException;
 import com.novell.ldapchai.util.ConfigObjectRecord;
 import com.novell.ldapchai.util.ConfigObjectRecord;
 import lombok.Value;
 import lombok.Value;
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlFactory;
 import org.jrivard.xmlchai.XmlFactory;
@@ -259,7 +258,7 @@ public class LdapXmlUserHistory implements UserHistoryStore
 
 
         public String toXml( )
         public String toXml( )
         {
         {
-            final XmlFactory xmlFactory = XmlChai.getFactory();
+            final XmlFactory xmlFactory = XmlFactory.getFactory();
             final XmlDocument doc = xmlFactory.newDocument( XML_NODE_ROOT );
             final XmlDocument doc = xmlFactory.newDocument( XML_NODE_ROOT );
 
 
             for ( final StoredEvent loopEvent : records )
             for ( final StoredEvent loopEvent : records )
@@ -307,7 +306,7 @@ public class LdapXmlUserHistory implements UserHistoryStore
 
 
             try ( InputStream inputStream = new ByteArrayInputStream( input.getBytes( PwmConstants.DEFAULT_CHARSET ) ) )
             try ( InputStream inputStream = new ByteArrayInputStream( input.getBytes( PwmConstants.DEFAULT_CHARSET ) ) )
             {
             {
-                final XmlFactory xmlFactory = XmlChai.getFactory();
+                final XmlFactory xmlFactory = XmlFactory.getFactory();
                 final XmlDocument xmlDocument = xmlFactory.parse( inputStream, AccessMode.IMMUTABLE );
                 final XmlDocument xmlDocument = xmlFactory.parse( inputStream, AccessMode.IMMUTABLE );
                 final XmlElement rootElement = xmlDocument.getRootElement();
                 final XmlElement rootElement = xmlDocument.getRootElement();
 
 

+ 1 - 2
server/src/main/java/password/pwm/util/java/LicenseInfoReader.java

@@ -22,7 +22,6 @@ package password.pwm.util.java;
 
 
 import lombok.Value;
 import lombok.Value;
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlFactory;
 import org.jrivard.xmlchai.XmlFactory;
@@ -47,7 +46,7 @@ public class LicenseInfoReader
     {
     {
         final List<String> attributionFiles = Collections.singletonList( "/attribution.xml" );
         final List<String> attributionFiles = Collections.singletonList( "/attribution.xml" );
         final List<DependencyInfo> returnList = new ArrayList<>();
         final List<DependencyInfo> returnList = new ArrayList<>();
-        final XmlFactory factory = XmlChai.getFactory();
+        final XmlFactory factory = XmlFactory.getFactory();
 
 
         for ( final String attributionFile : attributionFiles )
         for ( final String attributionFile : attributionFiles )
         {
         {

+ 4 - 4
server/src/test/java/password/pwm/config/PwmSettingTest.java

@@ -21,9 +21,9 @@
 package password.pwm.config;
 package password.pwm.config;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
@@ -81,7 +81,7 @@ public class PwmSettingTest
     public void testSettingXmlPresence() throws Exception
     public void testSettingXmlPresence() throws Exception
     {
     {
         final InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME );
         final InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME );
-        final XmlDocument xmlDoc = XmlChai.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
+        final XmlDocument xmlDoc = XmlFactory.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
 
 
         for ( final PwmSetting pwmSetting : PwmSetting.values() )
         for ( final PwmSetting pwmSetting : PwmSetting.values() )
         {
         {
@@ -95,7 +95,7 @@ public class PwmSettingTest
     public void testSettingXmlDuplication() throws Exception
     public void testSettingXmlDuplication() throws Exception
     {
     {
         final InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME );
         final InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME );
-        final XmlDocument xmlDoc = XmlChai.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
+        final XmlDocument xmlDoc = XmlFactory.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
 
 
         for ( final PwmSetting pwmSetting : PwmSetting.values() )
         for ( final PwmSetting pwmSetting : PwmSetting.values() )
         {
         {
@@ -109,7 +109,7 @@ public class PwmSettingTest
     public void testUnknownSettingXml() throws Exception
     public void testUnknownSettingXml() throws Exception
     {
     {
         final InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME );
         final InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME );
-        final XmlDocument xmlDoc = XmlChai.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
+        final XmlDocument xmlDoc = XmlFactory.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
 
 
         final String expression = "/settings/setting";
         final String expression = "/settings/setting";
         final List<XmlElement> results = xmlDoc.evaluateXpathToElements( expression );
         final List<XmlElement> results = xmlDoc.evaluateXpathToElements( expression );

+ 2 - 2
server/src/test/java/password/pwm/config/PwmSettingXmlTest.java

@@ -21,9 +21,9 @@
 package password.pwm.config;
 package password.pwm.config;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeAll;
@@ -49,7 +49,7 @@ public class PwmSettingXmlTest
     {
     {
         try ( InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME ) )
         try ( InputStream inputStream = PwmSetting.class.getClassLoader().getResourceAsStream( PwmSettingXml.SETTING_XML_FILENAME ) )
         {
         {
-            xmlDocument = XmlChai.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
+            xmlDocument = XmlFactory.getFactory().parse( inputStream, AccessMode.IMMUTABLE );
         }
         }
     }
     }
 
 

+ 8 - 9
server/src/test/java/password/pwm/config/value/ActionValueTest.java

@@ -21,7 +21,6 @@
 package password.pwm.config.value;
 package password.pwm.config.value;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlFactory;
 import org.jrivard.xmlchai.XmlFactory;
@@ -47,7 +46,7 @@ public class ActionValueTest
             throws Exception
             throws Exception
     {
     {
         final String settingValueValue = xmlTestValue( "jsonDataFull" );
         final String settingValueValue = xmlTestValue( "jsonDataFull" );
-        final XmlDocument xmlDocument = XmlChai.getFactory().parseString( settingValueValue, AccessMode.IMMUTABLE );
+        final XmlDocument xmlDocument = XmlFactory.getFactory().parseString( settingValueValue, AccessMode.IMMUTABLE );
         final XmlElement settingsElement = xmlDocument.getRootElement();
         final XmlElement settingsElement = xmlDocument.getRootElement();
         final XmlElement settingElement = settingsElement.getChild( "setting" ).orElseThrow();
         final XmlElement settingElement = settingsElement.getChild( "setting" ).orElseThrow();
         final ActionValue actionValue = ( ActionValue ) ActionValue.factory().fromXmlElement( PwmSetting.CHANGE_PASSWORD_WRITE_ATTRIBUTES, settingElement, null );
         final ActionValue actionValue = ( ActionValue ) ActionValue.factory().fromXmlElement( PwmSetting.CHANGE_PASSWORD_WRITE_ATTRIBUTES, settingElement, null );
@@ -114,13 +113,13 @@ public class ActionValueTest
                 .storedValueEncoderMode( StoredValueEncoder.Mode.PLAIN )
                 .storedValueEncoderMode( StoredValueEncoder.Mode.PLAIN )
                 .build();
                 .build();
         final List<XmlElement> valueElements = actionValue.toXmlValues( "value", xmlOutputProcessData );
         final List<XmlElement> valueElements = actionValue.toXmlValues( "value", xmlOutputProcessData );
-        final XmlElement settingElement = XmlChai.getFactory().newElement( "setting" );
+        final XmlElement settingElement = XmlFactory.getFactory().newElement( "setting" );
         settingElement.setAttribute( "syntaxVersion", "2" );
         settingElement.setAttribute( "syntaxVersion", "2" );
         settingElement.attachElement( valueElements );
         settingElement.attachElement( valueElements );
 
 
-        final XmlDocument xmlDocument = XmlChai.getFactory().newDocument( "settings" );
+        final XmlDocument xmlDocument = XmlFactory.getFactory().newDocument( "settings" );
         xmlDocument.getRootElement().attachElement( settingElement );
         xmlDocument.getRootElement().attachElement( settingElement );
-        final String xmlStringOutput = XmlChai.getFactory().outputString( xmlDocument, XmlFactory.OutputFlag.Compact );
+        final String xmlStringOutput = XmlFactory.getFactory().outputString( xmlDocument, XmlFactory.OutputFlag.Compact );
 
 
         Assertions.assertEquals( xmlTestValue( "jsonDataFull" ), xmlStringOutput );
         Assertions.assertEquals( xmlTestValue( "jsonDataFull" ), xmlStringOutput );
     }
     }
@@ -130,7 +129,7 @@ public class ActionValueTest
             throws Exception
             throws Exception
     {
     {
         final String settingValueValue = xmlTestValue( "jsonDataBasicWeb" );
         final String settingValueValue = xmlTestValue( "jsonDataBasicWeb" );
-        final XmlDocument xmlDocument = XmlChai.getFactory().parseString( settingValueValue, AccessMode.IMMUTABLE );
+        final XmlDocument xmlDocument = XmlFactory.getFactory().parseString( settingValueValue, AccessMode.IMMUTABLE );
         final XmlElement settingsElement = xmlDocument.getRootElement();
         final XmlElement settingsElement = xmlDocument.getRootElement();
         final XmlElement settingElement = settingsElement.getChild( "setting" ).orElseThrow();
         final XmlElement settingElement = settingsElement.getChild( "setting" ).orElseThrow();
         final ActionValue actionValue = ( ActionValue ) ActionValue.factory().fromXmlElement( PwmSetting.CHANGE_PASSWORD_WRITE_ATTRIBUTES, settingElement, null );
         final ActionValue actionValue = ( ActionValue ) ActionValue.factory().fromXmlElement( PwmSetting.CHANGE_PASSWORD_WRITE_ATTRIBUTES, settingElement, null );
@@ -175,13 +174,13 @@ public class ActionValueTest
                 .build();
                 .build();
 
 
         final List<XmlElement> valueElements = actionValue.toXmlValues( "value", xmlOutputProcessData );
         final List<XmlElement> valueElements = actionValue.toXmlValues( "value", xmlOutputProcessData );
-        final XmlElement settingElement = XmlChai.getFactory().newElement( "setting" );
+        final XmlElement settingElement = XmlFactory.getFactory().newElement( "setting" );
         settingElement.setAttribute( "syntaxVersion", "2" );
         settingElement.setAttribute( "syntaxVersion", "2" );
         settingElement.attachElement( valueElements );
         settingElement.attachElement( valueElements );
 
 
-        final XmlDocument xmlDocument = XmlChai.getFactory().newDocument( "settings" );
+        final XmlDocument xmlDocument = XmlFactory.getFactory().newDocument( "settings" );
         xmlDocument.getRootElement().attachElement( settingElement );
         xmlDocument.getRootElement().attachElement( settingElement );
-        final String xmlStringOutput = XmlChai.getFactory().outputString( xmlDocument, XmlFactory.OutputFlag.Compact );
+        final String xmlStringOutput = XmlFactory.getFactory().outputString( xmlDocument, XmlFactory.OutputFlag.Compact );
 
 
         Assertions.assertEquals( xmlTestValue( "jsonDataBasicWeb" ), xmlStringOutput );
         Assertions.assertEquals( xmlTestValue( "jsonDataBasicWeb" ), xmlStringOutput );
     }
     }

+ 5 - 5
server/src/test/java/password/pwm/config/value/FileValueTest.java

@@ -22,9 +22,9 @@ package password.pwm.config.value;
 
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.IOUtils;
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
@@ -58,12 +58,12 @@ public class FileValueTest
             {
             {
                 final FileValue fileValue = FileValue.newFileValue( "filename", "fileType", ImmutableByteArray.of( inputFile ) );
                 final FileValue fileValue = FileValue.newFileValue( "filename", "fileType", ImmutableByteArray.of( inputFile ) );
                 final List<XmlElement> valueElements = fileValue.toXmlValues( "value", XmlOutputProcessData.builder().build() );
                 final List<XmlElement> valueElements = fileValue.toXmlValues( "value", XmlOutputProcessData.builder().build() );
-                final XmlDocument xmlDocument = XmlChai.getFactory().newDocument( "root" );
-                final XmlElement settingElement = XmlChai.getFactory().newElement( "setting" );
+                final XmlDocument xmlDocument = XmlFactory.getFactory().newDocument( "root" );
+                final XmlElement settingElement = XmlFactory.getFactory().newElement( "setting" );
                 xmlDocument.getRootElement().attachElement( settingElement );
                 xmlDocument.getRootElement().attachElement( settingElement );
                 settingElement.attachElement( valueElements );
                 settingElement.attachElement( valueElements );
                 final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                 final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-                XmlChai.getFactory().output( xmlDocument, byteArrayOutputStream );
+                XmlFactory.getFactory().output( xmlDocument, byteArrayOutputStream );
                 xmlSettingValue = byteArrayOutputStream.toString( PwmConstants.DEFAULT_CHARSET );
                 xmlSettingValue = byteArrayOutputStream.toString( PwmConstants.DEFAULT_CHARSET );
             }
             }
 
 
@@ -72,7 +72,7 @@ public class FileValueTest
 
 
             // read filevalue from xml string
             // read filevalue from xml string
             {
             {
-                final XmlDocument xmlDocument = XmlChai.getFactory().parseString( xmlSettingValue, AccessMode.IMMUTABLE );
+                final XmlDocument xmlDocument = XmlFactory.getFactory().parseString( xmlSettingValue, AccessMode.IMMUTABLE );
                 final XmlElement settingElement = xmlDocument.getRootElement().getChild( "setting" ).orElseThrow();
                 final XmlElement settingElement = xmlDocument.getRootElement().getChild( "setting" ).orElseThrow();
                 final FileValue fileValue = ( FileValue ) FileValue.factory().fromXmlElement( PwmSetting.DATABASE_JDBC_DRIVER, settingElement, null );
                 final FileValue fileValue = ( FileValue ) FileValue.factory().fromXmlElement( PwmSetting.DATABASE_JDBC_DRIVER, settingElement, null );
                 final Map<FileValue.FileInformation, FileValue.FileContent> map = ( Map ) fileValue.toNativeObject();
                 final Map<FileValue.FileInformation, FileValue.FileContent> map = ( Map ) fileValue.toNativeObject();

+ 1 - 2
server/src/test/java/password/pwm/svc/event/LdapXmlUserHistoryTest.java

@@ -21,7 +21,6 @@
 package password.pwm.svc.event;
 package password.pwm.svc.event;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlFactory;
 import org.jrivard.xmlchai.XmlFactory;
@@ -95,7 +94,7 @@ public class LdapXmlUserHistoryTest
                 .build() ) );
                 .build() ) );
 
 
         final String xmlValue = storedHistory.toXml();
         final String xmlValue = storedHistory.toXml();
-        final XmlFactory xmlFactory = XmlChai.getFactory();
+        final XmlFactory xmlFactory = XmlFactory.getFactory();
 
 
         final XmlDocument xmlDocument = xmlFactory.parseString( xmlValue, AccessMode.IMMUTABLE );
         final XmlDocument xmlDocument = xmlFactory.parseString( xmlValue, AccessMode.IMMUTABLE );
         final Optional<XmlElement> optionalRecordElement = xmlDocument.evaluateXpathToElement( "/history/record" );
         final Optional<XmlElement> optionalRecordElement = xmlDocument.evaluateXpathToElement( "/history/record" );

+ 1 - 2
server/src/test/java/password/pwm/util/java/XmlFactoryBenchmarkExtendedTest.java

@@ -21,7 +21,6 @@
 package password.pwm.util.java;
 package password.pwm.util.java;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlFactory;
 import org.jrivard.xmlchai.XmlFactory;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
@@ -69,7 +68,7 @@ public class XmlFactoryBenchmarkExtendedTest
     private void benchmarkImpl ()
     private void benchmarkImpl ()
             throws Exception
             throws Exception
     {
     {
-        final XmlFactory xmlFactory = XmlChai.getFactory();
+        final XmlFactory xmlFactory = XmlFactory.getFactory();
         final InputStream xmlFactoryTestXmlFile = XmlFactoryTest.class.getResourceAsStream( "XmlFactoryTest.xml" );
         final InputStream xmlFactoryTestXmlFile = XmlFactoryTest.class.getResourceAsStream( "XmlFactoryTest.xml" );
         final XmlDocument xmlDocument = xmlFactory.parse( xmlFactoryTestXmlFile, AccessMode.IMMUTABLE );
         final XmlDocument xmlDocument = xmlFactory.parse( xmlFactoryTestXmlFile, AccessMode.IMMUTABLE );
         xmlFactory.output( xmlDocument, OutputStream.nullOutputStream() );
         xmlFactory.output( xmlDocument, OutputStream.nullOutputStream() );

+ 2 - 2
server/src/test/java/password/pwm/util/java/XmlFactoryTest.java

@@ -21,9 +21,9 @@
 package password.pwm.util.java;
 package password.pwm.util.java;
 
 
 import org.jrivard.xmlchai.AccessMode;
 import org.jrivard.xmlchai.AccessMode;
-import org.jrivard.xmlchai.XmlChai;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlDocument;
 import org.jrivard.xmlchai.XmlElement;
 import org.jrivard.xmlchai.XmlElement;
+import org.jrivard.xmlchai.XmlFactory;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 
 
@@ -38,7 +38,7 @@ public class XmlFactoryTest
             throws Exception
             throws Exception
     {
     {
         final InputStream xmlFactoryTestXmlFile = this.getClass().getResourceAsStream( "XmlFactoryTest.xml" );
         final InputStream xmlFactoryTestXmlFile = this.getClass().getResourceAsStream( "XmlFactoryTest.xml" );
-        final XmlDocument xmlDocument = XmlChai.getFactory().parse( xmlFactoryTestXmlFile, AccessMode.IMMUTABLE );
+        final XmlDocument xmlDocument = XmlFactory.getFactory().parse( xmlFactoryTestXmlFile, AccessMode.IMMUTABLE );
         Assertions.assertEquals( "PwmConfiguration", xmlDocument.getRootElement().getName() );
         Assertions.assertEquals( "PwmConfiguration", xmlDocument.getRootElement().getName() );
         final Optional<XmlElement> configIsEditable = xmlDocument.evaluateXpathToElement( "//property[@key='configIsEditable']" );
         final Optional<XmlElement> configIsEditable = xmlDocument.evaluateXpathToElement( "//property[@key='configIsEditable']" );
         Assertions.assertTrue( configIsEditable.isPresent() );
         Assertions.assertTrue( configIsEditable.isPresent() );