Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesResponseRow;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoRequest;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequest;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesRequest;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsRequest;
Expand Down Expand Up @@ -308,4 +310,13 @@ List<MdSchemaMeasureGroupDimensionsResponseRow> mdSchemaMeasureGroupDimensions(
* @return the list
*/
List<DiscoverXmlMetaDataResponseRow> xmlMetaData(DiscoverXmlMetaDataRequest request, RequestMetaData metaData);

/**
* returns a CsdlMetaData.
*
* @param request the request
* @return the list
*/
List<DiscoverCsdlMetaDataResponseRow> csdlMetaData(DiscoverCsdlMetaDataRequest request, RequestMetaData metaData);

}
Original file line number Diff line number Diff line change
Expand Up @@ -478,5 +478,6 @@ private Constants() {
public static final String DEFAULT_DETAILS_POSITION = "DefaultDetailsPosition";
public static final String SORT_PROPERTIES_POSITION = "SortPropertiesPosition";
public static final String FOLDER_POSITION = "FolderPosition";

public static final String RESTRICTIONS_PERSPECTIVE_NAME = "PERSPECTIVE_NAME";
public static final String RESTRICTIONS_VERSION = "VERSION";
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
import org.eclipse.daanse.xmla.api.discover.dbschema.sourcetables.DbSchemaSourceTablesResponseRow;
import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesResponseRow;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.keywords.DiscoverKeywordsResponseRow;
Expand Down Expand Up @@ -111,6 +112,7 @@
import org.eclipse.daanse.xmla.model.record.discover.dbschema.sourcetables.DbSchemaSourceTablesResponseRowR;
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tables.DbSchemaTablesResponseRowR;
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tablesinfo.DbSchemaTablesInfoResponseRowR;
import org.eclipse.daanse.xmla.model.record.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRowR;
import org.eclipse.daanse.xmla.model.record.discover.discover.datasources.DiscoverDataSourcesResponseRowR;
import org.eclipse.daanse.xmla.model.record.discover.discover.enumerators.DiscoverEnumeratorsResponseRowR;
import org.eclipse.daanse.xmla.model.record.discover.discover.keywords.DiscoverKeywordsResponseRowR;
Expand Down Expand Up @@ -678,6 +680,13 @@ static List<DiscoverXmlMetaDataResponseRow> convertToDiscoverXmlMetaDataResponse
.toList();
}

static List<DiscoverCsdlMetaDataResponseRow> convertToDiscoverCsdlMetaDataResponseRow(SOAPBody b) {
List<Map<String, String>> l = getMapValuesList(b);
return l.stream()
.map(m -> (DiscoverCsdlMetaDataResponseRow) new DiscoverCsdlMetaDataResponseRowR(m.get("MetaData")))
.toList();
}

static List<DiscoverDataSourcesResponseRow> convertToDiscoverDataSourcesResponseRow(SOAPBody b) {
List<Map<String, String>> l = getMapValuesList(b);
return l.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesRestrictions;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoRequest;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoRestrictions;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequest;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRestrictions;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesRequest;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesRestrictions;
import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsRequest;
Expand Down Expand Up @@ -194,6 +196,8 @@
import static org.eclipse.daanse.xmla.client.soapmessage.Constants.SCHEMA_NAME1;
import static org.eclipse.daanse.xmla.client.soapmessage.Constants.TABLE_CATALOG;
import static org.eclipse.daanse.xmla.client.soapmessage.Constants.TABLE_SCHEMA;
import static org.eclipse.daanse.xmla.client.soapmessage.Constants.RESTRICTIONS_PERSPECTIVE_NAME;
import static org.eclipse.daanse.xmla.client.soapmessage.Constants.RESTRICTIONS_VERSION;
import static org.eclipse.daanse.xmla.client.soapmessage.SoapUtil.addChildElement;
import static org.eclipse.daanse.xmla.client.soapmessage.SoapUtil.addChildElementPropertyList;

Expand Down Expand Up @@ -624,6 +628,28 @@ static Consumer<SOAPMessage> createDiscoverXmlMetaDataRequestConsumer(DiscoverXm
};
}

