diff --git a/api/src/main/java/org/eclipse/daanse/xmla/api/discover/DiscoverService.java b/api/src/main/java/org/eclipse/daanse/xmla/api/discover/DiscoverService.java index 1b0ae0b..d7ebf52 100644 --- a/api/src/main/java/org/eclipse/daanse/xmla/api/discover/DiscoverService.java +++ b/api/src/main/java/org/eclipse/daanse/xmla/api/discover/DiscoverService.java @@ -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; @@ -308,4 +310,13 @@ List mdSchemaMeasureGroupDimensions( * @return the list */ List xmlMetaData(DiscoverXmlMetaDataRequest request, RequestMetaData metaData); + + /** + * returns a CsdlMetaData. + * + * @param request the request + * @return the list + */ + List csdlMetaData(DiscoverCsdlMetaDataRequest request, RequestMetaData metaData); + } diff --git a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Constants.java b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Constants.java index 9a525b7..204c6ec 100644 --- a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Constants.java +++ b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Constants.java @@ -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"; } diff --git a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Convertor.java b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Convertor.java index 00b66ac..e2d3a20 100644 --- a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Convertor.java +++ b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/Convertor.java @@ -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; @@ -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; @@ -678,6 +680,13 @@ static List convertToDiscoverXmlMetaDataResponse .toList(); } + static List convertToDiscoverCsdlMetaDataResponseRow(SOAPBody b) { + List> l = getMapValuesList(b); + return l.stream() + .map(m -> (DiscoverCsdlMetaDataResponseRow) new DiscoverCsdlMetaDataResponseRowR(m.get("MetaData"))) + .toList(); + } + static List convertToDiscoverDataSourcesResponseRow(SOAPBody b) { List> l = getMapValuesList(b); return l.stream() diff --git a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverConsumers.java b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverConsumers.java index f75c7bd..25a241c 100644 --- a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverConsumers.java +++ b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverConsumers.java @@ -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; @@ -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; @@ -624,6 +628,28 @@ static Consumer createDiscoverXmlMetaDataRequestConsumer(DiscoverXm }; } + static Consumer 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 createDiscoverSchemaRowsetsRequestConsumer(DiscoverSchemaRowsetsRequest requestApi) { return message -> { try { diff --git a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverServiceImpl.java b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverServiceImpl.java index 3cce168..d6068ca 100644 --- a/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverServiceImpl.java +++ b/client/soapmessage/src/main/java/org/eclipse/daanse/xmla/client/soapmessage/DiscoverServiceImpl.java @@ -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; @@ -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; @@ -310,6 +313,19 @@ public List xmlMetaData(DiscoverXmlMetaDataReque return List.of(); } + @Override + public List csdlMetaData(DiscoverCsdlMetaDataRequest requestApi, + RequestMetaData metaData) { + try { + Consumer 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 dbSchemaColumns(DbSchemaColumnsRequest requestApi, RequestMetaData metaData) { try { diff --git a/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/discover/discover/csdlmetadata/DiscoverCsdlMetaDataResponseRowR.java b/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/discover/discover/csdlmetadata/DiscoverCsdlMetaDataResponseRowR.java index f744e00..22551ea 100644 --- a/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/discover/discover/csdlmetadata/DiscoverCsdlMetaDataResponseRowR.java +++ b/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/discover/discover/csdlmetadata/DiscoverCsdlMetaDataResponseRowR.java @@ -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 { } diff --git a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Constants.java b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Constants.java index a696c55..efddd63 100644 --- a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Constants.java +++ b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Constants.java @@ -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"; } diff --git a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Convert.java b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Convert.java index e0fdff2..faf1a43 100644 --- a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Convert.java +++ b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/Convert.java @@ -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; @@ -432,6 +433,15 @@ public static DiscoverXmlMetaDataRestrictionsR discoverDiscoverXmlMetaDataRestri ); } + public static DiscoverCsdlMetaDataRestrictionsR discoverDiscoverCsdlMetaDataRestrictions(SOAPElement restriction) { + Map 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 m = getRestrictionMap(restriction); return new DiscoverDataSourcesRestrictionsR( diff --git a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/SoapUtil.java b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/SoapUtil.java index 6a31a71..8611f5b 100644 --- a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/SoapUtil.java +++ b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/SoapUtil.java @@ -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; @@ -326,6 +327,16 @@ public static void toDiscoverXmlMetaData(List ro } + public static void toDiscoverCsdlMetaData(List rows, SOAPBody body) + throws SOAPException { + SOAPElement root = addDiscoverCsdlMetaDataRoot(body); + + for (DiscoverCsdlMetaDataResponseRow discoverCsdlMetaDataResponseRow : rows) { + addDiscoverCsdlMetaDataResponseRow(root, discoverCsdlMetaDataResponseRow); + } + + } + public static void toDiscoverDataSources(List rows, SOAPBody body) throws SOAPException { SOAPElement root = addDiscoverDataSourcesRoot(body); @@ -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); @@ -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); diff --git a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java index 7c1e851..a5305b0 100644 --- a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java +++ b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java @@ -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; @@ -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; @@ -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"; @@ -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 -> @@ -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 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