I contacted the authors of the code and they gave me some pointers. Turns out one of the pom.xml files was pointing to a wrong version of the broker upon compilation (3.3.3). The current version provided in the same source code is 3.4.2 still there are no further instructions on how to run the generated files.
Nevertheless, I managed to copy the code from the FIWARE Cloud image and run it on a local machine. I figured out I had to have another GE, the IoT Configuration Manager working parallel to the IoT Broker in order to manage the entities from which we will get data. Now, it seems that the XMLValidator code is giving me some trouble. I registered an entity via HTTP POST osgi9 directly with the configuration manager. Then I try to access it by communicating via osgi10 with the IoT broker. The IoT Broker communicates with the IoT DIscovery service and gets a response, but then the XMLValidator says the XML is wrong even tough it clearly is not. See below:
This is the IoT Broker asking for the availability of a resource to the IoT ConfMan:
2014-11-27 10:31:13,682 | INFO | (HttpConnectionClient.java:initializeConnection:170) | Output Stream: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><discoverContextAvailabilityRequest><entityIdList><entityId isPattern="false"><id>Dorm</id></entityId></entityIdList><attributeList/><restriction><scope><operationScope><scopeType>IncludeAssociations</scopeType><scopeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">SOURCES</scopeValue></operationScope></scope></restriction></discoverContextAvailabilityRequest>
Then IoT Broker gets:
2014-11-27 10:31:13,947 | INFO | (HttpConnectionClient.java:initializeConnection:188) | <?xml version="1.0" encoding="UTF-8"?><discoverContextAvailabilityResponse>
<contextRegistrationResponseList>
<contextRegistrationResponse>
<contextRegistration>
<entityIdList>
<entityId type="Room" isPattern="false">
<id>Dorm</id>
</entityId>
</entityIdList>
<contextRegistrationAttributeList>
<contextRegistrationAttribute>
<name>temperature</name>
<type>degree</type>
<isDomain>false</isDomain>
<metadata>
<contextMetadata>
<name>ID</name>
<type>string</type>
<value/>
</contextMetadata>
<contextMetadata>
<name/>
<type/>
<value/>
</contextMetadata>
</metadata>
</contextRegistrationAttribute>
</contextRegistrationAttributeList>
<providingApplication>http://192.168.100.1:70
</providingApplication>
</contextRegistration>
</contextRegistrationResponse>
</contextRegistrationResponseList>
<errorCode>
<code>200</code>
<reasonPhrase>OK</reasonPhrase>
<details xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Result</details>
</errorCode>
</discoverContextAvailabilityResponse>
2014-11-27 10:31:13,949 | INFO | (HttpConnectionClient.java:initializeConnection:218) | Connection Closed!
2014-11-27 10:31:13,987 | INFO | (XmlValidator.java:error:128) |
ERROR
org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; cvc-complex-type.2.4.b: The content of element 'contextRegistration' is not complete. One of '
{registrationMetaData, providingApplication}
' is expected.
It is clearly seen by the received xml that at least the providingApplication is received but XMLValidator is not seeing this.
I contacted the authors of the code and they gave me some pointers. Turns out one of the pom.xml files was pointing to a wrong version of the broker upon compilation (3.3.3). The current version provided in the same source code is 3.4.2 still there are no further instructions on how to run the generated files.
Nevertheless, I managed to copy the code from the FIWARE Cloud image and run it on a local machine. I figured out I had to have another GE, the IoT Configuration Manager working parallel to the IoT Broker in order to manage the entities from which we will get data. Now, it seems that the XMLValidator code is giving me some trouble. I registered an entity via HTTP POST osgi9 directly with the configuration manager. Then I try to access it by communicating via osgi10 with the IoT broker. The IoT Broker communicates with the IoT DIscovery service and gets a response, but then the XMLValidator says the XML is wrong even tough it clearly is not. See below:
This is the IoT Broker asking for the availability of a resource to the IoT ConfMan:
2014-11-27 10:31:13,682 | INFO | (HttpConnectionClient.java:initializeConnection:170) | Output Stream: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><discoverContextAvailabilityRequest><entityIdList><entityId isPattern="false"><id>Dorm</id></entityId></entityIdList><attributeList/><restriction><scope><operationScope><scopeType>IncludeAssociations</scopeType><scopeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">SOURCES</scopeValue></operationScope></scope></restriction></discoverContextAvailabilityRequest>
Then IoT Broker gets:
2014-11-27 10:31:13,947 | INFO | (HttpConnectionClient.java:initializeConnection:188) | <?xml version="1.0" encoding="UTF-8"?><discoverContextAvailabilityResponse>
<contextRegistrationResponseList>
<contextRegistrationResponse>
<contextRegistration>
<entityIdList>
<entityId type="Room" isPattern="false">
<id>Dorm</id>
</entityId>
</entityIdList>
<contextRegistrationAttributeList>
<contextRegistrationAttribute>
<name>temperature</name>
<type>degree</type>
<isDomain>false</isDomain>
<metadata>
<contextMetadata>
<name>ID</name>
<type>string</type>
<value/>
</contextMetadata>
<contextMetadata>
<name/>
<type/>
<value/>
</contextMetadata>
</metadata>
</contextRegistrationAttribute>
</contextRegistrationAttributeList>
<providingApplication>http://192.168.100.1:70
</providingApplication>
</contextRegistration>
</contextRegistrationResponse>
</contextRegistrationResponseList>
<errorCode>
<code>200</code>
<reasonPhrase>OK</reasonPhrase>
<details xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Result</details>
</errorCode>
</discoverContextAvailabilityResponse>
2014-11-27 10:31:13,949 | INFO | (HttpConnectionClient.java:initializeConnection:218) | Connection Closed!
{registrationMetaData, providingApplication}2014-11-27 10:31:13,987 | INFO | (XmlValidator.java:error:128) |
ERROR
org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; cvc-complex-type.2.4.b: The content of element 'contextRegistration' is not complete. One of '
' is expected.
It is clearly seen by the received xml that at least the providingApplication is received but XMLValidator is not seeing this.