mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-13 08:55:44 +01:00
configuration entry store should be able to read the defect format of earlier versions
This commit is contained in:
@@ -366,6 +366,7 @@ public class JAXBConfigurationEntryStore<V>
|
||||
if (!element.isNil())
|
||||
{
|
||||
V v = element.getValue();
|
||||
|
||||
logger.trace("add element {} to configuration entry store", v);
|
||||
|
||||
entries.put(key, v);
|
||||
@@ -375,13 +376,15 @@ public class JAXBConfigurationEntryStore<V>
|
||||
logger.warn("could not unmarshall object of entry store");
|
||||
}
|
||||
|
||||
// closed entry tag
|
||||
reader.nextTag();
|
||||
// closed or new entry tag
|
||||
if (reader.nextTag() == XMLStreamReader.END_ELEMENT)
|
||||
{
|
||||
|
||||
// start new entry
|
||||
// fixed format, start new entry
|
||||
reader.nextTag();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StoreException("could not load configuration", ex);
|
||||
@@ -412,6 +415,7 @@ public class JAXBConfigurationEntryStore<V>
|
||||
);
|
||||
//J+
|
||||
writer.writeStartDocument();
|
||||
|
||||
// configuration start
|
||||
writer.writeStartElement(TAG_CONFIGURATION);
|
||||
|
||||
@@ -421,11 +425,14 @@ public class JAXBConfigurationEntryStore<V>
|
||||
|
||||
for (Entry<String, V> e : entries.entrySet())
|
||||
{
|
||||
|
||||
// entry start
|
||||
writer.writeStartElement(TAG_ENTRY);
|
||||
|
||||
// key start
|
||||
writer.writeStartElement(TAG_KEY);
|
||||
writer.writeCharacters(e.getKey());
|
||||
|
||||
// key end
|
||||
writer.writeEndElement();
|
||||
|
||||
@@ -434,6 +441,7 @@ public class JAXBConfigurationEntryStore<V>
|
||||
e.getValue());
|
||||
|
||||
m.marshal(je, writer);
|
||||
|
||||
// entry end
|
||||
writer.writeEndElement();
|
||||
}
|
||||
|
||||
@@ -98,6 +98,30 @@ public class JAXBConfigurationEntryStoreTest
|
||||
assertEquals("tuser3", a3.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
@Test
|
||||
public void testLoadWrongFormat() throws IOException
|
||||
{
|
||||
ConfigurationEntryStore<AssignedPermission> store =
|
||||
createPermissionStore(RESOURCE_WRONG);
|
||||
AssignedPermission a1 = store.get("3ZOHKUePB3");
|
||||
|
||||
assertEquals("tuser", a1.getName());
|
||||
|
||||
AssignedPermission a2 = store.get("7COHL2j1G1");
|
||||
|
||||
assertEquals("tuser2", a2.getName());
|
||||
|
||||
AssignedPermission a3 = store.get("A0OHL3Qqw2");
|
||||
|
||||
assertEquals("tuser3", a3.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" ?>
|
||||
<configuration>
|
||||
<entry>
|
||||
<key>3ZOHKUePB3</key>
|
||||
<value>
|
||||
<group-permission>false</group-permission>
|
||||
<name>tuser</name>
|
||||
<permission>repository:*:READ</permission>
|
||||
</value>
|
||||
<entry>
|
||||
<key>A0OHL3Qqw2</key>
|
||||
<value>
|
||||
<group-permission>false</group-permission>
|
||||
<name>tuser3</name>
|
||||
<permission>repository:*:OWNER</permission>
|
||||
</value>
|
||||
<entry>
|
||||
<key>7COHL2j1G1</key>
|
||||
<value>
|
||||
<group-permission>false</group-permission>
|
||||
<name>tuser2</name>
|
||||
<permission>repository:*:WRITE</permission>
|
||||
</value>
|
||||
</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user