Commit 7c3d0000 authored by 0Tyler's avatar 0Tyler

Quorum Contract

parent f2953c88
...@@ -7,14 +7,20 @@ ...@@ -7,14 +7,20 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment=""> <list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/DeviceContractInfoMessage.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/GatewayContractInfoMessage.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceContractIndex.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/GatewayContractIndex.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceContractService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/GatewayContractService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/build.gradle" afterDir="false" /> <change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/cloud/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/resources/application.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/annotation-processors.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/annotation-processors.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/annotation-processors.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/annotation-processors.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/fileContent.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/fileContent.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/fileContent.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/fileContent/fileContent.lock" afterDir="false" />
...@@ -24,12 +30,11 @@ ...@@ -24,12 +30,11 @@
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/classAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/classAnalysis.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/classAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/classAnalysis.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/jarAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/jarAnalysis.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/jarAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/jarAnalysis.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/javaCompile.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/javaCompile.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/javaCompile/taskHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/4.10.3/taskHistory/taskHistory.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/libs/gateway-0.0.1-SNAPSHOT-boot.jar" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/libs/gateway-0.0.1-SNAPSHOT-boot.jar" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/libs/gateway-0.0.1-SNAPSHOT-boot.jar" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/libs/gateway-0.0.1-SNAPSHOT-boot.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/libs/gateway-0.0.1-SNAPSHOT.jar" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/libs/gateway-0.0.1-SNAPSHOT.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests.html" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests.html" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests.html" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest.html" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest.html" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest.html" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/reports/tests/test/classes/edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/reports/tests/test/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/reports/tests/test/index.html" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/reports/tests/test/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/reports/tests/test/index.html" afterDir="false" />
...@@ -39,6 +44,8 @@ ...@@ -39,6 +44,8 @@
<change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin.idx" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin.idx" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin.idx" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin.idx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/results.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/results.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/results.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/results.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/tmp/bootJar/MANIFEST.MF" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/tmp/bootJar/MANIFEST.MF" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" afterDir="false" />
</list> </list>
<ignored path="$PROJECT_DIR$/out/" /> <ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/build/" /> <ignored path="$PROJECT_DIR$/build/" />
...@@ -123,6 +130,13 @@ ...@@ -123,6 +130,13 @@
<item name="cloud" type="2d1252cf:ModuleNode" /> <item name="cloud" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" /> <item name="Tasks" type="e4a08cd1:TasksNode" />
</path> </path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="iotgateway" type="f1a62948:ProjectNode" />
<item name="cloud" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="application" type="c8890929:TasksNode$1" />
</path>
<path> <path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" /> <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="iotgateway" type="f1a62948:ProjectNode" /> <item name="iotgateway" type="f1a62948:ProjectNode" />
...@@ -157,11 +171,11 @@ ...@@ -157,11 +171,11 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceContractService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4060"> <state relative-caret-position="258">
<caret line="729" column="42" selection-start-line="729" selection-start-column="42" selection-end-line="729" selection-end-column="42" /> <caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
...@@ -170,23 +184,22 @@ ...@@ -170,23 +184,22 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="596">
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" /> <caret line="39" column="13" lean-forward="true" selection-start-line="39" selection-start-column="13" selection-end-line="39" selection-end-column="13" />
<folding> <folding>
<element signature="e#399#400#0" expanded="true" /> <element signature="imports" expanded="true" />
<element signature="e#466#467#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="74">
<caret line="36" column="5" lean-forward="true" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" /> <caret line="32" column="35" selection-start-line="32" selection-start-column="35" selection-end-line="32" selection-end-column="35" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
...@@ -195,67 +208,70 @@ ...@@ -195,67 +208,70 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="378">
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" /> <caret line="36" column="5" lean-forward="true" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="486"> <state relative-caret-position="414">
<caret line="35" column="30" lean-forward="true" selection-start-line="35" selection-start-column="30" selection-end-line="35" selection-end-column="30" /> <caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="596"> <state relative-caret-position="378">
<caret line="129" column="32" selection-start-line="129" selection-start-column="32" selection-end-line="129" selection-end-column="32" /> <caret line="29" column="5" lean-forward="true" selection-start-line="29" selection-start-column="5" selection-end-line="29" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/ClientTransactionManager.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="474"> <state relative-caret-position="90">
<caret line="96" column="75" selection-start-line="96" selection-start-column="75" selection-end-line="96" selection-end-column="75" /> <caret line="11" column="75" selection-start-line="11" selection-start-column="67" selection-end-line="11" selection-end-column="75" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/quorum/4.0.6/57e1fc8a1bc9846cb4c5ca82d070771cd0033389/quorum-4.0.6-sources.jar!/org/web3j/quorum/tx/ClientTransactionManager.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396"> <state relative-caret-position="360">
<caret line="30" column="16" selection-start-line="30" selection-start-column="16" selection-end-line="30" selection-end-column="16" /> <caret line="52" column="31" selection-start-line="52" selection-start-column="20" selection-end-line="52" selection-end-column="31" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java"> <entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="408">
<caret line="20" column="18" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="18" /> <caret line="62" column="38" lean-forward="true" selection-start-line="62" selection-start-column="38" selection-end-line="62" selection-end-column="38" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java"> <entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414"> <state relative-caret-position="558">
<caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" /> <caret line="58" column="37" lean-forward="true" selection-start-line="58" selection-start-column="37" selection-end-line="58" selection-end-column="37" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -272,10 +288,6 @@ ...@@ -272,10 +288,6 @@
</component> </component>
<component name="FindInProjectRecents"> <component name="FindInProjectRecents">
<findStrings> <findStrings>
<find>accept</find>
<find>access</find>
<find>fatJar</find>
<find>privacyChoiceService</find>
<find>InputStream</find> <find>InputStream</find>
<find>204</find> <find>204</find>
<find>FunctionWithException</find> <find>FunctionWithException</find>
...@@ -299,9 +311,13 @@ ...@@ -299,9 +311,13 @@
<find>.udn</find> <find>.udn</find>
<find>document</find> <find>document</find>
<find>Max</find> <find>Max</find>
<find>load</find>
<find>ContractGasProvider</find> <find>ContractGasProvider</find>
<find>knqxzdmu</find> <find>knqxzdmu</find>
<find>load</find>
<find>removeDevice</find>
<find>remoteCall</find>
<find>owner</find>
<find>numDevices</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>cloud</replace> <replace>cloud</replace>
...@@ -323,25 +339,7 @@ ...@@ -323,25 +339,7 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/SensitiveUserService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java" />
<option value="$PROJECT_DIR$/settings.gradle" />
<option value="$PROJECT_DIR$/contract/build.gradle" />
<option value="$PROJECT_DIR$/build.gradle" />
<option value="$PROJECT_DIR$/gateway/settings.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTool.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/ThrowingFunction.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/ThrowingFunction.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.java" /> <option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.java" />
...@@ -360,27 +358,45 @@ ...@@ -360,27 +358,45 @@
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/DocumentController.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/gateway/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" />
<option value="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" /> <option value="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" />
<option value="$PROJECT_DIR$/cloud/build.gradle" /> <option value="$PROJECT_DIR$/cloud/build.gradle" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" />
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" /> <option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/DeviceContract.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/device.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/service/DeviceService.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/service/GatewayService.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/Device.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/pojo/DeviceIndex.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/pojo/GatewayIndex.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/pojo/GatewayContractIndex.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/Gateway.java" />
<option value="$PROJECT_DIR$/cloud/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/DeviceInfoMessage.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/GatewayContractInfoMessage.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/GatewayContractInfoMessage.java" />
<option value="$PROJECT_DIR$/contract/build.gradle" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/service/DeviceContractService.java" />
<option value="$PROJECT_DIR$/gateway/build.gradle" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/GatewayContractService.java" />
<option value="$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceContractService.java" />
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds" extendedState="6"> <component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="953" /> <option name="x" value="-7" />
<option name="width" value="974" /> <option name="width" value="974" />
<option name="height" value="1047" /> <option name="height" value="527" />
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true"> <component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" /> <ConfirmationsSetting value="2" id="Add" />
...@@ -391,6 +407,8 @@ ...@@ -391,6 +407,8 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<expand> <expand>
...@@ -441,7 +459,7 @@ ...@@ -441,7 +459,7 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" /> <item name="controllers" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -451,7 +469,7 @@ ...@@ -451,7 +469,7 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" /> <item name="pojo" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -462,6 +480,7 @@ ...@@ -462,6 +480,7 @@
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" /> <item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -472,7 +491,7 @@ ...@@ -472,7 +491,7 @@
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" /> <item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" type="462c0819:PsiDirectoryNode" /> <item name="device" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -483,7 +502,7 @@ ...@@ -483,7 +502,7 @@
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" /> <item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="device" type="462c0819:PsiDirectoryNode" /> <item name="privacy" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -495,6 +514,7 @@ ...@@ -495,6 +514,7 @@
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" /> <item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" type="462c0819:PsiDirectoryNode" /> <item name="privacy" type="462c0819:PsiDirectoryNode" />
<item name="p3p" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -504,7 +524,7 @@ ...@@ -504,7 +524,7 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" /> <item name="repositories" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -514,7 +534,92 @@ ...@@ -514,7 +534,92 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" /> <item name="services" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -551,6 +656,16 @@ ...@@ -551,6 +656,16 @@
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" /> <item name="gateway" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
...@@ -561,6 +676,36 @@ ...@@ -561,6 +676,36 @@
<item name="gateway" type="462c0819:PsiDirectoryNode" /> <item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" /> <item name="controllers" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="model" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="repositories" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
...@@ -571,6 +716,14 @@ ...@@ -571,6 +716,14 @@
<item name="gateway" type="462c0819:PsiDirectoryNode" /> <item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" /> <item name="services" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
...@@ -599,8 +752,6 @@ ...@@ -599,8 +752,6 @@
<select /> <select />
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" />
<pane id="PackagesPane" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
...@@ -617,7 +768,7 @@ ...@@ -617,7 +768,7 @@
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" /> <property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/cloud" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model" />
<property name="node.js.detected.package.eslint" value="true" /> <property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" /> <property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" /> <property name="node.js.selected.package.eslint" value="(autodetect)" />
...@@ -636,6 +787,7 @@ ...@@ -636,6 +787,7 @@
<recent name="edu.prlab.tyler.iotgateway.cloud" /> <recent name="edu.prlab.tyler.iotgateway.cloud" />
</key> </key>
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="D:\SpringBoot\iotgateway\gateway\src\main\java\edu\prlab\tyler\iotgateway\gateway\model" />
<recent name="D:\SpringBoot\iotgateway\gateway\src\main\java\edu\prlab\tyler\iotgateway\gateway\pojo\privacy" /> <recent name="D:\SpringBoot\iotgateway\gateway\src\main\java\edu\prlab\tyler\iotgateway\gateway\pojo\privacy" />
<recent name="D:\SpringBoot\iotgateway\gateway\src\main\java\edu\prlab\tyler\iotgateway\gateway\pojo" /> <recent name="D:\SpringBoot\iotgateway\gateway\src\main\java\edu\prlab\tyler\iotgateway\gateway\pojo" />
<recent name="D:\SpringBoot\iotgateway\cloud\src\main\java\edu\prlab\tyler\iotgateway\cloud\config\jwt" /> <recent name="D:\SpringBoot\iotgateway\cloud\src\main\java\edu\prlab\tyler\iotgateway\cloud\config\jwt" />
...@@ -660,11 +812,30 @@ ...@@ -660,11 +812,30 @@
</option> </option>
<option name="contentProportion" value="0.18560606" /> <option name="contentProportion" value="0.18560606" />
</component> </component>
<component name="RunManager" selected="Gradle.iotgateway:gateway [build]"> <component name="RunManager" selected="JUnit.ContractTester">
<configuration name="iotgateway:gateway [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true"> <configuration name="iotgateway:cloud [bootRun]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings> <ExternalSystemSettings>
<option name="executionName" /> <option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/gateway" /> <option name="externalProjectPath" value="$PROJECT_DIR$/cloud" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="bootRun" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:cloud [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/cloud" />
<option name="externalSystemIdString" value="GRADLE" /> <option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" /> <option name="scriptParameters" />
<option name="taskDescriptions"> <option name="taskDescriptions">
...@@ -680,10 +851,10 @@ ...@@ -680,10 +851,10 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled> <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="iotgateway:gateway [clean]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true"> <configuration name="iotgateway:cloud [clean]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings> <ExternalSystemSettings>
<option name="executionName" /> <option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/gateway" /> <option name="externalProjectPath" value="$PROJECT_DIR$/cloud" />
<option name="externalSystemIdString" value="GRADLE" /> <option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" /> <option name="scriptParameters" />
<option name="taskDescriptions"> <option name="taskDescriptions">
...@@ -699,20 +870,24 @@ ...@@ -699,20 +870,24 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled> <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="CloudHttpApiTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> <configuration name="iotgateway:gateway [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<module name="iotgateway.cloud.test" /> <ExternalSystemSettings>
<extension name="coverage"> <option name="executionName" />
<pattern> <option name="externalProjectPath" value="$PROJECT_DIR$/gateway" />
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.cloud.*" /> <option name="externalSystemIdString" value="GRADLE" />
<option name="ENABLED" value="true" /> <option name="scriptParameters" />
</pattern> <option name="taskDescriptions">
</extension> <list />
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.cloud" /> </option>
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.cloud.CloudHttpApiTest" /> <option name="taskNames">
<option name="TEST_OBJECT" value="class" /> <list>
<method v="2"> <option value="build" />
<option name="Make" enabled="true" /> </list>
</method> </option>
<option name="vmOptions" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration> </configuration>
<configuration name="ContractTester" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> <configuration name="ContractTester" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.contract.test" /> <module name="iotgateway.contract.test" />
...@@ -729,21 +904,6 @@ ...@@ -729,21 +904,6 @@
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
</method> </method>
</configuration> </configuration>
<configuration name="GatewayHttpApiTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.gateway.test" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.gateway.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.gateway" />
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" />
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="iotgateway" type="Multirun" factoryName="Multirun" separateTabs="true" startOneByOne="true" markFailedProcess="true" hideSuccessProcess="false" delayTime="0"> <configuration name="iotgateway" type="Multirun" factoryName="Multirun" separateTabs="true" startOneByOne="true" markFailedProcess="true" hideSuccessProcess="false" delayTime="0">
<runConfiguration name="CloudApplication" type="Spring Boot" /> <runConfiguration name="CloudApplication" type="Spring Boot" />
<runConfiguration name="GatewayApplication" type="Spring Boot" /> <runConfiguration name="GatewayApplication" type="Spring Boot" />
...@@ -772,23 +932,23 @@ ...@@ -772,23 +932,23 @@
</method> </method>
</configuration> </configuration>
<list> <list>
<item itemvalue="JUnit.CloudHttpApiTest" /> <item itemvalue="Gradle.iotgateway:gateway [build]" />
<item itemvalue="Gradle.iotgateway:cloud [clean]" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [bootRun]" />
<item itemvalue="Multirun.iotgateway" /> <item itemvalue="Multirun.iotgateway" />
<item itemvalue="Spring Boot.GatewayApplication" /> <item itemvalue="Spring Boot.GatewayApplication" />
<item itemvalue="Spring Boot.CloudApplication" /> <item itemvalue="Spring Boot.CloudApplication" />
<item itemvalue="Spring Boot.ContractApplication" /> <item itemvalue="Spring Boot.ContractApplication" />
<item itemvalue="JUnit.ContractTester" /> <item itemvalue="JUnit.ContractTester" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="Gradle.iotgateway:gateway [clean]" />
<item itemvalue="Gradle.iotgateway:gateway [build]" />
</list> </list>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Gradle.iotgateway:gateway [build]" />
<item itemvalue="Gradle.iotgateway:gateway [clean]" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.ContractTester" /> <item itemvalue="JUnit.ContractTester" />
<item itemvalue="Gradle.iotgateway:gateway [build]" />
<item itemvalue="Gradle.iotgateway:cloud [bootRun]" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [clean]" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
...@@ -815,7 +975,10 @@ ...@@ -815,7 +975,10 @@
<workItem from="1559553604473" duration="428000" /> <workItem from="1559553604473" duration="428000" />
<workItem from="1559554179725" duration="860000" /> <workItem from="1559554179725" duration="860000" />
<workItem from="1559630541373" duration="451000" /> <workItem from="1559630541373" duration="451000" />
<workItem from="1559804918566" duration="17781000" /> <workItem from="1559804918566" duration="30618000" />
<workItem from="1560333983122" duration="302000" />
<workItem from="1560343292137" duration="3407000" />
<workItem from="1561103748114" duration="20287000" />
</task> </task>
<task id="LOCAL-00001" summary="git init"> <task id="LOCAL-00001" summary="git init">
<created>1556204675975</created> <created>1556204675975</created>
...@@ -1027,19 +1190,17 @@ ...@@ -1027,19 +1190,17 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1559554194377</updated> <updated>1559554194377</updated>
</task> </task>
<option name="localTasksCounter" value="31" /> <task id="LOCAL-00031" summary="Quorum Contract">
<created>1560235820009</created>
<option name="number" value="00031" />
<option name="presentableId" value="LOCAL-00031" />
<option name="project" value="LOCAL" />
<updated>1560235820009</updated>
</task>
<option name="localTasksCounter" value="32" />
<servers /> <servers />
</component> </component>
<component name="TestHistory"> <component name="TestHistory">
<history-entry file="ContractTester - 2019.05.31 at 17h 56m 34s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.05.31 at 18h 06m 47s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.05.31 at 18h 08m 58s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.05.31 at 18h 11m 42s.xml"> <history-entry file="ContractTester - 2019.05.31 at 18h 11m 42s.xml">
<configuration name="ContractTester" configurationId="JUnit" /> <configuration name="ContractTester" configurationId="JUnit" />
</history-entry> </history-entry>
...@@ -1061,9 +1222,18 @@ ...@@ -1061,9 +1222,18 @@
<history-entry file="GatewayHttpApiTest - 2019.06.10 at 16h 15m 10s.xml"> <history-entry file="GatewayHttpApiTest - 2019.06.10 at 16h 15m 10s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="ContractTester - 2019.06.21 at 16h 22m 39s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.06.21 at 16h 28m 49s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.06.24 at 15h 57m 23s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="347353000" /> <option name="totallyTimeSpent" value="384186000" />
</component> </component>
<component name="TodoView"> <component name="TodoView">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
...@@ -1078,18 +1248,17 @@ ...@@ -1078,18 +1248,17 @@
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18763326" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.20788912" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" /> <window_info id="Designer" order="2" />
<window_info id="UI Designer" order="3" /> <window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" /> <window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Web" order="5" side_tool="true" /> <window_info id="Web" order="5" side_tool="true" />
<window_info anchor="bottom" id="Duplicates" weight="0.32962137" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.42650333" /> <window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.42650333" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.2806236" /> <window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.2806236" />
<window_info anchor="bottom" id="Message" order="2" /> <window_info anchor="bottom" id="Message" order="2" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.3596882" /> <window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.32516703" />
<window_info active="true" anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.056792874" /> <window_info anchor="bottom" id="Run" order="4" sideWeight="0.49840087" weight="0.16258352" />
<window_info anchor="bottom" id="Debug" order="5" weight="0.2962138" /> <window_info anchor="bottom" id="Debug" order="5" weight="0.2962138" />
<window_info anchor="bottom" id="Cvs" order="6" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="6" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="7" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="7" weight="0.4" />
...@@ -1102,6 +1271,7 @@ ...@@ -1102,6 +1271,7 @@
<window_info anchor="bottom" id="Database Changes" order="14" /> <window_info anchor="bottom" id="Database Changes" order="14" />
<window_info anchor="bottom" id="Version Control" order="15" sideWeight="0.49946696" weight="0.24164811" /> <window_info anchor="bottom" id="Version Control" order="15" sideWeight="0.49946696" weight="0.24164811" />
<window_info anchor="bottom" id="Java Enterprise" order="16" weight="0.52895325" /> <window_info anchor="bottom" id="Java Enterprise" order="16" weight="0.52895325" />
<window_info anchor="bottom" id="Duplicates" order="17" weight="0.32962137" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
...@@ -1137,7 +1307,8 @@ ...@@ -1137,7 +1307,8 @@
<MESSAGE value="getPrivacyPolicyReportResponse" /> <MESSAGE value="getPrivacyPolicyReportResponse" />
<MESSAGE value="defaultData" /> <MESSAGE value="defaultData" />
<MESSAGE value="pdf update" /> <MESSAGE value="pdf update" />
<option name="LAST_COMMIT_MESSAGE" value="pdf update" /> <MESSAGE value="Quorum Contract" />
<option name="LAST_COMMIT_MESSAGE" value="Quorum Contract" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
...@@ -1164,336 +1335,348 @@ ...@@ -1164,336 +1335,348 @@
</breakpoint-manager> </breakpoint-manager>
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/DocumentController.java" /> <entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Class.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/ByteArrayResource.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-445"> <state relative-caret-position="303">
<caret line="42" column="13" selection-start-line="42" selection-start-column="13" selection-end-line="42" selection-end-column="13" /> <caret line="1785" column="43" selection-start-line="1785" selection-start-column="22" selection-end-line="1785" selection-end-column="43" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/FileInputStream.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="89"> <state relative-caret-position="270">
<caret line="137" column="8" selection-start-line="137" selection-start-column="8" selection-end-line="137" selection-end-column="8" /> <caret line="17" column="5" lean-forward="true" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java"> <entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="108">
<caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" /> <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/File.java"> <entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/reflect/Method.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-77"> <state relative-caret-position="-139">
<caret line="452" column="25" selection-start-line="452" selection-start-column="18" selection-end-line="452" selection-end-column="25" /> <caret line="457" column="57" lean-forward="true" selection-start-line="457" selection-start-column="57" selection-end-line="457" selection-end-column="57" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/Contract.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="414">
<caret line="6" column="22" selection-start-line="6" selection-start-column="22" selection-end-line="6" selection-end-column="22" /> <caret line="348" column="52" selection-start-line="348" selection-start-column="34" selection-end-line="348" selection-end-column="52" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.java"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/RemoteCall.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288"> <state relative-caret-position="233">
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" /> <caret line="28" column="13" selection-start-line="28" selection-start-column="13" selection-end-line="28" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java"> <entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/List.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="221">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" /> <caret line="543" column="6" selection-start-line="543" selection-start-column="6" selection-end-line="543" selection-end-column="6" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java"> <entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/Optional.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <state relative-caret-position="3582">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" /> <caret line="235" column="42" selection-start-line="235" selection-start-column="34" selection-end-line="235" selection-end-column="42" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/IOException.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270"> <state relative-caret-position="216">
<caret line="38" column="6" selection-start-line="38" selection-start-column="6" selection-end-line="38" selection-end-column="6" /> <caret line="18" column="35" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="35" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java"> <entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="1080">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" /> <caret line="60" selection-start-line="60" selection-end-line="60" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/SocketInputStream.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1530"> <state relative-caret-position="288">
<caret line="115" selection-start-line="115" selection-end-line="115" /> <caret line="23" selection-start-line="23" selection-end-line="23" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270"> <state relative-caret-position="324">
<caret line="21" selection-start-line="21" selection-end-line="21" /> <caret line="26" selection-start-line="26" selection-end-line="26" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/ContractApplication.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="111"> <state relative-caret-position="90">
<caret line="28" column="54" selection-start-line="28" selection-start-column="54" selection-end-line="28" selection-end-column="54" /> <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="111"> <state relative-caret-position="342">
<caret line="61" column="28" selection-start-line="61" selection-start-column="28" selection-end-line="61" selection-end-column="28" /> <caret line="19" column="1" lean-forward="true" selection-start-line="19" selection-start-column="1" selection-end-line="19" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/build.gradle"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="717"> <state relative-caret-position="36">
<caret line="50" column="14" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" /> <caret line="2" column="18" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="144">
<caret line="25" column="1" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" /> <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/resources/application.properties"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234"> <state relative-caret-position="144">
<caret line="13" column="26" selection-start-line="13" selection-start-column="26" selection-end-line="13" selection-end-column="26" /> <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3114"> <state relative-caret-position="342">
<caret line="202" column="31" selection-start-line="202" selection-start-column="31" selection-end-line="202" selection-end-column="31" /> <caret line="31" column="32" selection-start-line="31" selection-start-column="32" selection-end-line="31" selection-end-column="32" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/Resource.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522"> <state relative-caret-position="612">
<caret line="51" column="17" selection-start-line="51" selection-start-column="17" selection-end-line="51" selection-end-column="17" /> <caret line="44" selection-start-line="44" selection-end-line="44" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/InputStreamSource.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="684"> <state relative-caret-position="722">
<caret line="53" column="13" selection-start-line="53" selection-start-column="13" selection-end-line="53" selection-end-column="13" /> <caret line="55" column="5" lean-forward="true" selection-start-line="55" selection-start-column="5" selection-end-line="55" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/InputStream.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378"> <state relative-caret-position="216">
<caret line="44" column="22" selection-start-line="44" selection-start-column="22" selection-end-line="44" selection-end-column="22" /> <caret line="20" column="18" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="18" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342"> <state relative-caret-position="468">
<caret line="31" column="32" selection-start-line="31" selection-start-column="32" selection-end-line="31" selection-end-column="32" /> <caret line="33" column="5" lean-forward="true" selection-start-line="33" selection-start-column="5" selection-end-line="33" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/SensitiveUser.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270"> <state relative-caret-position="252">
<caret line="23" column="33" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" /> <caret line="24" column="26" selection-start-line="24" selection-start-column="19" selection-end-line="24" selection-end-column="26" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/wrapper/dists/gradle-4.10.3-bin/31t79e2qsceia4mkbojplrgx/gradle-4.10.3/lib/gradle-core-api-4.10.3.jar!/org/gradle/api/Project.class"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36"> <state relative-caret-position="614">
<caret line="2" column="37" selection-start-line="2" selection-start-column="37" selection-end-line="2" selection-end-column="37" /> <caret line="59" column="44" selection-start-line="59" selection-start-column="36" selection-end-line="59" selection-end-column="44" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/build.gradle"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="564"> <state relative-caret-position="528">
<caret line="48" selection-start-line="48" selection-end-line="48" /> <caret line="99" column="84" lean-forward="true" selection-start-line="99" selection-start-column="84" selection-end-line="99" selection-end-column="84" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/.gitignore"> <entry file="file://$PROJECT_DIR$/contract/settings.gradle">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/quorum/4.0.6/57e1fc8a1bc9846cb4c5ca82d070771cd0033389/quorum-4.0.6-sources.jar!/org/web3j/quorum/Quorum.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="54">
<caret line="14" column="37" selection-start-line="14" selection-start-column="32" selection-end-line="14" selection-end-column="37" /> <caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/methods/response/TransactionReceipt.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state>
<caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" /> <caret column="16" lean-forward="true" selection-start-column="16" selection-end-column="16" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/ClientTransactionManager.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162"> <state relative-caret-position="216">
<caret line="15" column="64" selection-start-line="15" selection-start-column="46" selection-end-line="15" selection-end-column="64" /> <caret line="18" column="1" selection-start-line="18" selection-start-column="1" selection-end-line="18" selection-end-column="1" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/GatewayContract.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/DeviceContractInfoMessage.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-522"> <state relative-caret-position="198">
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" /> <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/DeviceContract.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/model/GatewayContractInfoMessage.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="260"> <state relative-caret-position="288">
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" /> <caret line="16" column="1" lean-forward="true" selection-start-line="16" selection-start-column="1" selection-end-line="16" selection-end-column="1" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/Contract.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/DeviceContractInfoMessage.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/GatewayContractInfoMessage.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceContractIndex.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-864"> <state relative-caret-position="252">
<caret line="346" column="48" selection-start-line="346" selection-start-column="37" selection-end-line="346" selection-end-column="48" /> <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/GatewayContractIndex.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="372"> <state relative-caret-position="234">
<caret line="103" column="71" selection-start-line="103" selection-start-column="71" selection-end-line="103" selection-end-column="71" /> <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/RemoteCall.java"> <entry file="file://$PROJECT_DIR$/contract/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522"> <state relative-caret-position="54">
<caret line="36" column="7" lean-forward="true" selection-start-line="36" selection-start-column="7" selection-end-line="36" selection-end-column="7" /> <caret line="3" column="8" selection-start-line="3" selection-start-column="8" selection-end-line="3" selection-end-column="36" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractReference.java"> <entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324"> <state relative-caret-position="36">
<caret line="18" column="3" lean-forward="true" selection-end-line="19" /> <caret line="5" column="36" selection-start-line="5" selection-start-column="36" selection-end-line="5" selection-end-column="36" />
<folding>
<element signature="e#0#535#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/GatewayContractService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378"> <state relative-caret-position="144">
<caret line="21" column="20" selection-end-line="40" /> <caret line="8" column="44" selection-start-line="8" selection-start-column="20" selection-end-line="8" selection-end-column="44" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/DeviceContract.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="1268">
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" /> <caret line="119" column="57" selection-start-line="119" selection-start-column="52" selection-end-line="119" selection-end-column="57" />
<folding> <folding>
<element signature="e#0#171#0" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/GatewayContract.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234"> <state relative-caret-position="1572">
<caret line="25" column="22" lean-forward="true" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" /> <caret line="177" lean-forward="true" selection-start-line="177" selection-end-line="177" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractUtil.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="571"> <state relative-caret-position="596">
<caret line="58" column="25" selection-start-line="58" selection-start-column="18" selection-end-line="58" selection-end-column="25" /> <caret line="39" column="13" lean-forward="true" selection-start-line="39" selection-start-column="13" selection-end-line="39" selection-end-column="13" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/ClientTransactionManager.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="612">
<caret line="44" selection-start-line="44" selection-end-line="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396"> <state relative-caret-position="90">
<caret line="30" column="16" selection-start-line="30" selection-start-column="16" selection-end-line="30" selection-end-column="16" /> <caret line="11" column="75" selection-start-line="11" selection-start-column="67" selection-end-line="11" selection-end-column="75" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/quorum/4.0.6/57e1fc8a1bc9846cb4c5ca82d070771cd0033389/quorum-4.0.6-sources.jar!/org/web3j/quorum/tx/ClientTransactionManager.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="360">
<caret line="20" column="18" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="18" /> <caret line="52" column="31" selection-start-line="52" selection-start-column="20" selection-end-line="52" selection-end-column="31" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java"> <entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/common/QuorumContractService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="474"> <state relative-caret-position="74">
<caret line="96" column="75" selection-start-line="96" selection-start-column="75" selection-end-line="96" selection-end-column="75" /> <caret line="32" column="35" selection-start-line="32" selection-start-column="35" selection-end-line="32" selection-end-column="35" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="596"> <state relative-caret-position="378">
<caret line="129" column="32" selection-start-line="129" selection-start-column="32" selection-end-line="129" selection-end-column="32" /> <caret line="29" column="5" lean-forward="true" selection-start-line="29" selection-start-column="5" selection-end-line="29" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceContractService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="258">
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" /> <caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
<folding> <folding>
<element signature="e#399#400#0" expanded="true" /> <element signature="imports" expanded="true" />
<element signature="e#466#467#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
...@@ -1507,7 +1690,7 @@ ...@@ -1507,7 +1690,7 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="378">
<caret line="36" column="5" lean-forward="true" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" /> <caret line="36" column="5" lean-forward="true" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
...@@ -1515,27 +1698,20 @@ ...@@ -1515,27 +1698,20 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java"> <entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="486"> <state relative-caret-position="408">
<caret line="35" column="30" lean-forward="true" selection-start-line="35" selection-start-column="30" selection-end-line="35" selection-end-column="30" /> <caret line="62" column="38" lean-forward="true" selection-start-line="62" selection-start-column="38" selection-end-line="62" selection-end-column="38" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java"> <entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4060"> <state relative-caret-position="558">
<caret line="729" column="42" selection-start-line="729" selection-start-column="42" selection-end-line="729" selection-end-column="42" /> <caret line="58" column="37" lean-forward="true" selection-start-line="58" selection-start-column="37" selection-end-line="58" selection-end-column="37" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
......
...@@ -22,15 +22,15 @@ public class DocumentService { ...@@ -22,15 +22,15 @@ public class DocumentService {
.fileType(file.getContentType()) .fileType(file.getContentType())
.bytes(getBytes(file)) .bytes(getBytes(file))
.build()) .build())
.map(document->documentRepository.save(document)); .map(document -> documentRepository.save(document));
} }
public Optional<Document> readFile(Long id){ public Optional<Document> readFile(Long id) {
return documentRepository.findById(id); return documentRepository.findById(id);
} }
private byte[] getBytes(MultipartFile file) { private byte[] getBytes(MultipartFile file) {
try{ try {
return file.getBytes(); return file.getBytes();
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
......
server.port=8081 server.port=8081
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.hikari.data-source-properties.useUnicode=true
spring.datasource.hikari.data-source-properties.characterEncoding=UTF-8
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true spring.jpa.generate-ddl=true
......
//package edu.prlab.tyler.iotgateway.contract.common; package edu.prlab.tyler.iotgateway.contract.common;
//
//import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
//import lombok.Builder; import lombok.Builder;
//import lombok.Data; import lombok.Data;
//import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
//import org.web3j.quorum.Quorum; import org.web3j.quorum.Quorum;
//import org.web3j.tx.ClientTransactionManager; import org.web3j.tx.ClientTransactionManager;
//import org.web3j.tx.gas.ContractGasProvider; import org.web3j.tx.gas.ContractGasProvider;
//
//@Data @Data
//@Builder @Builder
//@NoArgsConstructor @NoArgsConstructor
//@AllArgsConstructor @AllArgsConstructor
//public class QuorumContractReference { public class QuorumContractReference {
// private Quorum quorum; private String address;
// private ContractGasProvider provider; private Quorum quorum;
// private ClientTransactionManager manager; private ContractGasProvider provider;
//} private ClientTransactionManager manager;
}
//package edu.prlab.tyler.iotgateway.contract.common; package edu.prlab.tyler.iotgateway.contract.common;
//
//import org.web3j.quorum.Quorum; import edu.prlab.tyler.iotgateway.contract.DeviceContract;
//import org.web3j.tx.ClientTransactionManager; import org.web3j.protocol.http.HttpService;
//import org.web3j.tx.gas.ContractGasProvider; import org.web3j.quorum.Quorum;
//import org.web3j.tx.gas.DefaultGasProvider; import org.web3j.tx.ClientTransactionManager;
//import org.web3j.tx.gas.StaticGasProvider; import org.web3j.tx.gas.ContractGasProvider;
// import org.web3j.tx.gas.DefaultGasProvider;
//import java.math.BigInteger; import org.web3j.tx.gas.StaticGasProvider;
//import java.util.Optional;
// import java.math.BigInteger;
//public abstract class QuorumContractService<Data, Contract extends org.web3j.tx.Contract> { import java.util.Optional;
// private static final String rpcUrl = "http://localhost:22000";
// public abstract class QuorumContractService<Data, Contract extends org.web3j.tx.Contract> {
// private static final ContractGasProvider DEFAULT_GAS_PROVIDER = new StaticGasProvider( private static final String rpcUrl = "http://localhost:22000";
// BigInteger.ZERO,
// DefaultGasProvider.GAS_LIMIT private static final ContractGasProvider DEFAULT_GAS_PROVIDER = new StaticGasProvider(
// ); BigInteger.ZERO,
// DefaultGasProvider.GAS_LIMIT
// Quorum quorum; );
// ContractGasProvider provider;
// ClientTransactionManager manager; Quorum quorum;
// ContractGasProvider provider;
// public QuorumContractService(Quorum quorum, ContractGasProvider provider, ClientTransactionManager manager) { ClientTransactionManager manager;
// this.quorum = quorum;
// this.provider = provider; public QuorumContractService(Quorum quorum, ContractGasProvider provider, ClientTransactionManager manager) {
// this.manager = manager; this.quorum = quorum;
// } this.provider = provider;
// this.manager = manager;
// //部屬合約 }
//
// protected Optional<Contract> deploy(QuorumContractReference reference) { //部屬合約
// return null; protected Optional<Contract> deploy() {
// } return Optional.ofNullable(Quorum.build(new HttpService(rpcUrl)))
// .flatMap(this::buildManagerAndMap)
// protected Optional<Contract> load() { .map(this::deployContract)
// .filter(QuorumContractUtil::isContractValid);
// } }
// //載入合約
//} //以帳戶第0個建立TransactionManager
protected Optional<QuorumContractReference> buildManagerAndMap(Quorum quorum) {
try {
return Optional.ofNullable(new ClientTransactionManager(quorum, quorum.ethAccounts().send().getAccounts().get(0)))
.map(this::prepare);
} catch (Exception e) {
System.out.println("Cannot find quorum manager");
}
return Optional.empty();
}
//建立合約所需要的參數
protected QuorumContractReference prepare(ClientTransactionManager manager) {
return QuorumContractReference.builder()
.quorum(quorum)
.provider(DEFAULT_GAS_PROVIDER)
.manager(manager)
.build();
}
//部屬合約的子類別實作
protected Contract deployContract(QuorumContractReference reference) {
return null;
}
//載入合約
protected Contract loadContract(QuorumContractReference reference) {
return null;
}
//載入該合約資料
protected Data loadData(Contract deviceContract) {
return null;
}
}
//package edu.prlab.tyler.iotgateway.contract.common; package edu.prlab.tyler.iotgateway.contract.common;
//
//public class QuorumContractUtil {
// import org.web3j.protocol.core.RemoteCall;
// //合約呼叫函式 import org.web3j.tx.Contract;
// public static
// //呼叫 import java.lang.reflect.Method;
//
// //驗證合約有效性 public class QuorumContractUtil {
// private QuorumContractUtil() {
// }
//}
//合約呼叫函式
public static <Return> Return call(Contract contract, String function, Object... parameters) {
try {
Class[] classes = new Class[parameters.length];
for (int i = 0; i < parameters.length; i++) {
classes[i] = parameters[i].getClass();
}
Method method = contract.getClass().getMethod(function, classes);
RemoteCall<Return> remoteCall = (RemoteCall<Return>) method.invoke(contract, parameters);
return remoteCall.send();
} catch (Exception e) {
//do nothing
System.out.println("Remote call Cannot find method");
}
return null;
}
//呼叫
public static <Return> Return call(RemoteCall<Return> remoteCall){
try {
return remoteCall.send();
} catch (Exception e) {
System.out.println("call error");
}
return null;
}
//驗證合約有效性
public static boolean isContractValid(Contract contract) {
return contract != null &&
contract.getContractAddress() != null &&
!contract.getContractAddress().isEmpty();
}
}
...@@ -81,7 +81,7 @@ public class ContractTester { ...@@ -81,7 +81,7 @@ public class ContractTester {
@Test @Test
public void test2Contract() throws Exception { public void test2Contract() throws Exception {
Quorum quorum = Quorum.build(new HttpService(rpcUrl)); Quorum quorum = Quorum.build(new HttpService(rpcUrl));
String userAddress = quorum.ethAccounts().send().getAccounts().get(quorum.ethAccounts().send().getAccounts().size() - 1); String userAddress = quorum.ethAccounts().send().getAccounts().get(0);
Assert.assertNotNull(userAddress); Assert.assertNotNull(userAddress);
ClientTransactionManager manager = new ClientTransactionManager(quorum, userAddress); ClientTransactionManager manager = new ClientTransactionManager(quorum, userAddress);
......
...@@ -3,6 +3,7 @@ buildscript { ...@@ -3,6 +3,7 @@ buildscript {
springBootVersion = '2.1.4.RELEASE' springBootVersion = '2.1.4.RELEASE'
mapstructVersion = '1.3.0.Final' mapstructVersion = '1.3.0.Final'
guavaVersion = '27.1-jre' guavaVersion = '27.1-jre'
web3jQuorumVersion = '4.0.6'
} }
repositories { repositories {
mavenCentral() mavenCentral()
...@@ -36,6 +37,7 @@ dependencies { ...@@ -36,6 +37,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "org.mapstruct:mapstruct:${mapstructVersion}" implementation "org.mapstruct:mapstruct:${mapstructVersion}"
implementation "com.google.guava:guava:${guavaVersion}" implementation "com.google.guava:guava:${guavaVersion}"
implementation "org.web3j:quorum:${web3jQuorumVersion}"
implementation project(":cloud") implementation project(":cloud")
compileOnly 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok'
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.031s</div> <div class="counter">0.030s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
</thead> </thead>
<tr> <tr>
<td class="success">contextLoads</td> <td class="success">contextLoads</td>
<td class="success">0.031s</td> <td class="success">0.030s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
</table> </table>
...@@ -87,29 +87,29 @@ ...@@ -87,29 +87,29 @@
<div id="tab1" class="tab"> <div id="tab1" class="tab">
<h2>Standard output</h2> <h2>Standard output</h2>
<span class="code"> <span class="code">
<pre>16:21:13.451 [Test worker] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] <pre>14:55:35.652 [Test worker] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.456 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] 14:55:35.658 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
16:21:13.462 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)] 14:55:35.664 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
16:21:13.476 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper] 14:55:35.679 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
16:21:13.487 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests], using SpringBootContextLoader 14:55:35.691 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests], using SpringBootContextLoader
16:21:13.490 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests-context.xml] does not exist 14:55:35.694 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests-context.xml] does not exist
16:21:13.491 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTestsContext.groovy] does not exist 14:55:35.695 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTestsContext.groovy] does not exist
16:21:13.491 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}. 14:55:35.695 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
16:21:13.492 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: GatewayApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 14:55:35.696 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: GatewayApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
16:21:13.522 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.727 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.570 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\SpringBoot\iotgateway\gateway\build\classes\java\main\edu\prlab\tyler\iotgateway\gateway\GatewayApplication.class] 14:55:35.781 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\SpringBoot\iotgateway\gateway\build\classes\java\main\edu\prlab\tyler\iotgateway\gateway\GatewayApplication.class]
16:21:13.571 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration edu.prlab.tyler.iotgateway.gateway.GatewayApplication for test class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests 14:55:35.781 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration edu.prlab.tyler.iotgateway.gateway.GatewayApplication for test class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests
16:21:13.643 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: using defaults. 14:55:35.851 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: using defaults.
16:21:13.643 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener] 14:55:35.852 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
16:21:13.656 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1b8667a5, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6a9b7e53, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7e595118, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a5bfbb6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62c81617, org.springframework.test.context.transaction.TransactionalTestExecutionListener@531085fb, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6775cf10, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@72e61e03, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@503cd6e6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7d4be47, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e90ece2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@c44e535] 14:55:35.865 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1b8667a5, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6a9b7e53, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7e595118, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a5bfbb6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62c81617, org.springframework.test.context.transaction.TransactionalTestExecutionListener@531085fb, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6775cf10, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@72e61e03, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@503cd6e6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7d4be47, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e90ece2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@c44e535]
16:21:13.658 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.868 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.658 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.868 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.659 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.869 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.659 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.869 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.662 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@26c1b343 testClass = GatewayApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7604582e testClass = GatewayApplicationTests, locations = '{}', classes = '{class edu.prlab.tyler.iotgateway.gateway.GatewayApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5dec0e8b, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5bb44255, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@140c0cee, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1eb32443], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -&gt; true]], class annotated with @DirtiesContext [false] with mode [null]. 14:55:35.872 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@26c1b343 testClass = GatewayApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7604582e testClass = GatewayApplicationTests, locations = '{}', classes = '{class edu.prlab.tyler.iotgateway.gateway.GatewayApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5dec0e8b, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5bb44255, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@140c0cee, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1eb32443], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -&gt; true]], class annotated with @DirtiesContext [false] with mode [null].
16:21:13.663 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.873 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.663 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.873 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.679 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1} 14:55:35.889 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}
. ____ _ __ _ _ . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
...@@ -119,26 +119,26 @@ ...@@ -119,26 +119,26 @@
=========|_|==============|___/=/_/_/_/ =========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE) :: Spring Boot :: (v2.1.4.RELEASE)
2019-06-10 16:21:13.836 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Starting GatewayApplicationTests on DESKTOP-1ADCP8A with PID 13652 (started by Tyler in D:\SpringBoot\iotgateway\gateway) 2019-06-11 14:55:36.054 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Starting GatewayApplicationTests on DESKTOP-1ADCP8A with PID 12072 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-10 16:21:13.837 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : No active profile set, falling back to default profiles: default 2019-06-11 14:55:36.055 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : No active profile set, falling back to default profiles: default
2019-06-10 16:21:14.302 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2019-06-11 14:55:36.535 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-10 16:21:14.354 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 46ms. Found 3 repository interfaces. 2019-06-11 14:55:36.591 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 49ms. Found 3 repository interfaces.
2019-06-10 16:21:14.612 INFO 13652 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$e0e33b69] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2019-06-11 14:55:36.840 INFO 12072 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$cbdf4f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-10 16:21:14.750 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2019-06-11 14:55:36.983 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-06-10 16:21:14.907 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2019-06-11 14:55:37.131 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-06-10 16:21:14.977 INFO 13652 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 2019-06-11 14:55:37.208 INFO 12072 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default name: default
...] ...]
2019-06-10 16:21:15.025 INFO 13652 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate Core {5.3.9.Final} 2019-06-11 14:55:37.256 INFO 12072 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate Core {5.3.9.Final}
2019-06-10 16:21:15.026 INFO 13652 --- [ Test worker] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2019-06-11 14:55:37.257 INFO 12072 --- [ Test worker] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2019-06-10 16:21:15.131 INFO 13652 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final} 2019-06-11 14:55:37.387 INFO 12072 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-06-10 16:21:15.247 INFO 13652 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2019-06-11 14:55:37.511 INFO 12072 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-10 16:21:15.987 INFO 13652 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@459d24be' 2019-06-11 14:55:38.229 INFO 12072 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@4135f4d5'
2019-06-10 16:21:15.990 INFO 13652 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2019-06-11 14:55:38.232 INFO 12072 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-10 16:21:16.807 INFO 13652 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-06-11 14:55:39.122 INFO 12072 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-10 16:21:16.844 WARN 13652 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2019-06-11 14:55:39.161 WARN 12072 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-10 16:21:17.077 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Started GatewayApplicationTests in 3.392 seconds (JVM running for 4.234) 2019-06-11 14:55:39.407 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Started GatewayApplicationTests in 3.512 seconds (JVM running for 4.341)
2019-06-10 16:21:17.097 INFO 13652 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 2019-06-11 14:55:39.428 INFO 12072 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
</pre> </pre>
</span> </span>
</div> </div>
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/10 下午 04:21:19</p> <a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/11 下午 02:55:41</p>
</div> </div>
</div> </div>
</body> </body>
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.687s</div> <div class="counter">0.740s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
</thead> </thead>
<tr> <tr>
<td class="success">getPrivacyPolicyAndSetChoice</td> <td class="success">getPrivacyPolicyAndSetChoice</td>
<td class="success">0.687s</td> <td class="success">0.740s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
</table> </table>
...@@ -87,10 +87,10 @@ ...@@ -87,10 +87,10 @@
<div id="tab1" class="tab"> <div id="tab1" class="tab">
<h2>Standard output</h2> <h2>Standard output</h2>
<span class="code"> <span class="code">
<pre>2019-06-10 16:21:17.274 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest], using SpringBootContextLoader <pre>2019-06-11 14:55:39.606 INFO 12072 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest], using SpringBootContextLoader
2019-06-10 16:21:17.274 INFO 13652 --- [ Test worker] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. 2019-06-11 14:55:39.607 INFO 12072 --- [ Test worker] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest]: no resource found for suffixes {-context.xml, Context.groovy}.
2019-06-10 16:21:17.276 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener] 2019-06-11 14:55:39.609 INFO 12072 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
2019-06-10 16:21:17.276 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@254d5edb, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@483a64c, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3bda8b0d, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@190ba193, org.springframework.test.context.support.DirtiesContextTestExecutionListener@567f8fef, org.springframework.test.context.transaction.TransactionalTestExecutionListener@4f57f2aa, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@203a8aae, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@64f9b003, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4e535b84, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@3ee13246, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4a7aa0ce, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@632a682a] 2019-06-11 14:55:39.610 INFO 12072 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@164686bb, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@254d5edb, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@483a64c, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@3bda8b0d, org.springframework.test.context.support.DirtiesContextTestExecutionListener@190ba193, org.springframework.test.context.transaction.TransactionalTestExecutionListener@567f8fef, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@4f57f2aa, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@203a8aae, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@64f9b003, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@4e535b84, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@3ee13246, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4a7aa0ce]
. ____ _ __ _ _ . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
...@@ -100,26 +100,26 @@ ...@@ -100,26 +100,26 @@
=========|_|==============|___/=/_/_/_/ =========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE) :: Spring Boot :: (v2.1.4.RELEASE)
2019-06-10 16:21:17.297 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 13652 (started by Tyler in D:\SpringBoot\iotgateway\gateway) 2019-06-11 14:55:39.628 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 12072 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-10 16:21:17.297 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : No active profile set, falling back to default profiles: default 2019-06-11 14:55:39.628 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : No active profile set, falling back to default profiles: default
2019-06-10 16:21:17.418 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2019-06-11 14:55:39.743 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-10 16:21:17.430 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12ms. Found 3 repository interfaces. 2019-06-11 14:55:39.754 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 10ms. Found 3 repository interfaces.
2019-06-10 16:21:17.477 INFO 13652 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$e0e33b69] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2019-06-11 14:55:39.809 INFO 12072 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$cbdf4f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-10 16:21:17.526 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting... 2019-06-11 14:55:39.865 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting...
2019-06-10 16:21:17.528 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed. 2019-06-11 14:55:39.865 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed.
2019-06-10 16:21:17.554 INFO 13652 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 2019-06-11 14:55:39.899 INFO 12072 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default name: default
...] ...]
2019-06-10 16:21:17.564 INFO 13652 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2019-06-11 14:55:39.911 INFO 12072 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-10 16:21:17.662 INFO 13652 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@459d24be' 2019-06-11 14:55:40.015 INFO 12072 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@4135f4d5'
2019-06-10 16:21:17.662 INFO 13652 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2019-06-11 14:55:40.016 INFO 12072 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-10 16:21:17.926 INFO 13652 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-06-11 14:55:40.311 INFO 12072 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-10 16:21:17.934 WARN 13652 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2019-06-11 14:55:40.319 WARN 12072 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-10 16:21:18.120 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.842 seconds (JVM running for 5.277) 2019-06-11 14:55:40.470 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.857 seconds (JVM running for 5.405)
2019-06-10 16:21:18.121 INFO 13652 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 2019-06-11 14:55:40.471 INFO 12072 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
2019-06-10 16:21:18.135 INFO 13652 --- [ Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet '' 2019-06-11 14:55:40.483 INFO 12072 --- [ Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2019-06-10 16:21:18.136 INFO 13652 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' 2019-06-11 14:55:40.483 INFO 12072 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2019-06-10 16:21:18.146 INFO 13652 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 10 ms 2019-06-11 14:55:40.492 INFO 12072 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 9 ms
MockHttpServletRequest: MockHttpServletRequest:
HTTP Method = POST HTTP Method = POST
...@@ -301,7 +301,7 @@ MockHttpServletResponse: ...@@ -301,7 +301,7 @@ MockHttpServletResponse:
Error message = null Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;] Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8 Content type = application/json;charset=UTF-8
Body = {&quot;id&quot;:1,&quot;localDateTime&quot;:&quot;2019-06-10T16:21:18.758&quot;,&quot;privacyChoice&quot;:{&quot;id&quot;:1,&quot;privacyContent&quot;:{&quot;id&quot;:1,&quot;user&quot;:{&quot;id&quot;:1,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}} Body = {&quot;id&quot;:1,&quot;localDateTime&quot;:&quot;2019-06-11T14:55:41.156&quot;,&quot;privacyChoice&quot;:{&quot;id&quot;:1,&quot;privacyContent&quot;:{&quot;id&quot;:1,&quot;user&quot;:{&quot;id&quot;:1,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}}
Forwarded URL = null Forwarded URL = null
Redirected URL = null Redirected URL = null
Cookies = [] Cookies = []
...@@ -375,7 +375,7 @@ MockHttpServletResponse: ...@@ -375,7 +375,7 @@ MockHttpServletResponse:
Error message = null Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;] Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8 Content type = application/json;charset=UTF-8
Body = [{&quot;id&quot;:1,&quot;localDateTime&quot;:&quot;2019-06-10T16:21:18.758&quot;,&quot;privacyChoice&quot;:{&quot;id&quot;:1,&quot;privacyContent&quot;:{&quot;id&quot;:1,&quot;user&quot;:{&quot;id&quot;:1,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}}] Body = [{&quot;id&quot;:1,&quot;localDateTime&quot;:&quot;2019-06-11T14:55:41.156&quot;,&quot;privacyChoice&quot;:{&quot;id&quot;:1,&quot;privacyContent&quot;:{&quot;id&quot;:1,&quot;user&quot;:{&quot;id&quot;:1,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}}]
Forwarded URL = null Forwarded URL = null
Redirected URL = null Redirected URL = null
Cookies = [] Cookies = []
...@@ -390,7 +390,7 @@ MockHttpServletResponse: ...@@ -390,7 +390,7 @@ MockHttpServletResponse:
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/10 下午 04:21:19</p> <a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/11 下午 02:55:41</p>
</div> </div>
</div> </div>
</body> </body>
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.718s</div> <div class="counter">0.770s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
<td>2</td> <td>2</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.718s</td> <td>0.770s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</tbody> </tbody>
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
<td>1</td> <td>1</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.031s</td> <td>0.030s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
<tr> <tr>
...@@ -120,7 +120,7 @@ ...@@ -120,7 +120,7 @@
<td>1</td> <td>1</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.687s</td> <td>0.740s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</tbody> </tbody>
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/10 下午 04:21:19</p> <a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/11 下午 02:55:41</p>
</div> </div>
</div> </div>
</body> </body>
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.718s</div> <div class="counter">0.770s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
<td>1</td> <td>1</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.031s</td> <td>0.030s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
<tr> <tr>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
<td>1</td> <td>1</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.687s</td> <td>0.740s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</table> </table>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/10 下午 04:21:19</p> <a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/11 下午 02:55:41</p>
</div> </div>
</div> </div>
</body> </body>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-10T08:21:17" hostname="DESKTOP-1ADCP8A" time="0.031"> <testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-11T06:55:39" hostname="DESKTOP-1ADCP8A" time="0.03">
<properties/> <properties/>
<testcase name="contextLoads" classname="edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests" time="0.031"/> <testcase name="contextLoads" classname="edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests" time="0.03"/>
<system-out><![CDATA[16:21:13.451 [Test worker] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] <system-out><![CDATA[14:55:35.652 [Test worker] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.456 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] 14:55:35.658 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
16:21:13.462 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)] 14:55:35.664 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
16:21:13.476 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper] 14:55:35.679 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
16:21:13.487 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests], using SpringBootContextLoader 14:55:35.691 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests], using SpringBootContextLoader
16:21:13.490 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests-context.xml] does not exist 14:55:35.694 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests-context.xml] does not exist
16:21:13.491 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTestsContext.groovy] does not exist 14:55:35.695 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTestsContext.groovy] does not exist
16:21:13.491 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}. 14:55:35.695 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
16:21:13.492 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: GatewayApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 14:55:35.696 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: GatewayApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
16:21:13.522 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.727 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.570 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\SpringBoot\iotgateway\gateway\build\classes\java\main\edu\prlab\tyler\iotgateway\gateway\GatewayApplication.class] 14:55:35.781 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\SpringBoot\iotgateway\gateway\build\classes\java\main\edu\prlab\tyler\iotgateway\gateway\GatewayApplication.class]
16:21:13.571 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration edu.prlab.tyler.iotgateway.gateway.GatewayApplication for test class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests 14:55:35.781 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration edu.prlab.tyler.iotgateway.gateway.GatewayApplication for test class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests
16:21:13.643 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: using defaults. 14:55:35.851 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: using defaults.
16:21:13.643 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener] 14:55:35.852 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
16:21:13.656 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1b8667a5, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6a9b7e53, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7e595118, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a5bfbb6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62c81617, org.springframework.test.context.transaction.TransactionalTestExecutionListener@531085fb, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6775cf10, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@72e61e03, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@503cd6e6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7d4be47, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e90ece2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@c44e535] 14:55:35.865 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1b8667a5, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6a9b7e53, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7e595118, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a5bfbb6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62c81617, org.springframework.test.context.transaction.TransactionalTestExecutionListener@531085fb, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6775cf10, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@72e61e03, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@503cd6e6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7d4be47, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e90ece2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@c44e535]
16:21:13.658 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.868 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.658 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.868 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.659 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.869 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.659 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.869 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.662 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@26c1b343 testClass = GatewayApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7604582e testClass = GatewayApplicationTests, locations = '{}', classes = '{class edu.prlab.tyler.iotgateway.gateway.GatewayApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5dec0e8b, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5bb44255, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@140c0cee, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1eb32443], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null]. 14:55:35.872 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@26c1b343 testClass = GatewayApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7604582e testClass = GatewayApplicationTests, locations = '{}', classes = '{class edu.prlab.tyler.iotgateway.gateway.GatewayApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5dec0e8b, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5bb44255, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@140c0cee, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1eb32443], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null].
16:21:13.663 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.873 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.663 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] 14:55:35.873 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
16:21:13.679 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1} 14:55:35.889 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}
. ____ _ __ _ _ . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
...@@ -34,26 +34,26 @@ ...@@ -34,26 +34,26 @@
=========|_|==============|___/=/_/_/_/ =========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE) :: Spring Boot :: (v2.1.4.RELEASE)
2019-06-10 16:21:13.836 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Starting GatewayApplicationTests on DESKTOP-1ADCP8A with PID 13652 (started by Tyler in D:\SpringBoot\iotgateway\gateway) 2019-06-11 14:55:36.054 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Starting GatewayApplicationTests on DESKTOP-1ADCP8A with PID 12072 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-10 16:21:13.837 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : No active profile set, falling back to default profiles: default 2019-06-11 14:55:36.055 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : No active profile set, falling back to default profiles: default
2019-06-10 16:21:14.302 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2019-06-11 14:55:36.535 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-10 16:21:14.354 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 46ms. Found 3 repository interfaces. 2019-06-11 14:55:36.591 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 49ms. Found 3 repository interfaces.
2019-06-10 16:21:14.612 INFO 13652 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$e0e33b69] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2019-06-11 14:55:36.840 INFO 12072 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$cbdf4f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-10 16:21:14.750 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2019-06-11 14:55:36.983 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-06-10 16:21:14.907 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2019-06-11 14:55:37.131 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-06-10 16:21:14.977 INFO 13652 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 2019-06-11 14:55:37.208 INFO 12072 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default name: default
...] ...]
2019-06-10 16:21:15.025 INFO 13652 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate Core {5.3.9.Final} 2019-06-11 14:55:37.256 INFO 12072 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate Core {5.3.9.Final}
2019-06-10 16:21:15.026 INFO 13652 --- [ Test worker] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2019-06-11 14:55:37.257 INFO 12072 --- [ Test worker] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2019-06-10 16:21:15.131 INFO 13652 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final} 2019-06-11 14:55:37.387 INFO 12072 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-06-10 16:21:15.247 INFO 13652 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2019-06-11 14:55:37.511 INFO 12072 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-10 16:21:15.987 INFO 13652 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@459d24be' 2019-06-11 14:55:38.229 INFO 12072 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@4135f4d5'
2019-06-10 16:21:15.990 INFO 13652 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2019-06-11 14:55:38.232 INFO 12072 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-10 16:21:16.807 INFO 13652 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-06-11 14:55:39.122 INFO 12072 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-10 16:21:16.844 WARN 13652 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2019-06-11 14:55:39.161 WARN 12072 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-10 16:21:17.077 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Started GatewayApplicationTests in 3.392 seconds (JVM running for 4.234) 2019-06-11 14:55:39.407 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Started GatewayApplicationTests in 3.512 seconds (JVM running for 4.341)
2019-06-10 16:21:17.097 INFO 13652 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 2019-06-11 14:55:39.428 INFO 12072 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
]]></system-out> ]]></system-out>
<system-err><![CDATA[]]></system-err> <system-err><![CDATA[]]></system-err>
</testsuite> </testsuite>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-10T08:21:18" hostname="DESKTOP-1ADCP8A" time="0.687"> <testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-11T06:55:40" hostname="DESKTOP-1ADCP8A" time="0.74">
<properties/> <properties/>
<testcase name="getPrivacyPolicyAndSetChoice" classname="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" time="0.687"/> <testcase name="getPrivacyPolicyAndSetChoice" classname="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" time="0.74"/>
<system-out><![CDATA[2019-06-10 16:21:17.274 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest], using SpringBootContextLoader <system-out><![CDATA[2019-06-11 14:55:39.606 INFO 12072 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest], using SpringBootContextLoader
2019-06-10 16:21:17.274 INFO 13652 --- [ Test worker] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. 2019-06-11 14:55:39.607 INFO 12072 --- [ Test worker] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest]: no resource found for suffixes {-context.xml, Context.groovy}.
2019-06-10 16:21:17.276 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener] 2019-06-11 14:55:39.609 INFO 12072 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
2019-06-10 16:21:17.276 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@254d5edb, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@483a64c, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3bda8b0d, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@190ba193, org.springframework.test.context.support.DirtiesContextTestExecutionListener@567f8fef, org.springframework.test.context.transaction.TransactionalTestExecutionListener@4f57f2aa, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@203a8aae, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@64f9b003, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4e535b84, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@3ee13246, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4a7aa0ce, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@632a682a] 2019-06-11 14:55:39.610 INFO 12072 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@164686bb, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@254d5edb, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@483a64c, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@3bda8b0d, org.springframework.test.context.support.DirtiesContextTestExecutionListener@190ba193, org.springframework.test.context.transaction.TransactionalTestExecutionListener@567f8fef, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@4f57f2aa, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@203a8aae, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@64f9b003, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@4e535b84, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@3ee13246, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4a7aa0ce]
. ____ _ __ _ _ . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
...@@ -15,26 +15,26 @@ ...@@ -15,26 +15,26 @@
=========|_|==============|___/=/_/_/_/ =========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE) :: Spring Boot :: (v2.1.4.RELEASE)
2019-06-10 16:21:17.297 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 13652 (started by Tyler in D:\SpringBoot\iotgateway\gateway) 2019-06-11 14:55:39.628 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 12072 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-10 16:21:17.297 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : No active profile set, falling back to default profiles: default 2019-06-11 14:55:39.628 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : No active profile set, falling back to default profiles: default
2019-06-10 16:21:17.418 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2019-06-11 14:55:39.743 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-10 16:21:17.430 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12ms. Found 3 repository interfaces. 2019-06-11 14:55:39.754 INFO 12072 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 10ms. Found 3 repository interfaces.
2019-06-10 16:21:17.477 INFO 13652 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$e0e33b69] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2019-06-11 14:55:39.809 INFO 12072 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$cbdf4f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-10 16:21:17.526 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting... 2019-06-11 14:55:39.865 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting...
2019-06-10 16:21:17.528 INFO 13652 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed. 2019-06-11 14:55:39.865 INFO 12072 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed.
2019-06-10 16:21:17.554 INFO 13652 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 2019-06-11 14:55:39.899 INFO 12072 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default name: default
...] ...]
2019-06-10 16:21:17.564 INFO 13652 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2019-06-11 14:55:39.911 INFO 12072 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-10 16:21:17.662 INFO 13652 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@459d24be' 2019-06-11 14:55:40.015 INFO 12072 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@4135f4d5'
2019-06-10 16:21:17.662 INFO 13652 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2019-06-11 14:55:40.016 INFO 12072 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-10 16:21:17.926 INFO 13652 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-06-11 14:55:40.311 INFO 12072 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-10 16:21:17.934 WARN 13652 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2019-06-11 14:55:40.319 WARN 12072 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-10 16:21:18.120 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.842 seconds (JVM running for 5.277) 2019-06-11 14:55:40.470 INFO 12072 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.857 seconds (JVM running for 5.405)
2019-06-10 16:21:18.121 INFO 13652 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 2019-06-11 14:55:40.471 INFO 12072 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
2019-06-10 16:21:18.135 INFO 13652 --- [ Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet '' 2019-06-11 14:55:40.483 INFO 12072 --- [ Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2019-06-10 16:21:18.136 INFO 13652 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' 2019-06-11 14:55:40.483 INFO 12072 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2019-06-10 16:21:18.146 INFO 13652 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 10 ms 2019-06-11 14:55:40.492 INFO 12072 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 9 ms
MockHttpServletRequest: MockHttpServletRequest:
HTTP Method = POST HTTP Method = POST
...@@ -216,7 +216,7 @@ MockHttpServletResponse: ...@@ -216,7 +216,7 @@ MockHttpServletResponse:
Error message = null Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"] Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8 Content type = application/json;charset=UTF-8
Body = {"id":1,"localDateTime":"2019-06-10T16:21:18.758","privacyChoice":{"id":1,"privacyContent":{"id":1,"user":{"id":1,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}} Body = {"id":1,"localDateTime":"2019-06-11T14:55:41.156","privacyChoice":{"id":1,"privacyContent":{"id":1,"user":{"id":1,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}}
Forwarded URL = null Forwarded URL = null
Redirected URL = null Redirected URL = null
Cookies = [] Cookies = []
...@@ -290,7 +290,7 @@ MockHttpServletResponse: ...@@ -290,7 +290,7 @@ MockHttpServletResponse:
Error message = null Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"] Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8 Content type = application/json;charset=UTF-8
Body = [{"id":1,"localDateTime":"2019-06-10T16:21:18.758","privacyChoice":{"id":1,"privacyContent":{"id":1,"user":{"id":1,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}}] Body = [{"id":1,"localDateTime":"2019-06-11T14:55:41.156","privacyChoice":{"id":1,"privacyContent":{"id":1,"user":{"id":1,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}}]
Forwarded URL = null Forwarded URL = null
Redirected URL = null Redirected URL = null
Cookies = [] Cookies = []
......
Manifest-Version: 1.0 Manifest-Version: 1.0
Start-Class: edu.prlab.tyler.iotgateway.gateway.GatewayApplication Start-Class: edu.prlab.tyler.iotgateway.gateway.GatewayApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.1.4.RELEASE
Main-Class: org.springframework.boot.loader.PropertiesLauncher Main-Class: org.springframework.boot.loader.PropertiesLauncher
...@@ -46,7 +46,6 @@ public class GatewayController { ...@@ -46,7 +46,6 @@ public class GatewayController {
.orElseGet(() -> ResponseEntity.noContent().build()); .orElseGet(() -> ResponseEntity.noContent().build());
} }
//透過裝置UDN取得裝置資訊與隱私政策 //透過裝置UDN取得裝置資訊與隱私政策
@GetMapping("/privacy/{udn}/{account}") @GetMapping("/privacy/{udn}/{account}")
public ResponseEntity<PrivacyPolicyReportResponse> readPrivacyPolicyReportByDevice(@PathVariable String udn, @PathVariable String account) { public ResponseEntity<PrivacyPolicyReportResponse> readPrivacyPolicyReportByDevice(@PathVariable String udn, @PathVariable String account) {
......
package edu.prlab.tyler.iotgateway.gateway.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeviceContractInfoMessage {
String ownerAddress;
String deviceInfo ;
String privacyPolicy;
String bindAddress;
}
package edu.prlab.tyler.iotgateway.gateway.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigInteger;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GatewayContractInfoMessage {
BigInteger numDevices;
Iterable<String> devices;
}
\ No newline at end of file
package edu.prlab.tyler.iotgateway.gateway.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class DeviceContractIndex {
String address;
String udn;
}
package edu.prlab.tyler.iotgateway.gateway.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class GatewayContractIndex {
String address;
String account;
}
package edu.prlab.tyler.iotgateway.gateway.services;
import edu.prlab.tyler.iotgateway.contract.DeviceContract;
import edu.prlab.tyler.iotgateway.contract.common.QuorumContractReference;
import edu.prlab.tyler.iotgateway.contract.common.QuorumContractService;
import edu.prlab.tyler.iotgateway.contract.common.QuorumContractUtil;
import edu.prlab.tyler.iotgateway.gateway.model.DeviceContractInfoMessage;
import org.web3j.quorum.Quorum;
import org.web3j.tx.ClientTransactionManager;
import org.web3j.tx.gas.ContractGasProvider;
public class DeviceContractService extends QuorumContractService<DeviceContractInfoMessage, DeviceContract> {
public DeviceContractService(Quorum quorum, ContractGasProvider provider, ClientTransactionManager manager) {
super(quorum, provider, manager);
}
@Override
protected DeviceContract loadContract(QuorumContractReference reference) {
return DeviceContract.load(reference.getAddress(), reference.getQuorum(), reference.getManager(), reference.getProvider());
}
@Override
protected DeviceContractInfoMessage loadData(DeviceContract deviceContract) {
return DeviceContractInfoMessage.builder()
.ownerAddress(QuorumContractUtil.call(deviceContract.owner()))
.deviceInfo(QuorumContractUtil.call(deviceContract.deviceInfo()))
.privacyPolicy(QuorumContractUtil.call(deviceContract.privacypolicy()))
.bindAddress(QuorumContractUtil.call(deviceContract.binded()))
.build();
}
@Override
protected DeviceContract deployContract(QuorumContractReference reference) {
try {
return DeviceContract.deploy(reference.getQuorum(), reference.getManager(), reference.getProvider()).send();
} catch (Exception e) {
System.out.println("Cannot deploy device contract.");
}
return null;
}
}
package edu.prlab.tyler.iotgateway.gateway.services;
import edu.prlab.tyler.iotgateway.contract.GatewayContract;
import edu.prlab.tyler.iotgateway.contract.common.QuorumContractReference;
import edu.prlab.tyler.iotgateway.contract.common.QuorumContractService;
import edu.prlab.tyler.iotgateway.contract.common.QuorumContractUtil;
import edu.prlab.tyler.iotgateway.gateway.model.GatewayContractInfoMessage;
import org.web3j.quorum.Quorum;
import org.web3j.tx.ClientTransactionManager;
import org.web3j.tx.gas.ContractGasProvider;
import java.math.BigInteger;
import java.util.stream.IntStream;
public class GatewayContractService extends QuorumContractService<GatewayContractInfoMessage, GatewayContract> {
public GatewayContractService(Quorum quorum, ContractGasProvider provider, ClientTransactionManager manager) {
super(quorum, provider, manager);
}
@Override
protected GatewayContract loadContract(QuorumContractReference reference) {
return GatewayContract.load(reference.getAddress(), reference.getQuorum(), reference.getManager(), reference.getProvider());
}
@Override
protected GatewayContractInfoMessage loadData(GatewayContract gatewayContract) {
BigInteger numDevices = QuorumContractUtil.call(gatewayContract.numDevices());
return GatewayContractInfoMessage.builder()
.numDevices(numDevices)
.devices(() -> IntStream.range(0, numDevices.intValue())
.mapToObj(i -> QuorumContractUtil.call(gatewayContract.getDeviceAddress(BigInteger.valueOf(i))))
.iterator())
.build();
}
@Override
protected GatewayContract deployContract(QuorumContractReference reference) {
try {
return GatewayContract.deploy(reference.getQuorum(), reference.getManager(), reference.getProvider()).send();
} catch (Exception e) {
System.out.println("Cannot deploy gateway contract.");
}
return null;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment