diff --git a/.idea/itlab2_rmi.iml b/.idea/itlab2_rmi.iml index b107a2dd81165eaaf682ad3da030668b937fbb6c..3a66664e1dc34ac62daaa57e244a84c9abbd0b4f 100644 --- a/.idea/itlab2_rmi.iml +++ b/.idea/itlab2_rmi.iml @@ -7,5 +7,8 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="eventservice" level="project" /> + <orderEntry type="library" name="pushconsumer" level="project" /> + <orderEntry type="library" name="pushsupplier" level="project" /> </component> </module> \ No newline at end of file diff --git a/.idea/libraries/eventservice.xml b/.idea/libraries/eventservice.xml new file mode 100644 index 0000000000000000000000000000000000000000..42b03ca403fced8895b374722772edb404a73f4a --- /dev/null +++ b/.idea/libraries/eventservice.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="eventservice"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/eventservice.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/pushconsumer.xml b/.idea/libraries/pushconsumer.xml new file mode 100644 index 0000000000000000000000000000000000000000..30eb95a7bd5dd201cb523f07e0a5df8654814732 --- /dev/null +++ b/.idea/libraries/pushconsumer.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="pushconsumer"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/pushconsumer.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/pushsupplier.xml b/.idea/libraries/pushsupplier.xml new file mode 100644 index 0000000000000000000000000000000000000000..32597085886c5f559303e13242ffd48e7f8991bf --- /dev/null +++ b/.idea/libraries/pushsupplier.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="pushsupplier"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/pushsupplier.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d8333500bbefab637bc8994aa95bf958c6454b5..538c92a01ec03161d3d49b513025701917236c14 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -41,13 +41,6 @@ <component name="EntryPointsManager"> <entry_points version="2.0" /> </component> - <component name="MavenImportPreferences"> - <option name="generalSettings"> - <MavenGeneralSettings> - <option name="mavenHome" value="Bundled (Maven 3)" /> - </MavenGeneralSettings> - </option> - </component> <component name="ProjectLevelVcsManager" settingsEditedManually="false"> <OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Remove" /> diff --git a/.idea/workspace.xml b/.idea/workspace.xml index dc6b395771d92d2e84b3cf36368f1ac09ab26940..1b31904f54ef40229e86301c9e926134860e53c6 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> - <list default="true" id="0e10c168-b55e-46f4-807b-697d67952cf6" name="Default" comment="" /> + <list default="true" id="0e10c168-b55e-46f4-807b-697d67952cf6" name="Default" comment=""> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/eventservice.xml" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/pushconsumer.xml" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/pushsupplier.xml" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/eventserv.bat" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/eventserv2.bat" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/policy" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/pushconsumer.bat" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/pushsupplier.bat" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/itlab2_rmi.iml" afterPath="$PROJECT_DIR$/.idea/itlab2_rmi.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/eventservice/impl/PullConsumerProxyImpl.java" afterPath="$PROJECT_DIR$/eventservice/impl/PullConsumerProxyImpl.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/eventservice/impl/PushConsumerProxyImpl.java" afterPath="$PROJECT_DIR$/eventservice/impl/PushConsumerProxyImpl.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/exercise/PullConsumer.java" afterPath="$PROJECT_DIR$/exercise/PullConsumer.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/exercise/PushConsumer.java" afterPath="$PROJECT_DIR$/exercise/PushConsumer.java" /> + </list> <ignored path="itlab2_rmi.iws" /> <ignored path=".idea/workspace.xml" /> <ignored path=".idea/dataSources.local.xml" /> @@ -22,11 +38,11 @@ </component> <component name="FileEditorManager"> <leaf> - <file leaf-file-name="PullConsumerProxyImpl.java" pinned="false" current-in-tab="true"> + <file leaf-file-name="PullConsumerProxyImpl.java" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/eventservice/impl/PullConsumerProxyImpl.java"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.23076923"> - <caret line="15" column="37" selection-start-line="15" selection-start-column="37" selection-end-line="15" selection-end-column="37" /> + <state vertical-scroll-proportion="0.0"> + <caret line="45" column="58" selection-start-line="45" selection-start-column="58" selection-end-line="45" selection-end-column="58" /> <folding> <element signature="imports" expanded="true" /> </folding> @@ -34,6 +50,102 @@ </provider> </entry> </file> + <file leaf-file-name="PullConsumer.java" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/exercise/PullConsumer.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.2769231"> + <caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PushConsumer.java" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/exercise/PushConsumer.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="21" column="35" selection-start-line="21" selection-start-column="35" selection-end-line="21" selection-end-column="35" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PushConsumer.class" pinned="false" current-in-tab="false"> + <entry file="jar://$PROJECT_DIR$/pushconsumer.jar!/consumers/PushConsumer.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-11.592592"> + <caret line="70" column="30" selection-start-line="0" selection-start-column="0" selection-end-line="109" selection-end-column="0" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PullConsumerProxyImpl.class" pinned="false" current-in-tab="false"> + <entry file="jar://$PROJECT_DIR$/eventservice.jar!/eventservice/impl/PullConsumerProxyImpl.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-20.148148"> + <caret line="41" column="17" selection-start-line="41" selection-start-column="17" selection-end-line="41" selection-end-column="17" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PushConsumerProxyImpl.java" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/eventservice/impl/PushConsumerProxyImpl.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="36" column="30" selection-start-line="36" selection-start-column="30" selection-end-line="36" selection-end-column="30" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="Event.class" pinned="false" current-in-tab="false"> + <entry file="jar://$PROJECT_DIR$/pushconsumer.jar!/eventservice/Event.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PushSupplier.class" pinned="false" current-in-tab="false"> + <entry file="jar://$PROJECT_DIR$/pushsupplier.jar!/suppliers/PushSupplier.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="16.74074"> + <caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PushSupplierProxyImpl.class" pinned="false" current-in-tab="false"> + <entry file="jar://$PROJECT_DIR$/eventservice.jar!/eventservice/impl/PushSupplierProxyImpl.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="PullSupplierProxyImpl.class" pinned="false" current-in-tab="false"> + <entry file="jar://$PROJECT_DIR$/eventservice.jar!/eventservice/impl/PullSupplierProxyImpl.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + </file> </leaf> </component> <component name="Git.Settings"> @@ -44,11 +156,28 @@ <projects_view /> </option> </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/exercise/PullConsumer.java" /> + <option value="$PROJECT_DIR$/eventservice/impl/PullConsumerProxyImpl.java" /> + <option value="$PROJECT_DIR$/eventservice/impl/PushConsumerProxyImpl.java" /> + <option value="$PROJECT_DIR$/exercise/PushConsumer.java" /> + </list> + </option> + </component> <component name="JsBuildToolGruntFileManager" detection-done="true" /> <component name="JsBuildToolPackageJson" detection-done="true" /> <component name="JsGulpfileManager"> <detection-done>true</detection-done> </component> + <component name="MavenImportPreferences"> + <option name="generalSettings"> + <MavenGeneralSettings> + <option name="mavenHome" value="Bundled (Maven 3)" /> + </MavenGeneralSettings> + </option> + </component> <component name="ProjectFrameBounds"> <option name="x" value="-8" /> <option name="y" value="-8" /> @@ -89,6 +218,56 @@ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> </PATH_ELEMENT> </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="pushsupplier.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="suppliers" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="pushsupplier.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="pushsupplier.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> <PATH> <PATH_ELEMENT> <option name="myItemId" value="itlab2_rmi" /> @@ -99,6 +278,110 @@ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> </PATH_ELEMENT> </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="pushconsumer.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="pushconsumer.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="pushconsumer.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="consumers" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="itlab2_rmi" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice.jar" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiFileNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="eventservice" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="impl" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> <PATH> <PATH_ELEMENT> <option name="myItemId" value="itlab2_rmi" /> @@ -152,6 +435,7 @@ <property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="js-jscs-nodeInterpreter" value="C:\Program Files (x86)\nodejs\node.exe" /> + <property name="SearchEverywhereHistoryKey" value="pushconsumer	PSI	JAVA://consumers.PushConsumer" /> </component> <component name="RunManager"> <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin"> @@ -160,6 +444,65 @@ <option name="PROGRAM_PARAMETERS" /> <method /> </configuration> + <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application"> + <module name="" /> + <option name="ACTIVITY_CLASS" value="" /> + <option name="MODE" value="default_activity" /> + <option name="DEPLOY" value="true" /> + <option name="ARTIFACT_NAME" value="" /> + <option name="TARGET_SELECTION_MODE" value="EMULATOR" /> + <option name="USE_LAST_SELECTED_DEVICE" value="false" /> + <option name="PREFERRED_AVD" value="" /> + <option name="USE_COMMAND_LINE" value="true" /> + <option name="COMMAND_LINE" value="" /> + <option name="WIPE_USER_DATA" value="false" /> + <option name="DISABLE_BOOT_ANIMATION" value="false" /> + <option name="NETWORK_SPEED" value="full" /> + <option name="NETWORK_LATENCY" value="none" /> + <option name="CLEAR_LOGCAT" value="false" /> + <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> + <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" /> + <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> + <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="" /> + <option name="IS_VALID_CLOUD_MATRIX_SELECTION" value="false" /> + <option name="INVALID_CLOUD_MATRIX_SELECTION_ERROR" value="" /> + <option name="IS_VALID_CLOUD_DEVICE_SELECTION" value="false" /> + <option name="INVALID_CLOUD_DEVICE_SELECTION_ERROR" value="" /> + <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" /> + <method /> + </configuration> + <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests"> + <module name="" /> + <option name="TESTING_TYPE" value="0" /> + <option name="INSTRUMENTATION_RUNNER_CLASS" value="" /> + <option name="METHOD_NAME" value="" /> + <option name="CLASS_NAME" value="" /> + <option name="PACKAGE_NAME" value="" /> + <option name="TARGET_SELECTION_MODE" value="EMULATOR" /> + <option name="USE_LAST_SELECTED_DEVICE" value="false" /> + <option name="PREFERRED_AVD" value="" /> + <option name="USE_COMMAND_LINE" value="true" /> + <option name="COMMAND_LINE" value="" /> + <option name="WIPE_USER_DATA" value="false" /> + <option name="DISABLE_BOOT_ANIMATION" value="false" /> + <option name="NETWORK_SPEED" value="full" /> + <option name="NETWORK_LATENCY" value="none" /> + <option name="CLEAR_LOGCAT" value="false" /> + <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> + <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" /> + <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> + <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="" /> + <option name="IS_VALID_CLOUD_MATRIX_SELECTION" value="false" /> + <option name="INVALID_CLOUD_MATRIX_SELECTION_ERROR" value="" /> + <option name="IS_VALID_CLOUD_DEVICE_SELECTION" value="false" /> + <option name="INVALID_CLOUD_DEVICE_SELECTION_ERROR" value="" /> + <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" /> + <method /> + </configuration> <configuration default="true" type="Applet" factoryName="Applet"> <option name="HTML_USED" value="false" /> <option name="WIDTH" value="400" /> @@ -183,6 +526,159 @@ <envs /> <method /> </configuration> + <configuration default="true" type="ArquillianJUnit" factoryName=""> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="arquillianRunConfiguration"> + <value> + <option name="containerStateName" value="" /> + </value> + </option> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="TEST_OBJECT" value="class" /> + <option name="VM_PARAMETERS" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <envs /> + <patterns /> + <method /> + </configuration> + <configuration default="true" type="ArquillianTestNG" factoryName=""> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="arquillianRunConfiguration"> + <value> + <option name="containerStateName" value="" /> + </value> + </option> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SUITE_NAME" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="GROUP_NAME" /> + <option name="TEST_OBJECT" value="CLASS" /> + <option name="VM_PARAMETERS" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="OUTPUT_DIRECTORY" /> + <option name="ANNOTATION_TYPE" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <option name="USE_DEFAULT_REPORTERS" value="false" /> + <option name="PROPERTIES_FILE" /> + <envs /> + <properties /> + <listeners /> + <method /> + </configuration> + <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <option name="myFilePath" /> + <option name="GLUE" /> + <option name="myNameFilter" /> + <option name="myGeneratedName" /> + <option name="MAIN_CLASS_NAME" /> + <option name="VM_PARAMETERS" /> + <option name="PROGRAM_PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="ENABLE_SWING_INSPECTOR" value="false" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <module name="" /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App"> + <option name="BCName" value="" /> + <option name="IOSSimulatorSdkPath" value="" /> + <option name="adlOptions" value="" /> + <option name="airProgramParameters" value="" /> + <option name="appDescriptorForEmulator" value="Android" /> + <option name="debugTransport" value="USB" /> + <option name="debuggerSdkRaw" value="BC SDK" /> + <option name="emulator" value="NexusOne" /> + <option name="emulatorAdlOptions" value="" /> + <option name="fastPackaging" value="true" /> + <option name="fullScreenHeight" value="0" /> + <option name="fullScreenWidth" value="0" /> + <option name="launchUrl" value="false" /> + <option name="launcherParameters"> + <LauncherParameters> + <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" /> + <option name="launcherType" value="OSDefault" /> + <option name="newPlayerInstance" value="false" /> + <option name="playerPath" value="FlashPlayerDebugger.exe" /> + </LauncherParameters> + </option> + <option name="mobileRunTarget" value="Emulator" /> + <option name="moduleName" value="" /> + <option name="overriddenMainClass" value="" /> + <option name="overriddenOutputFileName" value="" /> + <option name="overrideMainClass" value="false" /> + <option name="runTrusted" value="true" /> + <option name="screenDpi" value="0" /> + <option name="screenHeight" value="0" /> + <option name="screenWidth" value="0" /> + <option name="url" value="http://" /> + <option name="usbDebugPort" value="7936" /> + <method /> + </configuration> + <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class"> + <option name="BCName" value="" /> + <option name="launcherParameters"> + <LauncherParameters> + <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" /> + <option name="launcherType" value="OSDefault" /> + <option name="newPlayerInstance" value="false" /> + <option name="playerPath" value="FlashPlayerDebugger.exe" /> + </LauncherParameters> + </option> + <option name="moduleName" value="" /> + <option name="trusted" value="true" /> + <method /> + </configuration> + <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle"> + <ExternalSystemSettings> + <option name="executionName" /> + <option name="externalProjectPath" /> + <option name="externalSystemIdString" value="GRADLE" /> + <option name="scriptParameters" /> + <option name="taskDescriptions"> + <list /> + </option> + <option name="taskNames"> + <list /> + </option> + <option name="vmOptions" /> + </ExternalSystemSettings> + <method /> + </configuration> + <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails"> + <module name="" /> + <setting name="vmparams" value="" /> + <setting name="cmdLine" value="run-app" /> + <setting name="depsClasspath" value="false" /> + <setting name="passParentEnv" value="true" /> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <setting name="launchBrowser" value="false" /> + <method /> + </configuration> <configuration default="true" type="JUnit" factoryName="JUnit"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="" /> @@ -204,6 +700,64 @@ <patterns /> <method /> </configuration> + <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="TEST_OBJECT" value="class" /> + <option name="VM_PARAMETERS" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <envs /> + <patterns /> + <method /> + </configuration> + <configuration default="true" type="JarApplication" factoryName="JAR Application"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="Java Scratch" factoryName="Java Scratch"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <option name="SCRATCH_FILE_ID" value="0" /> + <option name="MAIN_CLASS_NAME" /> + <option name="VM_PARAMETERS" /> + <option name="PROGRAM_PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="ENABLE_SWING_INSPECTOR" value="false" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <module name="" /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> + <method /> + </configuration> + <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <option name="MAIN_CLASS_NAME" /> + <option name="VM_PARAMETERS" /> + <option name="PROGRAM_PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <module name="itlab2_rmi" /> + <envs /> + <method /> + </configuration> <configuration default="true" type="Remote" factoryName="Remote"> <option name="USE_SOCKET_TRANSPORT" value="true" /> <option name="SERVER_MODE" value="false" /> @@ -212,6 +766,12 @@ <option name="PORT" value="5005" /> <method /> </configuration> + <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <envs /> + <method /> + </configuration> <configuration default="true" type="TestNG" factoryName="TestNG"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="" /> @@ -240,20 +800,66 @@ <listeners /> <method /> </configuration> + <configuration default="true" type="TestNGTestDiscovery" factoryName="TestNG Test Discovery" changeList="All"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SUITE_NAME" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="GROUP_NAME" /> + <option name="TEST_OBJECT" value="CLASS" /> + <option name="VM_PARAMETERS" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" /> + <option name="OUTPUT_DIRECTORY" /> + <option name="ANNOTATION_TYPE" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <option name="USE_DEFAULT_REPORTERS" value="false" /> + <option name="PROPERTIES_FILE" /> + <envs /> + <properties /> + <listeners /> + <method /> + </configuration> + <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> + <method /> + </configuration> + <configuration default="true" type="js.build_tools.npm" factoryName="npm"> + <command value="run-script" /> + <scripts /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher"> + <method /> + </configuration> + <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)"> + <method /> + </configuration> </component> <component name="ShelveChangesManager" show_recycled="false" /> + <component name="SvnConfiguration"> + <configuration /> + </component> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> <changelist id="0e10c168-b55e-46f4-807b-697d67952cf6" name="Default" comment="" /> <created>1448890147314</created> <option name="number" value="Default" /> <updated>1448890147314</updated> - <workItem from="1448890149531" duration="463000" /> + <workItem from="1448890149531" duration="4778000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="463000" /> + <option name="totallyTimeSpent" value="4778000" /> </component> <component name="ToolWindowManager"> <frame x="-8" y="-8" width="1040" height="1266" extended-state="6" /> @@ -265,22 +871,22 @@ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.30612245" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> </layout> </component> <component name="VcsContentAnnotationSettings"> @@ -290,11 +896,109 @@ <breakpoint-manager /> <watches-manager /> </component> + <component name="antWorkspaceConfiguration"> + <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" /> + <option name="FILTER_TARGETS" value="false" /> + </component> <component name="editorHistoryManager"> + <entry file="jar://$PROJECT_DIR$/pushconsumer.jar!/eventservice/Proxy.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-2.5185184"> + <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/pushconsumer.jar!/eventservice/EventChannel.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="13" column="17" selection-start-line="13" selection-start-column="17" selection-end-line="13" selection-end-column="17" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/pushconsumer.jar!/eventservice/Event.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/pushsupplier.jar!/suppliers/PushSupplier.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="16.74074"> + <caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/eventservice.jar!/eventservice/impl/PushSupplierProxyImpl.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/eventservice.jar!/eventservice/impl/PullSupplierProxyImpl.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-3.7777777"> + <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/eventservice.jar!/eventservice/impl/PullConsumerProxyImpl.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-20.148148"> + <caret line="41" column="17" selection-start-line="41" selection-start-column="17" selection-end-line="41" selection-end-column="17" /> + <folding /> + </state> + </provider> + </entry> <entry file="file://$PROJECT_DIR$/eventservice/impl/PullConsumerProxyImpl.java"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.23076923"> - <caret line="15" column="37" selection-start-line="15" selection-start-column="37" selection-end-line="15" selection-end-column="37" /> + <state vertical-scroll-proportion="0.0"> + <caret line="45" column="58" selection-start-line="45" selection-start-column="58" selection-end-line="45" selection-end-column="58" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/eventservice/impl/PushConsumerProxyImpl.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="36" column="30" selection-start-line="36" selection-start-column="30" selection-end-line="36" selection-end-column="30" /> + <folding /> + </state> + </provider> + </entry> + <entry file="jar://$PROJECT_DIR$/pushconsumer.jar!/consumers/PushConsumer.class"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-11.592592"> + <caret line="70" column="30" selection-start-line="0" selection-start-column="0" selection-end-line="109" selection-end-column="0" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/exercise/PushConsumer.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="21" column="35" selection-start-line="21" selection-start-column="35" selection-end-line="21" selection-end-column="35" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/exercise/PullConsumer.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.2769231"> + <caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" /> <folding> <element signature="imports" expanded="true" /> </folding> diff --git a/eventserv.bat b/eventserv.bat new file mode 100644 index 0000000000000000000000000000000000000000..cb7adefe9abb650dc1d044dee5dd8f992232d0ac --- /dev/null +++ b/eventserv.bat @@ -0,0 +1,2 @@ +set DIR=D:/Projects/itlab2_rmi +java -Djava.security.policy="file:/%DIR%/policy" -Djava.rmi.server.codebase="file:/%DIR%/eventservice.jar" -Djava.rmi.server.useCodebaseOnly=false -jar eventservice.jar channel diff --git a/eventserv2.bat b/eventserv2.bat new file mode 100644 index 0000000000000000000000000000000000000000..56a9f2766ce696a9af8b1f69cfcfcecf1fe54745 --- /dev/null +++ b/eventserv2.bat @@ -0,0 +1,2 @@ +set DIR=//D:/Projects/itlab2_rmi +java -Djava.security.policy="file:/%DIR%/policy" -Djava.rmi.server.codebase="file:/%DIR%/eventservice2.jar" -Djava.rmi.server.useCodebaseOnly=false -jar eventservice2.jar channel diff --git a/eventservice/impl/PullConsumerProxyImpl.java b/eventservice/impl/PullConsumerProxyImpl.java index 803b4168c5f9db8d0e494e6b5056a8d6a2f760f1..f0d31dda2f2a413d9aa05a158dfc0b7e62df9d02 100644 --- a/eventservice/impl/PullConsumerProxyImpl.java +++ b/eventservice/impl/PullConsumerProxyImpl.java @@ -44,12 +44,5 @@ public class PullConsumerProxyImpl implements Remote, RemotelyPullable, Pushable // Ezt az EventChannelImpl hivja public void push(Event event) throws RemoteException { - synchronized (events) { - if (events.size() >= buffersize) { - events.remove(0); - } - events.add(event); - events.notify(); - } } } diff --git a/eventservice/impl/PushConsumerProxyImpl.java b/eventservice/impl/PushConsumerProxyImpl.java index 7bc706951ade402996d3c526d580a16ddb8cb226..fce8038f81cfccda050767570d1900a9ee0bbb49 100644 --- a/eventservice/impl/PushConsumerProxyImpl.java +++ b/eventservice/impl/PushConsumerProxyImpl.java @@ -14,38 +14,57 @@ implements RemotelyPushable, Unreferenced { private static final long serialVersionUID = 1L; private final RemotelyPushable consumer; - private final ArrayList events; + private final ArrayList<Event> events; private boolean registered; private int buffersize; - PushConsumerProxyImpl(RemotelyPushable consumer, int buffersize) + PushConsumerProxyImpl(RemotelyPushable consumer, int bufferSize) throws RemoteException { - super(); - this.consumer = consumer; - registered = true; - events = new ArrayList(); - this.buffersize = buffersize; + super(); + this.consumer = consumer; + registered = true; + events = new ArrayList<>(); + this.buffersize = bufferSize; } // Ezt az EventChannelImpl hivja. // Ha uj esemeny erkezik, felebreszti a szalat public void push(Event event) throws RemoteException { - /* TODO: implementalni */ + synchronized (events) { + if (events.size() >= buffersize) { + events.remove(0); + } + events.add(event); + events.notify(); + } } // Ez az onallo szal kodja. - // V�gtelen ciklusban fut, am�g a registered �rt�kefalse-ra nem v�ltozik. - // A ciklusban: ha nincs a pufferben esem�ny, addig var, - // amig fel nem ebresztik. Ha fel�bredt, vagy volt esem�ny, + // V�gtelen ciklusban fut, am�g a registered �rt�kefalse-ra nem v�ltozik. + // A ciklusban: ha nincs a pufferben esem�ny, addig var, + // amig fel nem ebresztik. Ha fel�bredt, vagy volt esem�ny, // akkor az ujonnan jott esemeny(eke)t atkuldi a consumer-nek push-sal, - // majd a ciklus kezd�dik el�lr�l - // Figyelj�nk a k�lcs�n�s kiz�r�sra! + // majd a ciklus kezd�dik el�lr�l + // Figyelj�nk a k�lcs�n�s kiz�r�sra! public void run() { - /* TODO: implementalni */ + while(registered) { + try { + synchronized (events) { + while (events.isEmpty()) { + events.wait(); + } + while (events.size() > 0) { + consumer.push(events.remove(0)); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } } // itt jelezzuk a szalnak, hogy vege a futasnak public void unreferenced() { - /* TODO: implementalni */ + registered = false; } } diff --git a/exercise/PullConsumer.java b/exercise/PullConsumer.java index b147c9fe8f60170584b0681e5b7b729a4dd0beb1..3b444b52951170b47637daa0732c62884f46d0c1 100644 --- a/exercise/PullConsumer.java +++ b/exercise/PullConsumer.java @@ -1,3 +1,71 @@ +package exercise; -// TODO: PullConsumer oszt�ly forr�sa +import eventservice.Event; +import eventservice.EventChannel; +import eventservice.RemotelyPullable; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.UnicastRemoteObject; +import java.util.Scanner; + +class PullConsumer extends UnicastRemoteObject implements RemotelyPullable { + + private EventChannel eventChannel; + private RemotelyPullable proxy; + + public PullConsumer() throws RemoteException { + } + + public static void main(String[] args) { + if (args.length < 2) { + System.err.println("Arguments missing"); + return; + } + + if (System.getSecurityManager() == null) { + System.setSecurityManager(new SecurityManager()); + } + + String registryName = args[0]; + String channel = args[1]; + + try { + PullConsumer pullConsumer = new PullConsumer(); + Registry registry = LocateRegistry.getRegistry(registryName); + pullConsumer.eventChannel = (EventChannel) registry.lookup(channel); + pullConsumer.proxy = pullConsumer.eventChannel.subscribePullConsumer(); + + if (pullConsumer.proxy == null) { + System.err.println("A consumer is already registered."); + return; + } + + Scanner sc = new Scanner(System.in); + while (true) { + String line = sc.nextLine(); + if (line.equals("pull")) { + pullConsumer.pull(); + } else if (line.equals("quit")) { + pullConsumer.quit(); + break; + } + } + sc.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public Event pull() throws RemoteException { + Event event = proxy.pull(); + System.out.println("Event arrived: " + event); + return event; + } + + public void quit() throws RemoteException { + eventChannel.unsubscribe(proxy); + } +} \ No newline at end of file diff --git a/exercise/PushConsumer.java b/exercise/PushConsumer.java index 7754435f6cea78894989b856d5870a3422105bfe..60a13861ca7dad7c9f83df104af73d2b314a2e7f 100644 --- a/exercise/PushConsumer.java +++ b/exercise/PushConsumer.java @@ -1,3 +1,103 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// -// TODO: PushConsumer oszt�ly forr�sa +package exercise; +import eventservice.Event; +import eventservice.EventChannel; +import eventservice.Proxy; +import eventservice.RemotelyPushable; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.rmi.NoSuchObjectException; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.UnicastRemoteObject; + +public class PushConsumer extends UnicastRemoteObject implements RemotelyPushable { + private static final long serialVersionUID = 1L; + + public PushConsumer() throws RemoteException { + } + + public static void main(String[] args) { + if (args.length < 2) { + System.err.println("Usage: PushConsumer host channel_name"); + } else { + String arg1 = args[0]; + String arg2 = args[1]; + PushConsumer var3; + if (System.getSecurityManager() == null) { + System.setSecurityManager(new SecurityManager()); + } + + Registry var4; + + try { + var4 = LocateRegistry.getRegistry(arg1); + } catch (RemoteException var15) { + System.err.println("Cannot locate registry at host \'" + arg1 + "\': " + var15.getMessage()); + return; + } + + EventChannel var5; + try { + var5 = (EventChannel) var4.lookup(arg2); + } catch (Exception var14) { + System.err.println("Cannot lookup channel \'" + arg2 + "\': " + var14.getMessage()); + return; + } + + try { + var3 = new PushConsumer(); + } catch (RemoteException var13) { + System.err.println("Cannot create client: " + var13.getMessage()); + return; + } + + Proxy var6; + try { + var6 = var5.subscribePushConsumer(var3); + } catch (RemoteException var12) { + System.err.println("Cannot subscribe client to channel \'" + arg2 + "\': " + var12.getMessage()); + var12.printStackTrace(); + return; + } + + if (var6 == null) { + System.err.println("Consumer is already registered in \'" + arg2); + } else { + BufferedReader var7 = new BufferedReader(new InputStreamReader(System.in)); + + try { + System.out.println("Press enter to exit."); + var7.readLine(); + } catch (IOException var11) { + ; + } + + try { + var5.unsubscribe(var6); + } catch (RemoteException var10) { + System.err.println("Cannot unsubscribe consumer from channel \'" + arg2 + "\': " + var10.getMessage()); + } + + try { + UnicastRemoteObject.unexportObject(var3, false); + } catch (NoSuchObjectException var9) { + System.err.println("Cannot unexport client: " + var9.getMessage()); + } + + } + } + } + + public void push(Event var1) throws RemoteException { + System.out.println("Event arrived: " + var1.toString()); + } +} diff --git a/policy b/policy new file mode 100644 index 0000000000000000000000000000000000000000..9b056414bbf2893817f7b45a4b94cc03b924ab7b --- /dev/null +++ b/policy @@ -0,0 +1,4 @@ +grant { + // Allow everything for now + permission java.security.AllPermission; +}; diff --git a/pushconsumer.bat b/pushconsumer.bat new file mode 100644 index 0000000000000000000000000000000000000000..b96d9c0ddc3e3bd0909f36130e347b857150cf5d --- /dev/null +++ b/pushconsumer.bat @@ -0,0 +1,2 @@ +set DIR=//D:/Projects/itlab2_rmi +java -Djava.security.policy="file:/%DIR%/policy" -Djava.rmi.server.codebase="file:/%DIR%/pushconsumer.jar" -Djava.rmi.server.useCodebaseOnly=false -jar pushconsumer.jar localhost channel diff --git a/pushsupplier.bat b/pushsupplier.bat new file mode 100644 index 0000000000000000000000000000000000000000..e780c9503a6e2ee96b2803fced5f86fd06cf03e4 --- /dev/null +++ b/pushsupplier.bat @@ -0,0 +1,2 @@ +set DIR=D:/Projects/itlab2_rmi +java -Djava.security.policy="file:/%DIR%/policy" -Djava.rmi.server.codebase="file:/%DIR%/pushsupplier.jar" -Djava.rmi.server.useCodebaseOnly=false -jar pushsupplier.jar localhost channel 2000