Commit 1a3f8353 authored by 0Tyler's avatar 0Tyler

gateway:DeviceService:addfilter & gateway:PrivacyService:addfilter

parent 0ce4516b
......@@ -7,20 +7,18 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/model/PrivacyChoiceMessage.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" 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/services/storage/StorageService.java" beforeDir="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$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.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/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" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/build/" />
......@@ -145,90 +143,79 @@
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<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/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="23" column="33" lean-forward="true" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
<state relative-caret-position="483">
<caret line="66" column="55" selection-start-line="66" selection-start-column="55" selection-end-line="66" selection-end-column="55" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#686#687#0" expanded="true" />
<element signature="e#738#739#0" expanded="true" />
<element signature="e#1724#1725#0" expanded="true" />
<element signature="e#1790#1791#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<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">
<state relative-caret-position="252">
<caret line="22" selection-start-line="22" selection-end-line="22" />
<state relative-caret-position="810">
<caret line="57" column="122" lean-forward="true" selection-start-line="57" selection-start-column="122" selection-end-line="57" selection-end-column="122" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.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">
<state relative-caret-position="180">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<state relative-caret-position="328">
<caret line="119" column="38" selection-start-line="119" selection-start-column="38" selection-end-line="119" selection-end-column="38" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="455">
<caret line="44" column="5" lean-forward="true" selection-start-line="44" selection-start-column="5" selection-end-line="44" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="72">
<caret line="92" column="58" lean-forward="true" selection-start-line="92" selection-start-column="58" selection-end-line="92" selection-end-column="58" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" />
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<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">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" selection-start-line="4" selection-end-line="4" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="303">
<caret line="27" column="16" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="16" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.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="200">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
<state relative-caret-position="1440">
<caret line="125" column="8" lean-forward="true" selection-start-line="125" selection-start-column="8" selection-end-line="125" selection-end-column="8" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.java">
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
<folding>
<element signature="e#830#831#0" expanded="true" />
<element signature="e#854#855#0" expanded="true" />
</folding>
<state relative-caret-position="186">
<caret line="180" column="34" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="34" />
</state>
</provider>
</entry>
......@@ -236,21 +223,17 @@
<file pinned="false" current-in-tab="false">
<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">
<state relative-caret-position="421">
<caret line="58" column="4" selection-start-line="58" selection-start-column="4" selection-end-line="66" selection-end-column="5" />
<state relative-caret-position="342">
<caret line="47" column="30" selection-start-line="47" selection-start-column="30" selection-end-line="47" selection-end-column="30" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.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">
<state relative-caret-position="576">
<caret line="38" column="5" lean-forward="true" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<folding>
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
<state relative-caret-position="492">
<caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" />
</state>
</provider>
</entry>
......@@ -267,8 +250,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>Manager</find>
<find>ethGetTransactionReceipt</find>
<find>transactionReceipt</find>
<find>ClientTransactionManager</find>
<find>DeviceManager</find>
......@@ -280,7 +261,6 @@
<find>PrivacyPolicyReport</find>
<find>exchange</find>
<find>readByUDN</find>
<find>user</find>
<find>SensitiveUser</find>
<find>PrivacyChoiceIndexRepository</find>
<find>TypeReference</find>
......@@ -297,6 +277,9 @@
<find>204</find>
<find>FunctionWithException</find>
<find>saveDevice</find>
<find>DeviceIndexRepository</find>
<find>existsByAccount</find>
<find>user</find>
</findStrings>
<replaceStrings>
<replace>cloud</replace>
......@@ -315,11 +298,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/gateway/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/User.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyContent.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/privacy/PrivacyContent.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/repositories/PrivacyChoiceIndexRepository.java" />
......@@ -328,17 +306,12 @@
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/UserRepository.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.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/pojo/privacy/PrivacyPolicy.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/RemoteService.java" />
<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/services/DeviceService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.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$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.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" />
......@@ -354,18 +327,28 @@
<option value="$PROJECT_DIR$/cloud/build.gradle" />
<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/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.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/pojo/privacy/PrivacyPolicyReport.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.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/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/pojo/Document.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/config/DefaultData.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.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/controllers/DocumentController.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/DeviceContractTester.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/repositories/DeviceIndexRepository.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.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/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
</list>
</option>
</component>
......@@ -395,19 +378,6 @@
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gradle" 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="gradle" type="462c0819:PsiDirectoryNode" />
<item name="wrapper" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -456,7 +426,7 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -467,74 +437,71 @@
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" 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="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" 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="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="device" 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="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" 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="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" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="repositories" 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="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="cloud" 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="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="cloud" type="462c0819:PsiDirectoryNode" />
<item name="util" 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="cloud" 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" />
......@@ -542,14 +509,14 @@
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" 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="cloud" 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" />
......@@ -557,22 +524,29 @@
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" 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="cloud" 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="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</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" />
</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" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -580,6 +554,7 @@
<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" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -588,6 +563,7 @@
<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" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -597,6 +573,7 @@
<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>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -608,6 +585,37 @@
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="controllers" 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="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" 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>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -715,7 +723,7 @@
</option>
<option name="contentProportion" value="0.18939394" />
</component>
<component name="RunManager" selected="Spring Boot.CloudApplication">
<component name="RunManager" selected="JUnit.GatewayHttpApiTest">
<configuration name="iotgateway:cloud [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
......@@ -754,44 +762,6 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:gateway [bootJar]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/gateway" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="bootJar" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:gateway [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/gateway" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="build" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="CloudHttpApiTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.cloud.test" />
<extension name="coverage">
......@@ -807,6 +777,36 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="ContractTester" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.contract.test" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.contract.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.contract" />
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.contract.ContractTester" />
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</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">
<runConfiguration name="CloudApplication" type="Spring Boot" />
<runConfiguration name="GatewayApplication" type="Spring Boot" />
......@@ -835,23 +835,23 @@
</method>
</configuration>
<list>
<item itemvalue="Gradle.iotgateway:cloud [test]" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="Multirun.iotgateway" />
<item itemvalue="Spring Boot.GatewayApplication" />
<item itemvalue="Spring Boot.CloudApplication" />
<item itemvalue="Spring Boot.ContractApplication" />
<item itemvalue="Gradle.iotgateway:gateway [build]" />
<item itemvalue="Gradle.iotgateway:gateway [bootJar]" />
<item itemvalue="Gradle.iotgateway:cloud [test]" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
</list>
<recent_temporary>
<list>
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [test]" />
<item itemvalue="Gradle.iotgateway:gateway [bootJar]" />
<item itemvalue="Gradle.iotgateway:gateway [build]" />
</list>
</recent_temporary>
</component>
......@@ -871,7 +871,8 @@
<workItem from="1557364868133" duration="620000" />
<workItem from="1557365602468" duration="84502000" />
<workItem from="1557987857812" duration="17623000" />
<workItem from="1558076620952" duration="30897000" />
<workItem from="1558076620952" duration="30942000" />
<workItem from="1558531083647" duration="16287000" />
</task>
<task id="LOCAL-00001" summary="git init">
<created>1556204675975</created>
......@@ -1013,43 +1014,50 @@
<option name="project" value="LOCAL" />
<updated>1558333955632</updated>
</task>
<option name="localTasksCounter" value="21" />
<task id="LOCAL-00021" summary="document controller">
<created>1558351290198</created>
<option name="number" value="00021" />
<option name="presentableId" value="LOCAL-00021" />
<option name="project" value="LOCAL" />
<updated>1558351290198</updated>
</task>
<option name="localTasksCounter" value="22" />
<servers />
</component>
<component name="TestHistory">
<history-entry file="iotgateway_cloud_[test] - 2019.05.17 at 14h 54m 31s.xml">
<configuration name="iotgateway:cloud [test]" configurationId="GradleRunConfiguration" />
<history-entry file="CloudHttpApiTest - 2019.05.22 at 21h 55m 06s.xml">
<configuration name="CloudHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_gateway_[test] - 2019.05.17 at 14h 54m 40s.xml">
<configuration name="iotgateway:gateway [test]" configurationId="GradleRunConfiguration" />
<history-entry file="DeviceContractTester - 2019.05.23 at 14h 41m 23s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_gateway_[test] - 2019.05.17 at 14h 55m 00s.xml">
<configuration name="iotgateway:gateway [test]" configurationId="GradleRunConfiguration" />
<history-entry file="DeviceContractTester - 2019.05.23 at 14h 42m 56s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_cloud_[test] - 2019.05.17 at 15h 04m 45s.xml">
<configuration name="iotgateway:cloud [test]" configurationId="GradleRunConfiguration" />
<history-entry file="GatewayContractTester - 2019.05.23 at 15h 17m 09s.xml">
<configuration name="GatewayContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_gateway_[test] - 2019.05.17 at 15h 05m 05s.xml">
<configuration name="iotgateway:gateway [test]" configurationId="GradleRunConfiguration" />
<history-entry file="GatewayContractTester - 2019.05.23 at 15h 17m 53s.xml">
<configuration name="GatewayContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_gateway_[test] - 2019.05.17 at 15h 06m 26s.xml">
<configuration name="iotgateway:gateway [test]" configurationId="GradleRunConfiguration" />
<history-entry file="DeviceContractTester - 2019.05.23 at 15h 36m 13s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_gateway_[test] - 2019.05.17 at 15h 07m 30s.xml">
<configuration name="iotgateway:gateway [test]" configurationId="GradleRunConfiguration" />
<history-entry file="ContractTester - 2019.05.23 at 15h 38m 16s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_cloud_[test] - 2019.05.17 at 15h 12m 07s.xml">
<configuration name="iotgateway:cloud [test]" configurationId="GradleRunConfiguration" />
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 14m 20s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="iotgateway_cloud_[test] - 2019.05.17 at 15h 24m 17s.xml">
<configuration name="iotgateway:cloud [test]" configurationId="GradleRunConfiguration" />
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 32m 02s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="CloudHttpApiTest - 2019.05.20 at 13h 08m 56s.xml">
<configuration name="CloudHttpApiTest" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 32m 39s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="230937000" />
<option name="totallyTimeSpent" value="247269000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -1062,19 +1070,18 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22068231" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2228145" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" />
<window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Web" order="5" side_tool="true" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" visible="true" weight="0.30178174" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.20824054" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.41759464" />
<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="Find" order="3" sideWeight="0.4989339" weight="0.5033408" />
<window_info anchor="bottom" id="Run" order="4" sideWeight="0.49840087" weight="0.2583519" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.43541202" />
<window_info anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.33296213" />
<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="Inspection" order="7" weight="0.4" />
......@@ -1092,7 +1099,7 @@
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Maven" order="3" />
<window_info anchor="right" id="Palette" order="4" />
<window_info anchor="right" id="Gradle" order="5" visible="true" weight="0.23773988" />
<window_info anchor="right" id="Gradle" order="5" visible="true" weight="0.1076759" />
<window_info anchor="right" id="Database" order="6" weight="0.17430703" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Bean Validation" order="8" weight="0.32932165" />
......@@ -1145,411 +1152,391 @@
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<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/InputStreamResource.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="44" column="13" selection-start-line="44" selection-start-column="13" selection-end-line="44" selection-end-column="13" />
<state relative-caret-position="324">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<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">
<state relative-caret-position="288">
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
<state relative-caret-position="486">
<caret line="35" column="30" selection-start-line="35" selection-start-column="30" selection-end-line="35" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
<state relative-caret-position="306">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="210" column="45" selection-start-line="210" selection-start-column="45" selection-end-line="210" selection-end-column="45" />
<state relative-caret-position="414">
<caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
<folding>
<element signature="e#830#831#0" expanded="true" />
<element signature="e#854#855#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/.gitignore">
<provider selected="true" editor-type-id="text-editor" />
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/gradle/wrapper/gradle-wrapper.properties">
<provider selected="true" editor-type-id="text-editor" />
<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">
<state relative-caret-position="288">
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/RuntimeException.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">
<state relative-caret-position="213">
<caret line="78" column="11" selection-start-line="78" selection-start-column="11" selection-end-line="78" selection-end-column="11" />
<state relative-caret-position="270">
<caret line="23" column="33" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
<folding>
<element signature="e#2364#2365#0" expanded="true" />
<element signature="e#2401#2402#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DeviceRepository.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
<state relative-caret-position="252">
<caret line="22" selection-start-line="22" selection-end-line="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="519">
<caret line="58" column="1" lean-forward="true" selection-start-line="58" selection-start-column="1" selection-end-line="58" selection-end-column="1" />
<state relative-caret-position="180">
<caret line="15" selection-start-line="15" selection-end-line="15" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/nio/file/StandardCopyOption.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/http/ResponseEntity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396">
<caret line="45" column="16" lean-forward="true" selection-start-line="45" selection-start-column="16" selection-end-line="45" selection-end-column="16" />
<state relative-caret-position="137">
<caret line="72" column="13" selection-start-line="72" selection-start-column="13" selection-end-line="72" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/nio/file/Path.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/http/CacheControl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-4179">
<caret line="97" column="17" selection-start-line="97" selection-start-column="17" selection-end-line="97" selection-end-column="17" />
<state relative-caret-position="255">
<caret line="126" column="42" selection-start-line="126" selection-start-column="30" selection-end-line="126" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.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">
<state relative-caret-position="395">
<caret line="31" column="18" selection-start-line="31" selection-start-column="18" selection-end-line="31" selection-end-column="18" />
<state relative-caret-position="-474">
<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>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.3.9.Final/e0922b9cc0621641bdec33b4e2869d033f918a4c/hibernate-core-5.3.9.Final-sources.jar!/org/hibernate/mapping/SimpleValue.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="174">
<caret line="485" column="18" selection-start-line="485" selection-start-column="18" selection-end-line="485" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.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">
<state relative-caret-position="144">
<caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
<state relative-caret-position="504">
<caret line="43" column="1" lean-forward="true" selection-start-line="43" selection-start-column="1" selection-end-line="43" selection-end-column="1" />
<folding>
<element signature="e#422#423#0" expanded="true" />
<element signature="e#491#492#0" expanded="true" />
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.1.4.RELEASE/2edd9ce8f7fe3dafb83eef9248b882abc6fe6192/spring-boot-autoconfigure-2.1.4.RELEASE-sources.jar!/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="174">
<caret line="136" column="50" selection-start-line="136" selection-start-column="50" selection-end-line="136" selection-end-column="50" />
<state relative-caret-position="182">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Throwable.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="10" column="26" selection-start-line="10" selection-start-column="26" selection-end-line="10" selection-end-column="26" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#399#400#0" expanded="true" />
<element signature="e#466#467#0" expanded="true" />
</folding>
<state relative-caret-position="-1492">
<caret line="113" column="13" selection-start-line="113" selection-start-column="13" selection-end-line="113" selection-end-column="13" />
</state>
</provider>
</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/util/ThrowingFunction.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="261">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
<state relative-caret-position="306">
<caret line="17" lean-forward="true" selection-start-line="17" selection-end-line="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.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">
<state relative-caret-position="-97">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<state relative-caret-position="180">
<caret line="10" column="31" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="31" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Icon.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">
<state relative-caret-position="162">
<caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
<state relative-caret-position="90">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Manufacturer.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">
<state relative-caret-position="162">
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
<state relative-caret-position="-1099">
<caret line="40" column="50" lean-forward="true" selection-start-line="40" selection-start-column="50" selection-end-line="40" selection-end-column="50" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.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">
<state relative-caret-position="288">
<caret line="22" column="4" selection-start-line="22" selection-start-column="4" selection-end-line="22" selection-end-column="24" />
<state relative-caret-position="215">
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" />
</state>
</provider>
</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/ByteArrayResource.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$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="42" column="44" lean-forward="true" selection-start-line="42" selection-start-column="44" selection-end-line="42" selection-end-column="44" />
<state relative-caret-position="572">
<caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" />
<folding>
<element signature="e#1787#1788#0" expanded="true" />
<element signature="e#1844#1845#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</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/AbstractResource.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="162">
<caret line="43" column="22" selection-start-line="43" selection-start-column="22" selection-end-line="43" selection-end-column="22" />
<state relative-caret-position="126">
<caret line="13" column="54" selection-start-line="13" selection-start-column="54" selection-end-line="13" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java">
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="339">
<caret line="38" column="5" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<state relative-caret-position="388">
<caret line="31" selection-start-line="31" selection-end-line="31" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.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/Response.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="12" column="1" selection-start-line="12" selection-start-column="1" selection-end-line="12" selection-end-column="1" />
<state relative-caret-position="-1061">
<caret line="16" column="21" lean-forward="true" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/resources/application.properties">
<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/EthGetTransactionReceipt.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="7" column="30" selection-start-line="7" selection-start-column="30" selection-end-line="7" selection-end-column="30" />
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/model/PrivacyChoiceMessage.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/methods/response/TransactionReceipt.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
<state relative-caret-position="-990">
<caret line="26" column="28" selection-start-line="26" selection-start-column="19" selection-end-line="26" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/web/multipart/MultipartFile.java">
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudApplicationTests.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1118">
<caret line="88" column="11" selection-start-line="88" selection-start-column="11" selection-end-line="88" selection-end-column="11" />
<state relative-caret-position="108">
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
</state>
</provider>
</entry>
<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/pojo/PrivacyChoiceIndex.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="594">
<caret line="35" column="30" selection-start-line="35" selection-start-column="30" selection-end-line="35" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="162">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.1.4.RELEASE/fc28861fbd06b8aa6d151f8810a7748a86f1f155/spring-boot-2.1.4.RELEASE-sources.jar!/org/springframework/boot/SpringApplication.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.1.6.RELEASE/d6c2a24d22131dd891c73ebc3c9ab3ee00fcbb8f/spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/repository/CrudRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="803" column="21" selection-start-line="803" selection-start-column="21" selection-end-line="803" selection-end-column="21" />
<state relative-caret-position="210">
<caret line="35" column="20" selection-start-line="35" selection-start-column="20" selection-end-line="35" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.1.6.RELEASE/8835ea6a3a75e4efc37f417d4a25353a8198768d/spring-test-5.1.6.RELEASE-sources.jar!/org/springframework/mock/web/MockMultipartFile.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/PrivacyChoiceIndexRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="78" column="11" selection-start-line="78" selection-start-column="11" selection-end-line="78" selection-end-column="11" />
<state relative-caret-position="90">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java">
<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">
<state relative-caret-position="801">
<caret line="52" column="33" lean-forward="true" selection-start-line="52" selection-start-column="33" selection-end-line="52" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="162">
<caret line="15" column="20" lean-forward="true" selection-start-line="15" selection-start-column="20" selection-end-line="15" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/FunctionalInterface.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">
<state relative-caret-position="545">
<caret line="67" column="18" selection-start-line="67" selection-start-column="18" selection-end-line="67" selection-end-column="18" />
<state relative-caret-position="108">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Supplier.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
<state relative-caret-position="90">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
</state>
</provider>
</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/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="537">
<caret line="70" column="5" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="90">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state>
</provider>
</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/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/SensitiveUser.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1">
<caret line="125" column="58" lean-forward="true" selection-start-line="125" selection-start-column="22" selection-end-line="125" selection-end-column="58" />
<state relative-caret-position="162">
<caret line="19" column="26" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.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">
<state relative-caret-position="108">
<caret line="12" column="37" selection-start-line="12" selection-start-column="37" selection-end-line="12" selection-end-column="37" />
<state relative-caret-position="414">
<caret line="31" column="5" lean-forward="true" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="9" column="73" selection-start-line="9" selection-start-column="69" selection-end-line="9" selection-end-column="73" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="288">
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="90">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/UserRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
<state relative-caret-position="108">
<caret line="8" column="27" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.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">
<state relative-caret-position="288">
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
<state relative-caret-position="267">
<caret line="23" column="74" selection-start-line="23" selection-start-column="16" selection-end-line="23" selection-end-column="74" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.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">
<state relative-caret-position="252">
<caret line="22" selection-start-line="22" selection-end-line="22" />
<state relative-caret-position="492">
<caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<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">
<state relative-caret-position="180">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<state relative-caret-position="342">
<caret line="47" column="30" selection-start-line="47" selection-start-column="30" selection-end-line="47" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="23" column="33" lean-forward="true" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#686#687#0" expanded="true" />
<element signature="e#738#739#0" expanded="true" />
<element signature="e#1724#1725#0" expanded="true" />
<element signature="e#1790#1791#0" expanded="true" />
</folding>
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<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">
<state relative-caret-position="576">
<caret line="38" column="5" lean-forward="true" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<folding>
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
<state relative-caret-position="303">
<caret line="27" column="16" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="421">
<caret line="58" column="4" selection-start-line="58" selection-start-column="4" selection-end-line="66" selection-end-column="5" />
<state relative-caret-position="186">
<caret line="180" column="34" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.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="200">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" />
<state relative-caret-position="1440">
<caret line="125" column="8" lean-forward="true" selection-start-line="125" selection-start-column="8" selection-end-line="125" selection-end-column="8" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.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">
<state relative-caret-position="414">
<caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
<state relative-caret-position="483">
<caret line="66" column="55" selection-start-line="66" selection-start-column="55" selection-end-line="66" selection-end-column="55" />
<folding>
<element signature="e#830#831#0" expanded="true" />
<element signature="e#854#855#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</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/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="455">
<caret line="44" column="5" lean-forward="true" selection-start-line="44" selection-start-column="5" selection-end-line="44" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="328">
<caret line="119" column="38" selection-start-line="119" selection-start-column="38" selection-end-line="119" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.java">
<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">
<state relative-caret-position="200">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
<state relative-caret-position="810">
<caret line="57" column="122" lean-forward="true" selection-start-line="57" selection-start-column="122" selection-end-line="57" selection-end-column="122" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" selection-start-line="4" selection-end-line="4" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<caret line="92" column="58" lean-forward="true" selection-start-line="92" selection-start-column="58" selection-end-line="92" selection-end-column="58" />
</state>
</provider>
</entry>
......
......@@ -108,7 +108,7 @@ public class DefaultData implements ApplicationRunner {
.build();
Document document = documentService.add(new MockMultipartFile("file", "test.txt",
"text/plain", "testFileStirng".getBytes()))
"text/plain", "This is fake IOT Device testing file.".getBytes()))
.orElse(Document.builder().build());
PrivacyPolicyReport oxygenPrivacyPolicyReport = PrivacyPolicyReport.builder()
......@@ -240,7 +240,7 @@ public class DefaultData implements ApplicationRunner {
.build();
document = documentService.add(new MockMultipartFile("file", "test.txt",
"text/plain", "testFileStirng".getBytes()))
"text/plain", "This is fake IOT Device testing file.".getBytes()))
.orElse(Document.builder().build());
PrivacyPolicyReport sensorPrivacyPolicyReport = PrivacyPolicyReport.builder()
......
......@@ -5,6 +5,7 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.cloud.services.DeviceService;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyPolicyReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.CacheControl;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Optional;
......@@ -22,13 +23,15 @@ public class DeviceController {
this.privacyPolicyReportService = privacyPolicyReportService;
}
//新增裝置
@PostMapping("/device")
public ResponseEntity<Device> addDevice(@RequestBody Device device) {
return deviceService.add(device)
.map(ResponseEntity::ok)
.orElseGet(()->ResponseEntity.noContent().build());
.orElseGet(()->ResponseEntity.noContent().cacheControl(CacheControl.noCache()).build());
}
//讀取裝置
@GetMapping("/device/{udn}")
public ResponseEntity<Device> readDevice(@PathVariable(value = "udn",required = false) String udn) {
return deviceService.readByUDN(udn)
......@@ -36,6 +39,7 @@ public class DeviceController {
.orElseGet(()->ResponseEntity.noContent().build());
}
//讀取所有裝置
@GetMapping("/device")
public ResponseEntity<Iterable<Device>> readDevices() {
return Optional.of(deviceService.readll())
......@@ -43,6 +47,7 @@ public class DeviceController {
.orElseGet(()->ResponseEntity.noContent().build());
}
//新增PrivacyPolicyReport
@PostMapping("/privacy")
public ResponseEntity<PrivacyPolicyReport> addPrivacyPolicyReport(@RequestBody PrivacyPolicyReport privacyPolicy) {
return privacyPolicyReportService.add(privacyPolicy)
......@@ -50,6 +55,7 @@ public class DeviceController {
.orElseGet(()->ResponseEntity.noContent().build());
}
//透過UDN讀取PrivacyPolicyReport
@GetMapping("/privacy/{UDN}")
public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "UDN") String UDN) {
return privacyPolicyReportService.readByDevice(UDN)
......
......@@ -25,6 +25,7 @@ public class DocumentController {
this.privacyPolicyReportService = privacyPolicyReportService;
}
//上傳檔案
@PostMapping
public ResponseEntity<Document> uploadFile(@RequestPart MultipartFile file) throws IOException {
return documentService.add(file)
......@@ -32,11 +33,12 @@ public class DocumentController {
.orElseGet(() -> ResponseEntity.noContent().build());
}
//透過裝置ID取得檔案
@GetMapping("/{udn}")
public ResponseEntity<ByteArrayResource> findFile(@PathVariable String udn) {
return privacyPolicyReportService.readByDevice(udn)
.map(privacyReport->privacyReport.getDocument().getId())
.flatMap(id->documentService.readFile(id))
.map(privacyReport -> privacyReport.getDocument().getId())
.flatMap(id -> documentService.readFile(id))
.map(document -> ResponseEntity.ok()
.contentType(MediaType.parseMediaType(document.getFileType()))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename* = UTF-8''" + CodeTools.encode(document.getFileName()))
......
......@@ -17,6 +17,7 @@ public class GatewayController {
this.service = service;
}
//表達隱私偏好
@PostMapping("/choice")
public ResponseEntity<PrivacyChoice> setPrivacyChoice(@RequestBody PrivacyChoice privacyChoice) {
return service.add(privacyChoice)
......@@ -24,6 +25,7 @@ public class GatewayController {
.orElseGet(() -> ResponseEntity.noContent().build());
}
//取得所有隱私偏好紀錄
@GetMapping("/choice")
public ResponseEntity<Iterable<PrivacyChoice>> readPrivacyChoice() {
return Optional.of(service.readll())
......@@ -31,10 +33,12 @@ public class GatewayController {
.orElseGet(() -> ResponseEntity.noContent().build());
}
//透過裝置取得所有隱私偏好
@GetMapping("/choice/{udn}")
public ResponseEntity<Iterable<PrivacyChoice>> readPrivacyChoiceByDevice(@PathVariable String udn) {
return Optional.ofNullable(service.readPrivacyChoiceByDevice(udn))
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package edu.prlab.tyler.iotgateway.cloud.util;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.function.Function;
public class CodeTools {
private CodeTools() {
......@@ -15,5 +16,5 @@ public class CodeTools {
return "Error: " + e.getMessage();
}
}
}
......@@ -7,7 +7,6 @@ import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.web3j.protocol.core.methods.response.TransactionReceipt;
import org.web3j.protocol.core.methods.response.Web3ClientVersion;
import org.web3j.protocol.http.HttpService;
import org.web3j.quorum.Quorum;
import org.web3j.tx.ClientTransactionManager;
......@@ -29,8 +28,8 @@ public class ContractTester {
DefaultGasProvider.GAS_LIMIT
);
private String deviceContractAddress;
private String gateWayContractAddress;
private static String deviceContractAddress;
private static String gatewayContractAddress;
@BeforeClass
public static void setUp() {
......@@ -41,32 +40,34 @@ public class ContractTester {
// Credentials credentials = Credentials.create(privateKey);
Quorum quorum = Quorum.build(new HttpService(rpcUrl));
Web3ClientVersion web3ClientVersion = quorum.web3ClientVersion().sendAsync().get();
String clientVersion = web3ClientVersion.getWeb3ClientVersion();
Assert.assertNotNull(clientVersion);
String userAddress = quorum.ethAccounts().send().getAccounts().get(quorum.ethAccounts().send().getAccounts().size() - 1);
Assert.assertNotNull(userAddress);
ClientTransactionManager manager = new ClientTransactionManager(quorum, userAddress);
//Device
//部屬裝置合約
DeviceContract deviceContract = DeviceContract.deploy(quorum, manager, DEFAULT_GAS_PROVIDER).send();
deviceContractAddress = deviceContract.getContractAddress();
Assert.assertNotNull(deviceContract);
Assert.assertNotNull(deviceContractAddress);
System.out.println("device 合約位置:" + deviceContractAddress);
//設定裝置資訊
TransactionReceipt receipt;
receipt = deviceContract.setdeviceinfo("testdevice").send();
Assert.assertNotNull(receipt);
//設定隱私政策
receipt = deviceContract.setpp("testpp").send();
Assert.assertNotNull(receipt);
//取得裝置資訊
String deviceInfo = deviceContract.deviceInfo().send();
Assert.assertNotNull(deviceInfo);
System.out.println(deviceInfo);
//取得隱私政策
String privacyPolicy = deviceContract.privacypolicy().send();
Assert.assertNotNull(privacyPolicy);
System.out.println(privacyPolicy);
......@@ -97,4 +98,31 @@ public class ContractTester {
// System.out.println("binded : " + bindedString);
}
@Test
public void test2Contract() throws Exception {
Quorum quorum = Quorum.build(new HttpService(rpcUrl));
String userAddress = quorum.ethAccounts().send().getAccounts().get(quorum.ethAccounts().send().getAccounts().size() - 1);
Assert.assertNotNull(userAddress);
ClientTransactionManager manager = new ClientTransactionManager(quorum, userAddress);
GatewayContract gatewayContract = GatewayContract.deploy(quorum, manager, DEFAULT_GAS_PROVIDER).send();
gatewayContractAddress = gatewayContract.getContractAddress();
Assert.assertNotNull(gatewayContract);
Assert.assertNotNull(gatewayContractAddress);
System.out.println("gateway 合約位置:" + gatewayContractAddress);
//根據合約地址取得合約實體
DeviceContract deviceContract = DeviceContract.load(deviceContractAddress, quorum, manager, DEFAULT_GAS_PROVIDER);
//設定Buyer
TransactionReceipt receipt = deviceContract.setBuyer(gatewayContract.getContractAddress()).send();
Assert.assertNotNull(receipt);
System.out.println(receipt);
receipt = gatewayContract.bindRequest(deviceContractAddress).send();
Assert.assertNotNull(receipt);
System.out.println(receipt);
}
}
......@@ -60,12 +60,11 @@ public class GatewayController {
.orElseGet(() -> ResponseEntity.noContent().build());
}
// TODO
//根據使用者取得在此gateway上該使用者的隱私選擇列表(根據時間排序),
//暫時從DB撈,無特定使用者
@GetMapping("/choice")
public ResponseEntity<Iterable<PrivacyChoiceResponse>> readPrivacyChoiceRecordsByUser() {
return privacyService.getPrivacyPolicyChoices()
// TODO 針對使用者取得隱私選擇列表
//根據使用者取得在此gateway上該使用者的隱私選擇列表
@GetMapping("/choice/{account}")
public ResponseEntity<Iterable<PrivacyChoiceResponse>> readPrivacyChoiceRecordsByUser(@PathVariable String account) {
return privacyService.getPrivacyPolicyChoicesByAccount(account)
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
......
......@@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository;
@Repository
public interface DeviceIndexRepository extends CrudRepository<DeviceIndex, String> {
boolean findByUdnContains(String udn);
}
package edu.prlab.tyler.iotgateway.gateway.services;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.gateway.pojo.DeviceIndex;
import edu.prlab.tyler.iotgateway.gateway.repositories.DeviceIndexRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
@Service
public class DeviceService {
......@@ -21,11 +24,16 @@ public class DeviceService {
//TODO bind and read from blockchain
public Optional<Device> bindDeviceAndGateway(String udn) {
return remoteService.readDevice(udn);
return Optional.of(deviceIndexRepository.save(DeviceIndex.builder()
.udn(udn).build()))
.flatMap(deviceIndex -> remoteService.readDevice(udn));
}
public Optional<Iterable<Device>> readDevices() {
return remoteService.readDevices();
return remoteService.readDevices()
.map(devices -> StreamSupport.stream(devices.spliterator(), false)
.filter(device -> deviceIndexRepository.existsById(device.getUdn()))
.collect(Collectors.toList()));
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse;
import edu.prlab.tyler.iotgateway.gateway.pojo.PrivacyChoiceIndex;
import edu.prlab.tyler.iotgateway.gateway.repositories.PrivacyChoiceIndexRepository;
import edu.prlab.tyler.iotgateway.gateway.repositories.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -16,11 +17,14 @@ import java.util.stream.StreamSupport;
@Service
public class PrivacyService {
private PrivacyChoiceIndexRepository privacyChoiceIndexRepository;
private UserRepository userRepository;
private RemoteService remoteService;
@Autowired
public PrivacyService(PrivacyChoiceIndexRepository privacyChoiceIndexRepository, RemoteService remoteService) {
public PrivacyService(PrivacyChoiceIndexRepository privacyChoiceIndexRepository, RemoteService remoteService,
UserRepository userRepository) {
this.privacyChoiceIndexRepository = privacyChoiceIndexRepository;
this.userRepository = userRepository;
this.remoteService = remoteService;
}
......@@ -48,9 +52,10 @@ public class PrivacyService {
// new ParameterizedTypeReference<Iterable<PrivacyChoice>>() { }).getBody());
// }
public Optional<Iterable<PrivacyChoiceResponse>> getPrivacyPolicyChoices() {
public Optional<Iterable<PrivacyChoiceResponse>> getPrivacyPolicyChoicesByAccount(String account) {
return remoteService.readPrivacyChoices()
.map(choices -> StreamSupport.stream(choices.spliterator(), false)
.filter(privacyChoice -> privacyChoice.getPrivacyContent().getUser().getAccount().equals(account))
.map(choice -> privacyChoiceIndexRepository.findById(choice.getId())
.map(choiceIndex -> PrivacyChoiceResponse.builder()
.id(choiceIndex.getId())
......
......@@ -57,18 +57,6 @@ public class GatewayHttpApiTest {
.andReturn();
Assert.assertNotNull(result);
//取得裝置清單
result = mvc.perform(MockMvcRequestBuilders
.get("/device")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
Iterable<Device> devices = mapper.readValue(result.getResponse().getContentAsString(),
new TypeReference<Iterable<Device>>() {
});
Assert.assertNotNull(devices);
//綁定裝置
result = mvc.perform(MockMvcRequestBuilders
.post("/device/" + "a1252c49-4188-4e6d-a32e-66604c664fb8")
......@@ -81,6 +69,18 @@ public class GatewayHttpApiTest {
Device device= mapper.readValue(result.getResponse().getContentAsString(), Device.class);
Assert.assertNotNull(device);
//取得裝置清單
result = mvc.perform(MockMvcRequestBuilders
.get("/device")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
Iterable<Device> devices = mapper.readValue(result.getResponse().getContentAsString(),
new TypeReference<Iterable<Device>>() {
});
Assert.assertNotNull(devices);
//拿取隱私政策
result = mvc.perform(MockMvcRequestBuilders
.get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8")
......@@ -117,15 +117,7 @@ public class GatewayHttpApiTest {
//取得所有隱私偏好
result = mvc.perform(MockMvcRequestBuilders
.get("/choice")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
Assert.assertNotNull(result);
result = mvc.perform(MockMvcRequestBuilders
.get("/choice")
.get("/choice"+"/test1")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
......
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