Skip to content

Commit

Permalink
0000669: Add schema and catalog to the SymmetricDS Batch XML and chan…
Browse files Browse the repository at this point in the history
…ge the publisher to fill in the schema and catalog
  • Loading branch information
chenson42 committed Aug 11, 2012
1 parent 785d9a7 commit ab78724
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 15 deletions.
10 changes: 3 additions & 7 deletions symmetric-client/src/main/resources/sym_batch.xsd
Expand Up @@ -19,6 +19,8 @@
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="catalog" type="xsd:string" use="optional" />
<xsd:attribute name="schema" type="xsd:string" use="optional" />
<xsd:attribute name="entity" type="xsd:string" use="required" />
<xsd:attribute name="dml" use="required">
<xsd:simpleType>
Expand All @@ -37,13 +39,7 @@
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]*" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="nodeid" type="xsd:string" />
<xsd:attribute name="time">
<xsd:simpleType>
Expand Down
Expand Up @@ -30,6 +30,7 @@
import java.util.Set;

import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Namespace;
Expand Down Expand Up @@ -107,10 +108,17 @@ protected void finalizeXmlAndPublish(Context context) {
}
}

protected void toXmlElement(DataEventType dml, Element xml, String tableName,
String[] columnNames, String[] data, String[] keyNames, String[] keys) {
protected void toXmlElement(DataEventType dml, Element xml, String catalogName,
String schemaName, String tableName, String[] columnNames, String[] data,
String[] keyNames, String[] keys) {
Element row = new Element("row");
xml.addContent(row);
if (StringUtils.isNotBlank(catalogName)) {
row.setAttribute("catalog", catalogName);
}
if (StringUtils.isNotBlank(schemaName)) {
row.setAttribute("schema", schemaName);
}
row.setAttribute("entity", tableName);
row.setAttribute("dml", dml.getCode());

Expand Down Expand Up @@ -158,7 +166,7 @@ protected void addFormattedExtraGroupAttributes(Context context, Element xml) {

protected Element getXmlFromCache(Context context, String[] columnNames, String[] data,
String[] keyNames, String[] keys) {
Map<String,Element> xmlCache = getXmlCache(context);
Map<String, Element> xmlCache = getXmlCache(context);
Element xml = null;
String txId = toXmlGroupId(columnNames, data, keyNames, keys);
if (txId != null) {
Expand Down Expand Up @@ -212,7 +220,7 @@ protected String toXmlGroupId(String[] columnNames, String[] data, String[] keyN
}
return null;
}

public String[] getNodeGroupIdsToApplyTo() {
return nodeGroups;
}
Expand Down
Expand Up @@ -62,7 +62,9 @@ public Set<String> routeToNodes(SimpleRouterContext context, DataMetaData dataMe
.getTriggerHistory().getParsedPkColumnNames(), dataMetaData.getData()
.toParsedPkData());
if (xml != null) {
toXmlElement(dataMetaData.getData().getDataEventType(), xml, dataMetaData.getData()
toXmlElement(dataMetaData.getData().getDataEventType(), xml, dataMetaData
.getTriggerHistory().getSourceCatalogName(), dataMetaData
.getTriggerHistory().getSourceSchemaName(), dataMetaData.getData()
.getTableName(), dataMetaData.getTriggerHistory().getParsedColumnNames(),
dataMetaData.getData().toParsedRowData(), dataMetaData.getTriggerHistory()
.getParsedPkColumnNames(), dataMetaData.getData().toParsedPkData());
Expand Down
Expand Up @@ -74,9 +74,9 @@ public boolean beforeWrite(
data.getParsedData(CsvData.ROW_DATA), table.getPrimaryKeyColumnNames(),
data.getParsedData(CsvData.PK_DATA));
if (xml != null) {
toXmlElement(data.getDataEventType(), xml, table.getName(), table.getColumnNames(),
data.getParsedData(CsvData.ROW_DATA), table.getPrimaryKeyColumnNames(),
data.getParsedData(CsvData.PK_DATA));
toXmlElement(data.getDataEventType(), xml, table.getCatalog(), table.getSchema(),
table.getName(), table.getColumnNames(),
data.getParsedData(CsvData.ROW_DATA), table.getPrimaryKeyColumnNames(), data.getParsedData(CsvData.PK_DATA));
}
} else if (log.isDebugEnabled()) {
log.debug("'{}' not in list to publish", table.getName());
Expand Down

0 comments on commit ab78724

Please sign in to comment.