From 2d97b37ae7bcc5de466ed962ed4f6b9181914b90 Mon Sep 17 00:00:00 2001 From: Gazder Bence <bencegazder@gmail.com> Date: Mon, 30 Nov 2015 15:49:14 +0100 Subject: [PATCH] =?UTF-8?q?=20=C2=AF\=5F(=E3=83=84)=5F/=C2=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/itlab2_rmi.iml | 3 + .idea/libraries/eventservice.xml | 9 + .idea/libraries/pushconsumer.xml | 9 + .idea/libraries/pushsupplier.xml | 9 + .idea/misc.xml | 7 - .idea/workspace.xml | 726 ++++++++++++++++++- eventserv.bat | 2 + eventserv2.bat | 2 + eventservice/impl/PullConsumerProxyImpl.java | 7 - eventservice/impl/PushConsumerProxyImpl.java | 49 +- exercise/PullConsumer.java | 70 +- exercise/PushConsumer.java | 102 ++- policy | 4 + pushconsumer.bat | 2 + pushsupplier.bat | 2 + 15 files changed, 961 insertions(+), 42 deletions(-) create mode 100644 .idea/libraries/eventservice.xml create mode 100644 .idea/libraries/pushconsumer.xml create mode 100644 .idea/libraries/pushsupplier.xml create mode 100644 eventserv.bat create mode 100644 eventserv2.bat create mode 100644 policy create mode 100644 pushconsumer.bat create mode 100644 pushsupplier.bat diff --git a/.idea/itlab2_rmi.iml b/.idea/itlab2_rmi.iml index b107a2d..3a66664 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 0000000..42b03ca --- /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 0000000..30eb95a --- /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 0000000..3259708 --- /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 9d83335..538c92a 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 dc6b395..1b31904 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 0000000..cb7adef --- /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 0000000..56a9f27 --- /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 803b416..f0d31dd 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 7bc7069..fce8038 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 b147c9f..3b444b5 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 7754435..60a1386 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 0000000..9b05641 --- /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 0000000..b96d9c0 --- /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 0000000..e780c95 --- /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 -- GitLab