Commit c1a17f27 authored by R.W.Majeed's avatar R.W.Majeed
Browse files

JAXB implementation of query

parent d35accb8
Loading
Loading
Loading
Loading
+82 −1
Original line number Diff line number Diff line
Common API for the AKTIN data warehouse
---------------------------------------

Generate XSD files:
```
"$JAVA_HOME"/bin/schemagen -d target -cp target/classes org.aktin.exchange.Query
```

Query exchange
--------------
```
<request>
	<id>unique request id</id>
	<date-reference>2016-04-11</date-reference>
	<published>
	<query>
		<id>unique query id</id>
		<description>
		
		</description>
		<principal>
			<name></name>
			<organisation></organisation>
			<location></location>
			<email></email>
			<phone></phone>
			<url></url>
		</principal>

		<schedule type="single|repeating|benchmark">
			<duration>-P1Y</duration>
			<interval>P1Y</interval>
		</schedule>

		<concepts>
			<concept id="CEDIS30:XXX" type="raw"/>
			<concept id="XXX1" type="aggregate">
				<count group-by="fact.value">
			</concept>
			<concept id="XXX1" type="aggregate">
				<!-- by arrival time -->
				<count group-by="substr(8,10,fact.start)">
				<max/>
				<min/>
			</concept>
		</concepts>
		<definition xsi:type="sql">
			
		</definition>
	</query>
	<signature from="broker" algorithm="SHA256withRSA">...</signature>
	<signature from="me" algorithm="SHA256withRSA">...</signature>
	<broker>
		<last-modified>max timestamp der nachfolgenden</last-modified>
		<!-- timestamp the query was published by the broker -->
		<published>2015-12-01T18:30:14</published>
		<!-- later, the query can be either canceled or closed -->
		<closed>2015-12-02T18:30:00</closed>
		<canceled>2015-12-02T18:30:14</canceled>
	</broker>
</query>

	<request-status ref="123">
		<last-modified>max timestampt der nachfolgenden</last-modified>
		<received>XXXtimestamp</received>
		<confirmation method="single|double|automatic">xxx</confirmation>
		<!-- confirmation or rejection -->
		<rejected></rejected>
		<comment></comment>
		<last-execution>
			<completed>XXXtimestamp</completed>
			<failed></failed>
			
		</last-execution>
		<last-contact>
		<result-submitted>XXX timestamp</result-submitted>
	</request-status>


<query-result id-ref="">
</query-result>
```

TODO.txt

0 → 100644
+12 −0
Original line number Diff line number Diff line
Error in maven schemagen:

Post error in maven schemagen:

Should not convert spaces to %20:

schemagen -encoding UTF-8 -d D:\Users\marap1\Projects\2014-09 AKTIN\repo-v2\aktin\dwh-api\target\schemagen-work\compile_scope -classpath /D:/Users/marap1/Projects/2014-09%20AKTIN/repo-v2/aktin/dwh-api/src/main/java/ -episode D:\Users\marap1\Projects\2014-09 AKTIN\repo-v2\aktin\dwh-api\target\generated-resources\schemagen\META-INF\sun-jaxb.episode src\main\java\org\aktin\exchange\AbstractConcept.java src\main\java\org\aktin\exchange\Principal.java src\main\java\org\aktin\exchange\Query.java src\main\java\org\aktin\exchange\RawConcept.java src\main\java\org\aktin\exchange\XMLConstants.java src\main\java\org\aktin\exchange\package-info.java



https://github.com/mojohaus/jaxb2-maven-plugin/issues/
+24 −3
Original line number Diff line number Diff line
@@ -12,15 +12,36 @@
		<version>0.1-SNAPSHOT</version>
	</parent>
	<build>
		<!--
		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>target/generated-resources</directory>
			</resource>
		</resources>
		-->
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jaxb2-maven-plugin</artifactId>
				<version>2.2</version>
				<executions>
					<execution>
						<id>schemagen</id>
						<goals>
							<goal>schemagen</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<locale>en</locale>
					<sources>
						<source>src/main/java/org/aktin/exchange</source>
					</sources>
				</configuration>
			</plugin>
		</plugins>
		
	</build> 
	<dependencies>
		<!-- unit tests -->
+14 −0
Original line number Diff line number Diff line
package org.aktin.exchange;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSeeAlso;

@XmlSeeAlso({RawConcept.class})
public abstract class AbstractConcept {

	/**
	 * Unique identifier of the concept.
	 */
	@XmlAttribute
	public String id;
}
+37 −0
Original line number Diff line number Diff line
package org.aktin.exchange;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;

/**
 * Principal of a query.
 * @author R.W.Majeed
 *
 */
@XmlAccessorType(XmlAccessType.FIELD)
public class Principal {

	/**
	 * Principal's full name
	 */
	@XmlElement(required=true)
	public String name;
	/**
	 * Principal's organisation
	 */
	@XmlElement(required=true)
	public String organisation;
	@XmlElement(required=true)
	public String email;
	@XmlElement(required=true)
	public String phone;
	/**
	 * Postal address
	 */
	public String address;
	/**
	 * Web page URL
	 */
	public String url;
}
Loading