static Consumer<SOAPMessage> createDiscoverCsdlMetaDataRequestConsumer(DiscoverCsdlMetaDataRequest requestApi) {
return message -> {
try {
DiscoverCsdlMetaDataRestrictions dr = requestApi.restrictions();
Properties properties = requestApi.properties();
SOAPElement discover = message.getSOAPBody().addChildElement(DISCOVER, null, NS_URI);
discover.addChildElement(REQUEST_TYPE).setTextContent(DISCOVER_XML_METADATA);
SOAPElement restrictionList = discover.addChildElement(RESTRICTIONS).addChildElement(RESTRICTION_LIST);

dr.catalogName().ifPresent(v -> addChildElement(restrictionList, RESTRICTIONS_CATALOG_NAME, v));
dr.perspectiveName().ifPresent(v -> addChildElement(restrictionList, RESTRICTIONS_PERSPECTIVE_NAME, v));
dr.version().ifPresent(v -> addChildElement(restrictionList, RESTRICTIONS_VERSION, v));

SOAPElement propertyList = discover.addChildElement(PROPERTIES).addChildElement(PROPERTY_LIST);
addChildElementPropertyList(propertyList, properties);

} catch (SOAPException e) {
LOGGER.error("DiscoverConsumers DiscoverSchemaRowsetsRequest accept error", e);
}
};
}

