public static void marshell(VDBMetaData vdb, OutputStream out) throws XMLStreamException, IOException { VDBMetadataParser parser = new VDBMetadataParser(); parser.writeVDB(vdb, out); }
private static void parseEntry(XMLStreamReader reader, EntryMetaData entry) throws XMLStreamException { Properties props = getAttributes(reader); entry.setPath(props.getProperty(Element.PATH.getLocalName())); while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { Element element = Element.forName(reader.getLocalName()); switch (element) { case DESCRIPTION: entry.setDescription(reader.getElementText()); break; case PROPERTY: parseProperty(reader, entry); break; default: throw new XMLStreamException(AdminPlugin.Util.gs("unexpected_element2",reader.getName(), Element.DESCRIPTION.getLocalName(), Element.PROPERTY.getLocalName())); } } }
private static void parseProperty(XMLStreamReader reader, AdminObjectImpl anObj) throws XMLStreamException { boolean text = false; if (reader.getAttributeCount() > 0) { String key = null; String value = null; for(int i=0; i<reader.getAttributeCount(); i++) { String attrName = reader.getAttributeLocalName(i); String attrValue = reader.getAttributeValue(i); if (attrName.equals(Element.NAME.getLocalName())) { key = attrValue; } else if (attrName.equals(Element.VALUE.getLocalName())) { value = attrValue; } } if (value == null) { value = reader.getElementText(); text = true; } anObj.addProperty(key, value); } if (!text) { ignoreTillEnd(reader); } }
break; case PROPERTY: parseProperty(reader, vdb); break; case MODEL: ModelMetaData model = new ModelMetaData(); parseModel(reader, model); vdb.addModel(model); break; case TRANSLATOR: VDBTranslatorMetaData translator = new VDBTranslatorMetaData(); parseTranslator(reader, translator); vdb.addOverideTranslator(translator); break; case DATA_ROLE: DataPolicyMetadata policy = new DataPolicyMetadata(); parseDataRole(reader, policy); vdb.addDataPolicy(policy); break; case IMPORT_VDB: VDBImportMetadata vdbImport = new VDBImportMetadata(); Properties props = getAttributes(reader); vdbImport.setName(props.getProperty(Element.NAME.getLocalName())); String version = props.getProperty(Element.VERSION.getLocalName()); ignoreTillEnd(reader); break; case ENTRY: EntryMetaData entry = new EntryMetaData();
@Test public void testParseVDB() throws Exception { FileInputStream in = new FileInputStream(UnitTestUtil.getTestDataPath() + "/parser-test-vdb.xml"); VDBMetadataParser.validate(in); in = new FileInputStream(UnitTestUtil.getTestDataPath() + "/parser-test-vdb.xml"); VDBMetaData vdb = VDBMetadataParser.unmarshell(in); TestVDBUtility.validateVDB(vdb); }
@Test public void testExcludeImported() throws Exception { VDBMetaData metadata = TestVDBUtility.buildVDB(); assertNotNull(metadata.getModel("model-one")); metadata.setImportedModels(Collections.singleton("model-one")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); VDBMetadataParser.marshell(metadata, baos); baos.close(); VDBMetaData parsed = VDBMetadataParser.unmarshell(new ByteArrayInputStream(baos.toByteArray())); assertNull(parsed.getModel("model-one")); }
VDBMetaData vdb = null; if (r != null) { vdb = VDBMetadataParser.unmarshell(r.openStream());
private static void parseModel(XMLStreamReader reader, ModelMetaData model) throws XMLStreamException { Properties props = getAttributes(reader); model.setName(props.getProperty(Element.NAME.getLocalName())); model.setModelType(props.getProperty(Element.TYPE.getLocalName(), "PHYSICAL")); break; case PROPERTY: parseProperty(reader, model); break; case SOURCE: Properties sourceProps = getAttributes(reader); String name = sourceProps.getProperty(Element.NAME.getLocalName()); String translatorName = sourceProps.getProperty(Element.SOURCE_TRANSLATOR_NAME_ATTR.getLocalName()); String connectionName = sourceProps.getProperty(Element.SOURCE_CONNECTION_JNDI_NAME_ATTR.getLocalName()); model.addSourceMapping(name, translatorName, connectionName); ignoreTillEnd(reader); break; case VALIDATION_ERROR: Properties validationProps = getAttributes(reader); String msg = reader.getElementText(); String severity = validationProps.getProperty(Element.VALIDATION_SEVERITY_ATTR.getLocalName()); break; case METADATA: Properties metdataProps = getAttributes(reader); String type = metdataProps.getProperty(Element.TYPE.getLocalName(), "DDL"); String text = reader.getElementText();
case VDB: VDBMetaData vdb = new VDBMetaData(); Properties props = getAttributes(reader); vdb.setName(props.getProperty(Element.NAME.getLocalName())); String version = props.getProperty(Element.VERSION.getLocalName()); vdb.setVersion(version); parseVDB(reader, vdb); return vdb; default:
private static void parseDataRole(XMLStreamReader reader, DataPolicyMetadata policy) throws XMLStreamException { Properties props = getAttributes(reader); policy.setName(props.getProperty(Element.NAME.getLocalName())); policy.setAnyAuthenticated(Boolean.parseBoolean(props.getProperty(Element.DATA_ROLE_ANY_ATHENTICATED_ATTR.getLocalName()))); policy.setGrantAll(Boolean.parseBoolean(props.getProperty(Element.DATA_ROLE_GRANT_ALL_ATTR.getLocalName()))); policy.setAllowCreateTemporaryTables(Boolean.parseBoolean(props.getProperty(Element.DATA_ROLE_ALLOW_TEMP_TABLES_ATTR.getLocalName()))); while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { Element element = Element.forName(reader.getLocalName()); switch (element) { case DESCRIPTION: policy.setDescription(reader.getElementText()); break; case PERMISSION: PermissionMetaData permission = new PermissionMetaData(); parsePermission(reader, permission); policy.addPermission(permission); break; case MAPPED_ROLE_NAME: policy.addMappedRoleName(reader.getElementText()); break; default: throw new XMLStreamException(AdminPlugin.Util.gs("unexpected_element2",reader.getName(), Element.DESCRIPTION.getLocalName(), Element.PERMISSION.getLocalName(), Element.MAPPED_ROLE_NAME.getLocalName()), reader.getLocation()); } } }
@Test(expected=SAXException.class) public void testModelNameUniqueness() throws Exception { FileInputStream in = new FileInputStream(UnitTestUtil.getTestDataPath() + "/model-not-unique-vdb.xml"); VDBMetadataParser.validate(in); }
break; case PROPERTY: parseProperty(reader, vdb); break; case MODEL: ModelMetaData model = new ModelMetaData(); parseModel(reader, model); vdb.addModel(model); break; case TRANSLATOR: VDBTranslatorMetaData translator = new VDBTranslatorMetaData(); parseTranslator(reader, translator); vdb.addOverideTranslator(translator); break; case DATA_ROLE: DataPolicyMetadata policy = new DataPolicyMetadata(); parseDataRole(reader, policy); vdb.addDataPolicy(policy); break; case IMPORT_VDB: VDBImportMetadata vdbImport = new VDBImportMetadata(); Properties props = getAttributes(reader); vdbImport.setName(props.getProperty(Element.NAME.getLocalName())); String version = props.getProperty(Element.VERSION.getLocalName()); ignoreTillEnd(reader); break; case ENTRY: EntryMetaData entry = new EntryMetaData();
try { VDBMetadataParser.validate(new ByteArrayInputStream(bytes)); } catch (SAXException e) { throw new VirtualDatabaseException(e); metadata = VDBMetadataParser.unmarshell(new ByteArrayInputStream(bytes)); } catch (XMLStreamException e) { throw new VirtualDatabaseException(e);
VDBMetaData metadata = null; try { metadata = VDBMetadataParser.unmarshell(new ByteArrayInputStream(bytes)); } catch (XMLStreamException e) { throw new VirtualDatabaseException(e);
private static void parseModel(XMLStreamReader reader, ModelMetaData model) throws XMLStreamException { Properties props = getAttributes(reader); model.setName(props.getProperty(Element.NAME.getLocalName())); model.setModelType(props.getProperty(Element.TYPE.getLocalName(), "PHYSICAL")); break; case PROPERTY: parseProperty(reader, model); break; case SOURCE: Properties sourceProps = getAttributes(reader); String name = sourceProps.getProperty(Element.NAME.getLocalName()); String translatorName = sourceProps.getProperty(Element.SOURCE_TRANSLATOR_NAME_ATTR.getLocalName()); String connectionName = sourceProps.getProperty(Element.SOURCE_CONNECTION_JNDI_NAME_ATTR.getLocalName()); model.addSourceMapping(name, translatorName, connectionName); ignoreTillEnd(reader); break; case VALIDATION_ERROR: Properties validationProps = getAttributes(reader); String msg = reader.getElementText(); String severity = validationProps.getProperty(Element.VALIDATION_SEVERITY_ATTR.getLocalName()); break; case METADATA: Properties metdataProps = getAttributes(reader); String type = metdataProps.getProperty(Element.TYPE.getLocalName(), "DDL"); String text = reader.getElementText();
case VDB: VDBMetaData vdb = new VDBMetaData(); Properties props = getAttributes(reader); vdb.setName(props.getProperty(Element.NAME.getLocalName())); String version = props.getProperty(Element.VERSION.getLocalName()); vdb.setVersion(version); parseVDB(reader, vdb); return vdb; default:
private static void parseDataRole(XMLStreamReader reader, DataPolicyMetadata policy) throws XMLStreamException { Properties props = getAttributes(reader); policy.setName(props.getProperty(Element.NAME.getLocalName())); policy.setAnyAuthenticated(Boolean.parseBoolean(props.getProperty(Element.DATA_ROLE_ANY_ATHENTICATED_ATTR.getLocalName()))); policy.setGrantAll(Boolean.parseBoolean(props.getProperty(Element.DATA_ROLE_GRANT_ALL_ATTR.getLocalName()))); policy.setAllowCreateTemporaryTables(Boolean.parseBoolean(props.getProperty(Element.DATA_ROLE_ALLOW_TEMP_TABLES_ATTR.getLocalName()))); while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { Element element = Element.forName(reader.getLocalName()); switch (element) { case DESCRIPTION: policy.setDescription(reader.getElementText()); break; case PERMISSION: PermissionMetaData permission = new PermissionMetaData(); parsePermission(reader, permission); policy.addPermission(permission); break; case MAPPED_ROLE_NAME: policy.addMappedRoleName(reader.getElementText()); break; default: throw new XMLStreamException(AdminPlugin.Util.gs("unexpected_element2",reader.getName(), Element.DESCRIPTION.getLocalName(), Element.PERMISSION.getLocalName(), Element.MAPPED_ROLE_NAME.getLocalName()), reader.getLocation()); } } }
if (vdbMetadata.exists()) { try { VDBMetadataParser.validate(vdbMetadata.openStream()); } catch (SAXException e) { throw new VirtualDatabaseException(e); metadata = VDBMetadataParser.unmarshell(is); } catch (XMLStreamException e) { throw new VirtualDatabaseException(e);
private static void parseTranslator(XMLStreamReader reader, VDBTranslatorMetaData translator) throws XMLStreamException { Properties props = getAttributes(reader); translator.setName(props.getProperty(Element.NAME.getLocalName())); translator.setType(props.getProperty(Element.TYPE.getLocalName())); translator.setDescription(props.getProperty(Element.DESCRIPTION.getLocalName())); while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { Element element = Element.forName(reader.getLocalName()); switch (element) { case PROPERTY: parseProperty(reader, translator); break; default: throw new XMLStreamException(AdminPlugin.Util.gs("unexpected_element1",reader.getName(), Element.PROPERTY.getLocalName()), reader.getLocation()); } } }
public static void marshell(VDBMetaData vdb, OutputStream out) throws XMLStreamException, IOException { VDBMetadataParser parser = new VDBMetadataParser(); parser.writeVDB(vdb, out); }