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 @@ -30,7 +30,7 @@
public class Emptyresult implements Serializable {

private static final long serialVersionUID = 1L;
@XmlElement(name = "Exception")
@XmlElement(name = "Exception", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected Exception exception;
@XmlElement(name = "Messages", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected Messages messages;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
@XmlSeeAlso({ ErrorType.class, WarningType.class })
public abstract class AbstractLogType {

@XmlElement(name = "Location")
@XmlElement(name = "Location", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected MessageLocation location;
@XmlAttribute(name = "Description")
@XmlAttribute(name = "Description", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected String description;
@XmlAttribute(name = "Source")
@XmlAttribute(name = "Source", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected String source;
@XmlAttribute(name = "HelpFile")
@XmlAttribute(name = "HelpFile", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected String helpFile;

public MessageLocation getLocation() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
public class ErrorType extends AbstractLogType implements Serializable {

private static final long serialVersionUID = 1L;
@XmlElement(name = "Callstack")
@XmlElement(name = "Callstack", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected String callstack;
@XmlAttribute(name = "ErrorCode")
@XmlAttribute(name = "ErrorCode", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected Long errorCode;

public String getCallstack() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,19 @@
public class MessageLocation implements Serializable {

private static final long serialVersionUID = 1L;
@XmlElement(name = "Start", required = true)
@XmlElement(name = "Start", required = true, namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected MessageLocation.Start start;
@XmlElement(name = "End", required = true)
@XmlElement(name = "End", required = true, namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected MessageLocation.End end;
@XmlElement(name = "LineOffset")
@XmlElement(name = "LineOffset", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected Integer lineOffset;
@XmlElement(name = "TextLength")
@XmlElement(name = "TextLength", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected Integer textLength;
@XmlElement(name = "SourceObject")
@XmlElement(name = "SourceObject", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected WarningLocationObject sourceObject;
@XmlElement(name = "DependsOnObject")
@XmlElement(name = "DependsOnObject", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected WarningLocationObject dependsOnObject;
@XmlElement(name = "RowNumber")
@XmlElement(name = "RowNumber", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected Integer rowNumber;

public MessageLocation.Start getStart() {
Expand Down Expand Up @@ -106,9 +106,9 @@ public void setRowNumber(Integer value) {
})
public abstract static class AbstractEndStart {

@XmlElement(name = "Line")
@XmlElement(name = "Line", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected int line;
@XmlElement(name = "Column")
@XmlElement(name = "Column", namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset")
protected int column;

public int getLine() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
public class Messages implements Serializable {

private static final long serialVersionUID = 1L;
@XmlElements({ @XmlElement(name = "Warning", type = WarningType.class),
@XmlElement(name = "Error", type = ErrorType.class) })
@XmlElements({ @XmlElement(name = "Warning", type = WarningType.class, namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset"),
@XmlElement(name = "Error", type = ErrorType.class, namespace = "urn:schemas-microsoft-com:xml-analysis:mddataset") })
private List<Serializable> warningOrError;

public List<Serializable> getWarningOrError() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ static class MSXMLA {

public static final QName QN_COMMAND = new QName(NS_URN, "Command", PREFIX);
public static final QName QN_DISCOVER = new QName(NS_URN, "Discover", PREFIX);
public static final QName QN_DISCOVER_RESPONSE = new QName(NS_URN, "DiscoverResponse", PREFIX);
public static final QName QN_DISCOVER_RESPONSE = new QName(NS_URN, "DiscoverResponse", "");
public static final QName QN_EXECUTE = new QName(NS_URN, "Execute", PREFIX);
public static final QName QN_EXECUTE_RESPONSE = new QName(NS_URN, "ExecuteResponse", PREFIX);
public static final QName QN_EXECUTE_RESPONSE = new QName(NS_URN, "ExecuteResponse", "");
public static final QName QN_PROPERTIES = new QName(NS_URN, "Properties", PREFIX);
public static final QName QN_PROPERTY_LIST = new QName(NS_URN, "PropertyList", PREFIX);
public static final QName QN_RESTRICTIONS = new QName(NS_URN, "Restrictions", PREFIX);
public static final QName QN_RESTRICTION_LIST = new QName(NS_URN, "RestrictionList", PREFIX);
public static final QName QN_RETURN = new QName(NS_URN, "return", PREFIX);
public static final QName QN_RETURN = new QName(NS_URN, "return", "");
public static final QName QN_REQUEST_TYPE = new QName(NS_URN, "RequestType", PREFIX);

}
Expand All @@ -52,9 +52,9 @@ static class EMPTY {
/////
static class ROWSET {

public static final String PREFIX = "rowset";
public static final String PREFIX = "";
public static final String NS_URN = "urn:schemas-microsoft-com:xml-analysis:rowset";
public static final QName QN_ROOT = new QName(ROWSET.NS_URN, "root", ROWSET.PREFIX);
public static final QName QN_ROOT = new QName(ROWSET.NS_URN, "root", "");
public static final QName QN_ROW = new QName(ROWSET.NS_URN, "row", ROWSET.PREFIX);

static class ROW_PROPERTY {
Expand Down Expand Up @@ -823,7 +823,7 @@ static class ROW_PROPERTY {
/////

static class MDDATASET {
public static final String PREFIX = "mddataset";
public static final String PREFIX = "";
public static final String NS_URN = "urn:schemas-microsoft-com:xml-analysis:mddataset";
public static final QName QN_CELL_INFO = new QName(MDDATASET.NS_URN, "CellInfo", MDDATASET.PREFIX);
public static final QName QN_OLAP_INFO = new QName(MDDATASET.NS_URN, "OlapInfo", MDDATASET.PREFIX);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@
import org.eclipse.daanse.xmla.api.msxmla.NormTuplesType;
import org.eclipse.daanse.xmla.api.xmla.Restriction;
import org.eclipse.daanse.xmla.api.xmla_empty.Emptyresult;
import org.eclipse.daanse.xmla.server.adapter.soapmessage.Constants.XSD;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -371,7 +372,7 @@
public class SoapUtil {

private static final String UUID_VALUE = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}";
private static final Logger LOGGER = LoggerFactory.getLogger(SoapUtil.class);
private static final Logger LOGGER = LoggerFactory.getLogger(SoapUtil.class);

private SoapUtil() {
// constructor
Expand Down Expand Up @@ -1794,9 +1795,12 @@ private static SOAPElement addDiscoverRowSetsRoot(SOAPElement body) throws SOAPE
private static SOAPElement addDiscoverPropertiesRoot(SOAPElement body) throws SOAPException {
SOAPElement seRoot = prepareRootElement(body);
seRoot.setAttribute("xmlns:xsi", Constants.XSI.NS_URN);
seRoot.setAttribute("xmlns:xsd", Constants.XSD.NS_URN);
seRoot.setAttribute("xmlns:msxmla", "http://schemas.microsoft.com/analysisservices/2003/xmla");
seRoot.setAttribute("xmlns", "urn:schemas-microsoft-com:xml-analysis:rowset");
seRoot.setAttribute("xmlns:EX", "urn:schemas-microsoft-com:xml-analysis:exception");
SOAPElement schema = addChildElement(seRoot, Constants.XSD.QN_SCHEMA);
schema.setAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
schema.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
schema.setAttribute("xmlns", "urn:schemas-microsoft-com:xml-analysis:rowset");
schema.setAttribute("targetNamespace", Constants.ROWSET.NS_URN);
schema.setAttribute("xmlns:sql", Constants.SQL.NS_URN);
schema.setAttribute("elementFormDefault", "qualified");
Expand All @@ -1817,13 +1821,13 @@ private static SOAPElement addDiscoverPropertiesRoot(SOAPElement body) throws SO
SOAPElement p = addChildElement(r, Constants.XSD.QN_PATTERN);
p.setAttribute("value", UUID_VALUE);

SOAPElement ct1 = addChildElement(schema, Constants.XSD.QN_COMPLEX_TYPE);
ct1.setAttribute("name", "xmlDocument");
SOAPElement s1 = addChildElement(ct1, Constants.XSD.QN_SEQUENCE);
SOAPElement a = addChildElement(s1, Constants.XSD.QN_ANY);
//0SOAPElement ct1 = addChildElement(schema, Constants.XSD.QN_COMPLEX_TYPE);
//ct1.setAttribute("name", "xmlDocument");
//SOAPElement s1 = addChildElement(ct1, Constants.XSD.QN_SEQUENCE);
//SOAPElement a = addChildElement(s1, Constants.XSD.QN_ANY);

SOAPElement ct2 = addChildElement(schema, Constants.XSD.QN_COMPLEX_TYPE);
ct1.setAttribute("name", "row");
ct2.setAttribute("name", "row");
SOAPElement s2 = addChildElement(ct2, Constants.XSD.QN_SEQUENCE);
SOAPElement s2e1 = addChildElement(s2, Constants.XSD.QN_ELEMENT);
s2e1.setAttribute("sql:field", "PropertyName");
Expand All @@ -1834,13 +1838,13 @@ private static SOAPElement addDiscoverPropertiesRoot(SOAPElement body) throws SO
s2e2.setAttribute("sql:field", "PropertyDescription");
s2e2.setAttribute("name", "PropertyDescription");
s2e2.setAttribute("type", "xsd:string");
s2e2.setAttribute("minOccurs", "0");
//s2e2.setAttribute("minOccurs", "0");

SOAPElement s2e3 = addChildElement(s2, Constants.XSD.QN_ELEMENT);
s2e3.setAttribute("sql:field", "PropertyType");
s2e3.setAttribute("name", "PropertyType");
s2e3.setAttribute("type", "xsd:string");
s2e3.setAttribute("minOccurs", "0");
//s2e3.setAttribute("minOccurs", "0");

SOAPElement s2e4 = addChildElement(s2, Constants.XSD.QN_ELEMENT);
s2e4.setAttribute("sql:field", "PropertyAccessType");
Expand All @@ -1851,13 +1855,13 @@ private static SOAPElement addDiscoverPropertiesRoot(SOAPElement body) throws SO
s2e5.setAttribute("sql:field", "IsRequired");
s2e5.setAttribute("name", "IsRequired");
s2e5.setAttribute("type", "xsd:boolean");
s2e5.setAttribute("minOccurs", "0");
//s2e5.setAttribute("minOccurs", "0");

SOAPElement s2e6 = addChildElement(s2, Constants.XSD.QN_ELEMENT);
s2e6.setAttribute("sql:field", "Value");
s2e6.setAttribute("name", "Value");
s2e6.setAttribute("type", "xsd:string");
s2e6.setAttribute("minOccurs", "0");
//s2e6.setAttribute("minOccurs", "0");

return seRoot;
}
Expand Down Expand Up @@ -2538,12 +2542,13 @@ private static SOAPElement addDiscoverDataSourcesRoot(SOAPBody body) throws SOAP
SOAPElement schema = fillRoot(seRoot);

SOAPElement s = prepareSequenceElement(schema);
addElement(s, "LiteralName", "xsd:string", null);
addElement(s, "LiteralValue", "xsd:string", "0");
addElement(s, "LiteralInvalidChars", "xsd:string", "0");
addElement(s, "LiteralInvalidStartingChars", "xsd:string", "0");
addElement(s, "LiteralMaxLength", "xsd:int", "0");
addElement(s, "LiteralNameEnumValue", "xsd:int", "0");
addElement(s, "DataSourceName", "xsd:string", null);
addElement(s, "DataSourceDescription", "xsd:string", "0");
addElement(s, "URL", "xsd:string", "0");
addElement(s, "DataSourceInfo", "xsd:string", "0");
addElement(s, "ProviderName", "xsd:string", "0");
addElement(s, "ProviderType", "xsd:string", "0");
addElement(s, "AuthenticationMode", "xsd:string", null);
return seRoot;
}

Expand Down Expand Up @@ -2597,7 +2602,7 @@ private static void addElement(SOAPElement s, String name, String type, String m

private static SOAPElement fillRoot(SOAPElement root) {
root.setAttribute("xmlns:xsi", Constants.XSI.NS_URN);
root.setAttribute("xmlns:xsd", Constants.XSD.NS_URN);
//root.setAttribute("xmlns:xsd", Constants.XSD.NS_URN);
root.setAttribute("xmlns:EX", Constants.EX.NS_URN);
SOAPElement schema = addChildElement(root, Constants.XSD.QN_SCHEMA);
schema.setAttribute("xmlns:xsd", Constants.XSD.NS_URN);
Expand Down Expand Up @@ -2685,7 +2690,7 @@ private static void addRowsetSchema(SOAPElement root, RowSet rowSet) {
simpleType.setAttribute("name", "uuid");
SOAPElement restriction = addChildElement(simpleType, Constants.XSD.QN_RESTRICTION);
restriction.setAttribute("base", "xsd:string");
SOAPElement pattern = addChildElement(restriction, Constants.XSD.QN_RESTRICTION);
SOAPElement pattern = addChildElement(restriction, Constants.XSD.QN_PATTERN);
pattern.setAttribute("value", UUID_VALUE);

SOAPElement ct = addChildElement(schema, Constants.XSD.QN_COMPLEX_TYPE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,16 +210,17 @@ public XmlaApiAdapter(XmlaService xmlaService) {
public SOAPMessage handleRequest(SOAPMessage messageRequest, Map<String, Object> headers) {
try {
SOAPMessage messageResponse = MessageFactory.newInstance().createMessage();
messageResponse.setProperty(SOAPMessage.WRITE_XML_DECLARATION, "true");
SOAPPart soapPartResponse = messageResponse.getSOAPPart();
SOAPEnvelope envelopeResponse = soapPartResponse.getEnvelope();

envelopeResponse.addNamespaceDeclaration(Constants.MSXMLA.PREFIX, Constants.MSXMLA.NS_URN);
envelopeResponse.addNamespaceDeclaration(Constants.ROWSET.PREFIX, Constants.ROWSET.NS_URN);
envelopeResponse.addNamespaceDeclaration(Constants.MDDATASET.PREFIX, Constants.MDDATASET.NS_URN);
envelopeResponse.addNamespaceDeclaration(Constants.ENGINE.PREFIX, Constants.ENGINE.NS_URN);
envelopeResponse.addNamespaceDeclaration(Constants.ENGINE200.PREFIX, Constants.ENGINE200.NS_URN);
envelopeResponse.addNamespaceDeclaration(Constants.EMPTY.PREFIX, Constants.EMPTY.NS_URN);
envelopeResponse.addNamespaceDeclaration(Constants.XSI.PREFIX, Constants.XSI.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.MSXMLA.PREFIX, Constants.MSXMLA.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.ROWSET.PREFIX, Constants.ROWSET.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.MDDATASET.PREFIX, Constants.MDDATASET.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.ENGINE.PREFIX, Constants.ENGINE.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.ENGINE200.PREFIX, Constants.ENGINE200.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.EMPTY.PREFIX, Constants.EMPTY.NS_URN);
//envelopeResponse.addNamespaceDeclaration(Constants.XSI.PREFIX, Constants.XSI.NS_URN);

Object role = headers.get("ROLE");
Object user = headers.get("USER");
Expand All @@ -229,6 +230,9 @@ public SOAPMessage handleRequest(SOAPMessage messageRequest, Map<String, Object>
SOAPHeader header = envelopeResponse.getHeader();
SOAPHeaderElement sessionElement = header.addHeaderElement(QN_SESSION);
sessionElement.addAttribute(new QName("SessionId"), oSession.get().sessionId());
} else {
SOAPHeader header = envelopeResponse.getHeader();
header.setValue("\n");
}
RequestMetaData metaData = RequestMetaDataUtils.getRequestMetaData(headers, oSession);
SOAPBody bodyResponse = envelopeResponse.getBody();
Expand Down
Loading
Loading