static Consumer<SOAPMessage> createDiscoverSchemaRowsetsRequestConsumer(DiscoverSchemaRowsetsRequest requestApi) {
return message -> {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesResponseRow;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoRequest;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequest;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesRequest;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsRequest;
Expand Down Expand Up @@ -95,6 +97,7 @@
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToDiscoverPropertiesResponseRow;
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToDiscoverSchemaRowsetsResponseRow;
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToDiscoverXmlMetaDataResponseRow;
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToDiscoverCsdlMetaDataResponseRow;
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToMdSchemaActionsResponseRow;
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToMdSchemaCubesResponseRow;
import static org.eclipse.daanse.xmla.client.soapmessage.Convertor.convertToMdSchemaDimensionsResponseRow;
Expand Down Expand Up @@ -310,6 +313,19 @@ public List<DiscoverXmlMetaDataResponseRow> xmlMetaData(DiscoverXmlMetaDataReque
return List.of();
}

@Override
public List<DiscoverCsdlMetaDataResponseRow> csdlMetaData(DiscoverCsdlMetaDataRequest requestApi,
RequestMetaData metaData) {
try {
Consumer<SOAPMessage> msg = DiscoverConsumers.createDiscoverCsdlMetaDataRequestConsumer(requestApi);
SOAPMessage message = soapClient.callSoapWebService(Optional.of(SOAP_ACTION_DISCOVER), msg);
return convertToDiscoverCsdlMetaDataResponseRow(message.getSOAPBody());
} catch (SOAPException e) {
LOGGER.error("DiscoverService xmlMetaData error", e);
}
return List.of();
}

@Override
public List<DbSchemaColumnsResponseRow> dbSchemaColumns(DbSchemaColumnsRequest requestApi, RequestMetaData metaData) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
package org.eclipse.daanse.xmla.model.record.discover.discover.csdlmetadata;

import org.eclipse.daanse.xmla.api.discover.discover.xmlmetadata.DiscoverXmlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow;

public record DiscoverCsdlMetaDataResponseRowR(String metaData) implements DiscoverXmlMetaDataResponseRow {
public record DiscoverCsdlMetaDataResponseRowR(String metaData) implements DiscoverCsdlMetaDataResponseRow {
}
Original file line number Diff line number Diff line change
Expand Up @@ -1077,4 +1077,7 @@ static class EX {
public static final String KEYWORD = "Keyword";
public static final String ENUM_NAME = "EnumName";
public static final String SCHEMA_NAME_LOW = "SchemaName";
public static final String CATALOG_NAME = "CATALOG_NAME";
public static final String PERSPECTIVE_NAME = "PERSPECTIVE_NAME";
public static final String VERSION = "VERSION";
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
import org.eclipse.daanse.xmla.model.record.discover.dbschema.sourcetables.DbSchemaSourceTablesRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tables.DbSchemaTablesRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tablesinfo.DbSchemaTablesInfoRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.datasources.DiscoverDataSourcesRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.enumerators.DiscoverEnumeratorsRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.keywords.DiscoverKeywordsRestrictionsR;
Expand Down Expand Up @@ -432,6 +433,15 @@ public static DiscoverXmlMetaDataRestrictionsR discoverDiscoverXmlMetaDataRestri
);
}

public static DiscoverCsdlMetaDataRestrictionsR discoverDiscoverCsdlMetaDataRestrictions(SOAPElement restriction) {
Map<String, String> m = getRestrictionMap(restriction);
return new DiscoverCsdlMetaDataRestrictionsR(
Optional.ofNullable(m.get(CATALOG_NAME)),
Optional.ofNullable(m.get(PERSPECTIVE_NAME)),
Optional.ofNullable(m.get(VERSION))
);
}

public static DiscoverDataSourcesRestrictionsR discoverDiscoverDataSourcesRestrictions(SOAPElement restriction) {
Map<String, String> m = getRestrictionMap(restriction);
return new DiscoverDataSourcesRestrictionsR(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import org.eclipse.daanse.xmla.api.discover.dbschema.sourcetables.DbSchemaSourceTablesResponseRow;
import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesResponseRow;
import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.keywords.DiscoverKeywordsResponseRow;
Expand Down Expand Up @@ -326,6 +327,16 @@ public static void toDiscoverXmlMetaData(List<DiscoverXmlMetaDataResponseRow> ro

}

public static void toDiscoverCsdlMetaData(List<DiscoverCsdlMetaDataResponseRow> rows, SOAPBody body)
throws SOAPException {
SOAPElement root = addDiscoverCsdlMetaDataRoot(body);

for (DiscoverCsdlMetaDataResponseRow discoverCsdlMetaDataResponseRow : rows) {
addDiscoverCsdlMetaDataResponseRow(root, discoverCsdlMetaDataResponseRow);
}

}

public static void toDiscoverDataSources(List<DiscoverDataSourcesResponseRow> rows, SOAPBody body)
throws SOAPException {
SOAPElement root = addDiscoverDataSourcesRoot(body);
Expand Down Expand Up @@ -584,6 +595,12 @@ private static void addDiscoverXmlMetaDataResponseRow(SOAPElement root, Discover
addChildElementTextNode(row, QN_META_DATA, r.metaData());
}

private static void addDiscoverCsdlMetaDataResponseRow(SOAPElement root, DiscoverCsdlMetaDataResponseRow r)
throws SOAPException {
SOAPElement row = root.addChildElement(Constants.ROWSET.QN_ROW);
addChildElementTextNode(row, QN_META_DATA, r.metaData());
}

private static void addDbSchemaColumnsResponseRow(SOAPElement root, DbSchemaColumnsResponseRow r)
throws SOAPException {
SOAPElement row = root.addChildElement(Constants.ROWSET.QN_ROW);
Expand Down Expand Up @@ -2306,6 +2323,20 @@ private static SOAPElement addDiscoverXmlMetaDataRoot(SOAPBody body) throws SOAP
return seRoot;
}

private static SOAPElement addDiscoverCsdlMetaDataRoot(SOAPBody body) throws SOAPException {
SOAPElement seRoot = prepareRootElement(body);
SOAPElement schema = fillRoot(seRoot);

SOAPElement el1complexType = addChildElement(schema, Constants.XSD.QN_COMPLEX_TYPE);
el1complexType.setAttribute("name", "xmlDocument");
SOAPElement sequence = addChildElement(el1complexType, Constants.XSD.QN_SEQUENCE);
addChildElement(sequence, Constants.XSD.QN_ANY);

SOAPElement s = prepareSequenceElement(schema);
addElement(s, "METADATA", "xmlDocument", null);
return seRoot;
}

private static SOAPElement addDiscoverDataSourcesRoot(SOAPBody body) throws SOAPException {
SOAPElement seRoot = prepareRootElement(body);
SOAPElement schema = fillRoot(seRoot);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
import org.eclipse.daanse.xmla.api.discover.discover.properties.DiscoverPropertiesResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.schemarowsets.DiscoverSchemaRowsetsRequest;
import org.eclipse.daanse.xmla.api.discover.discover.schemarowsets.DiscoverSchemaRowsetsResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequest;
import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.discover.xmlmetadata.DiscoverXmlMetaDataRequest;
import org.eclipse.daanse.xmla.api.discover.discover.xmlmetadata.DiscoverXmlMetaDataResponseRow;
import org.eclipse.daanse.xmla.api.discover.mdschema.actions.MdSchemaActionsRequest;
Expand Down Expand Up @@ -107,6 +109,8 @@
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tables.DbSchemaTablesRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tablesinfo.DbSchemaTablesInfoRequestR;
import org.eclipse.daanse.xmla.model.record.discover.dbschema.tablesinfo.DbSchemaTablesInfoRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequestR;
import org.eclipse.daanse.xmla.model.record.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.datasources.DiscoverDataSourcesRequestR;
import org.eclipse.daanse.xmla.model.record.discover.discover.datasources.DiscoverDataSourcesRestrictionsR;
import org.eclipse.daanse.xmla.model.record.discover.discover.enumerators.DiscoverEnumeratorsRequestR;
Expand Down Expand Up @@ -191,6 +195,7 @@ public XmlaApiAdapter(XmlaService xmlaService) {
private static final String DBSCHEMA_CATALOGS = "DBSCHEMA_CATALOGS";
private static final String DISCOVER_DATASOURCES = "DISCOVER_DATASOURCES";
private static final String DISCOVER_XML_METADATA = "DISCOVER_XML_METADATA";
private static final String DISCOVER_CSDL_METADATA = "DISCOVER_CSDL_METADATA";
private static final String DBSCHEMA_COLUMNS = "DBSCHEMA_COLUMNS";
private static final String DBSCHEMA_PROVIDER_TYPES = "DBSCHEMA_PROVIDER_TYPES";
private static final String DBSCHEMA_SCHEMATA = "DBSCHEMA_SCHEMATA";
Expand Down Expand Up @@ -432,6 +437,8 @@ private void discover(String requestType, RequestMetaData metaData,
handleDiscoverDataSources(metaData, properties, restrictionElement, responseBody);
case DISCOVER_XML_METADATA ->
handleDiscoverXmlMetaData(metaData, properties, restrictionElement, responseBody);
case DISCOVER_CSDL_METADATA ->
handleDiscoverCsdlMetaData(metaData, properties, restrictionElement, responseBody);
case DBSCHEMA_COLUMNS ->
handleDbSchemaColumns(metaData, properties, restrictionElement, responseBody);
case DBSCHEMA_PROVIDER_TYPES ->
Expand Down Expand Up @@ -616,6 +623,17 @@ private void handleDiscoverXmlMetaData(RequestMetaData metaData,

}

private void handleDiscoverCsdlMetaData(RequestMetaData metaData,
PropertiesR propertiesR, SOAPElement restrictionElement, SOAPBody body) throws SOAPException {
DiscoverCsdlMetaDataRestrictionsR restrictionsR = Convert
.discoverDiscoverCsdlMetaDataRestrictions(restrictionElement);
DiscoverCsdlMetaDataRequest request = new DiscoverCsdlMetaDataRequestR(propertiesR, restrictionsR);
List<DiscoverCsdlMetaDataResponseRow> rows = xmlaService.discover().csdlMetaData(request, metaData);

SoapUtil.toDiscoverCsdlMetaData(rows, body);

}

private void handleDiscoverDataSources(RequestMetaData metaData,
PropertiesR propertiesR, SOAPElement restrictionElement, SOAPBody body) throws SOAPException {
DiscoverDataSourcesRestrictionsR restrictionsR = Convert
Expand Down
Loading