Defend
8 years ago
commit
5d75c12b7d
15 changed files with 1545 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="CompilerConfiguration"> |
||||
|
<resourceExtensions /> |
||||
|
<wildcardResourcePatterns> |
||||
|
<entry name="!?*.java" /> |
||||
|
<entry name="!?*.form" /> |
||||
|
<entry name="!?*.class" /> |
||||
|
<entry name="!?*.groovy" /> |
||||
|
<entry name="!?*.scala" /> |
||||
|
<entry name="!?*.flex" /> |
||||
|
<entry name="!?*.kt" /> |
||||
|
<entry name="!?*.clj" /> |
||||
|
<entry name="!?*.aj" /> |
||||
|
</wildcardResourcePatterns> |
||||
|
<annotationProcessing> |
||||
|
<profile default="true" name="Default" enabled="false"> |
||||
|
<processorPath useClasspath="true" /> |
||||
|
</profile> |
||||
|
</annotationProcessing> |
||||
|
</component> |
||||
|
</project> |
@ -0,0 +1,3 @@ |
|||||
|
<component name="CopyrightManager"> |
||||
|
<settings default="" /> |
||||
|
</component> |
@ -0,0 +1,82 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="ClientPropertiesManager"> |
||||
|
<properties class="javax.swing.AbstractButton"> |
||||
|
<property name="hideActionText" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JComponent"> |
||||
|
<property name="html.disable" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JEditorPane"> |
||||
|
<property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" /> |
||||
|
<property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" /> |
||||
|
<property name="charset" class="java.lang.String" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JList"> |
||||
|
<property name="List.isFileList" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JPasswordField"> |
||||
|
<property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JSlider"> |
||||
|
<property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" /> |
||||
|
<property name="JSlider.isFilled" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JTable"> |
||||
|
<property name="Table.isFileList" class="java.lang.Boolean" /> |
||||
|
<property name="JTable.autoStartsEdit" class="java.lang.Boolean" /> |
||||
|
<property name="terminateEditOnFocusLost" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JToolBar"> |
||||
|
<property name="JToolBar.isRollover" class="java.lang.Boolean" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.JTree"> |
||||
|
<property name="JTree.lineStyle" class="java.lang.String" /> |
||||
|
</properties> |
||||
|
<properties class="javax.swing.text.JTextComponent"> |
||||
|
<property name="caretAspectRatio" class="java.lang.Double" /> |
||||
|
<property name="caretWidth" class="java.lang.Integer" /> |
||||
|
</properties> |
||||
|
</component> |
||||
|
<component name="EntryPointsManager"> |
||||
|
<entry_points version="2.0" /> |
||||
|
</component> |
||||
|
<component name="JavadocGenerationManager"> |
||||
|
<option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$" /> |
||||
|
<option name="OPTION_SCOPE" value="protected" /> |
||||
|
<option name="OPTION_HIERARCHY" value="true" /> |
||||
|
<option name="OPTION_NAVIGATOR" value="true" /> |
||||
|
<option name="OPTION_INDEX" value="true" /> |
||||
|
<option name="OPTION_SEPARATE_INDEX" value="true" /> |
||||
|
<option name="OPTION_DOCUMENT_TAG_USE" value="false" /> |
||||
|
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false" /> |
||||
|
<option name="OPTION_DOCUMENT_TAG_VERSION" value="false" /> |
||||
|
<option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" /> |
||||
|
<option name="OPTION_DEPRECATED_LIST" value="true" /> |
||||
|
<option name="OTHER_OPTIONS" /> |
||||
|
<option name="HEAP_SIZE" value="1024" /> |
||||
|
<option name="LOCALE" /> |
||||
|
<option name="OPEN_IN_BROWSER" value="true" /> |
||||
|
<option name="OPTION_INCLUDE_LIBS" value="false" /> |
||||
|
</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" /> |
||||
|
<OptionsSetting value="true" id="Checkout" /> |
||||
|
<OptionsSetting value="true" id="Update" /> |
||||
|
<OptionsSetting value="true" id="Status" /> |
||||
|
<OptionsSetting value="true" id="Edit" /> |
||||
|
<ConfirmationsSetting value="0" id="Add" /> |
||||
|
<ConfirmationsSetting value="0" id="Remove" /> |
||||
|
</component> |
||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |
||||
|
<output url="file://$PROJECT_DIR$/out" /> |
||||
|
</component> |
||||
|
</project> |
@ -0,0 +1,8 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="ProjectModuleManager"> |
||||
|
<modules> |
||||
|
<module fileurl="file://$PROJECT_DIR$/ctServer.iml" filepath="$PROJECT_DIR$/ctServer.iml" /> |
||||
|
</modules> |
||||
|
</component> |
||||
|
</project> |
@ -0,0 +1,6 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="SqlDialectMappings"> |
||||
|
<file url="file://$PROJECT_DIR$" dialect="MySQL" /> |
||||
|
</component> |
||||
|
</project> |
@ -0,0 +1,915 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="ChangeListManager"> |
||||
|
<list default="true" id="ef1cf760-9407-4380-a84e-9b438e35c16c" name="Default" comment="" /> |
||||
|
<ignored path="ctServer.iws" /> |
||||
|
<ignored path=".idea/workspace.xml" /> |
||||
|
<ignored path="$PROJECT_DIR$/out/" /> |
||||
|
<ignored path=".idea/dataSources.local.xml" /> |
||||
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
||||
|
<option name="TRACKING_ENABLED" value="true" /> |
||||
|
<option name="SHOW_DIALOG" value="false" /> |
||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" /> |
||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
||||
|
<option name="LAST_RESOLUTION" value="IGNORE" /> |
||||
|
</component> |
||||
|
<component name="CoverageDataManager"> |
||||
|
<SUITE FILE_PATH="coverage/ctServer$Unnamed.coverage" NAME="Unnamed Coverage Results" MODIFIED="1470865818918" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" /> |
||||
|
</component> |
||||
|
<component name="CreatePatchCommitExecutor"> |
||||
|
<option name="PATCH_PATH" value="" /> |
||||
|
</component> |
||||
|
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> |
||||
|
<component name="FavoritesManager"> |
||||
|
<favorites_list name="ctServer" /> |
||||
|
</component> |
||||
|
<component name="FileEditorManager"> |
||||
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> |
||||
|
<file leaf-file-name="ctServer.java" pinned="false" current-in-tab="false"> |
||||
|
<entry file="file://$PROJECT_DIR$/src/ctServer.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="51"> |
||||
|
<caret line="61" column="32" selection-start-line="61" selection-start-column="32" selection-end-line="61" selection-end-column="32" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
</file> |
||||
|
<file leaf-file-name="console.java" pinned="false" current-in-tab="false"> |
||||
|
<entry file="file://$PROJECT_DIR$/src/console.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="178"> |
||||
|
<caret line="30" column="38" selection-start-line="30" selection-start-column="38" selection-end-line="30" selection-end-column="38" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
</file> |
||||
|
<file leaf-file-name="client.java" pinned="false" current-in-tab="true"> |
||||
|
<entry file="file://$PROJECT_DIR$/src/client.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="1309"> |
||||
|
<caret line="254" column="52" selection-start-line="254" selection-start-column="52" selection-end-line="254" selection-end-column="52" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
</file> |
||||
|
</leaf> |
||||
|
</component> |
||||
|
<component name="FileTemplateManagerImpl"> |
||||
|
<option name="RECENT_TEMPLATES"> |
||||
|
<list> |
||||
|
<option value="package-info" /> |
||||
|
<option value="Class" /> |
||||
|
</list> |
||||
|
</option> |
||||
|
</component> |
||||
|
<component name="GradleLocalSettings"> |
||||
|
<option name="externalProjectsViewState"> |
||||
|
<projects_view /> |
||||
|
</option> |
||||
|
</component> |
||||
|
<component name="IdeDocumentHistory"> |
||||
|
<option name="CHANGED_PATHS"> |
||||
|
<list> |
||||
|
<option value="$PROJECT_DIR$/src/main.java" /> |
||||
|
<option value="$PROJECT_DIR$/src/ctServer.java" /> |
||||
|
<option value="$PROJECT_DIR$/src/console.java" /> |
||||
|
<option value="$PROJECT_DIR$/src/client.java" /> |
||||
|
</list> |
||||
|
</option> |
||||
|
</component> |
||||
|
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> |
||||
|
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> |
||||
|
<component name="JsGulpfileManager"> |
||||
|
<detection-done>true</detection-done> |
||||
|
<sorting>DEFINITION_ORDER</sorting> |
||||
|
</component> |
||||
|
<component name="ProjectFrameBounds"> |
||||
|
<option name="x" value="-8" /> |
||||
|
<option name="y" value="-8" /> |
||||
|
<option name="width" value="1296" /> |
||||
|
<option name="height" value="1010" /> |
||||
|
</component> |
||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="false"> |
||||
|
<OptionsSetting value="true" id="Add" /> |
||||
|
<OptionsSetting value="true" id="Remove" /> |
||||
|
<OptionsSetting value="true" id="Checkout" /> |
||||
|
<OptionsSetting value="true" id="Update" /> |
||||
|
<OptionsSetting value="true" id="Status" /> |
||||
|
<OptionsSetting value="true" id="Edit" /> |
||||
|
<ConfirmationsSetting value="0" id="Add" /> |
||||
|
<ConfirmationsSetting value="0" id="Remove" /> |
||||
|
</component> |
||||
|
<component name="ProjectView"> |
||||
|
<navigator currentView="ProjectPane" proportions="" version="1"> |
||||
|
<flattenPackages /> |
||||
|
<showMembers /> |
||||
|
<showModules /> |
||||
|
<showLibraryContents /> |
||||
|
<hideEmptyPackages /> |
||||
|
<abbreviatePackageNames /> |
||||
|
<autoscrollToSource /> |
||||
|
<autoscrollFromSource /> |
||||
|
<sortByType /> |
||||
|
<manualOrder /> |
||||
|
<foldersAlwaysOnTop value="true" /> |
||||
|
</navigator> |
||||
|
<panes> |
||||
|
<pane id="Scratches" /> |
||||
|
<pane id="ProjectPane"> |
||||
|
<subPane> |
||||
|
<PATH> |
||||
|
<PATH_ELEMENT> |
||||
|
<option name="myItemId" value="ctServer" /> |
||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> |
||||
|
</PATH_ELEMENT> |
||||
|
</PATH> |
||||
|
<PATH> |
||||
|
<PATH_ELEMENT> |
||||
|
<option name="myItemId" value="ctServer" /> |
||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> |
||||
|
</PATH_ELEMENT> |
||||
|
<PATH_ELEMENT> |
||||
|
<option name="myItemId" value="ctServer" /> |
||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> |
||||
|
</PATH_ELEMENT> |
||||
|
</PATH> |
||||
|
</subPane> |
||||
|
</pane> |
||||
|
<pane id="PackagesPane" /> |
||||
|
<pane id="Scope" /> |
||||
|
</panes> |
||||
|
</component> |
||||
|
<component name="PropertiesComponent"> |
||||
|
<property name="settings.editor.selected.configurable" value="preferences.general" /> |
||||
|
<property name="settings.editor.splitter.proportion" value="0.2" /> |
||||
|
<property name="aspect.path.notification.shown" value="true" /> |
||||
|
<property name="WebServerToolWindowFactoryState" value="false" /> |
||||
|
<property name="GenerateAntBuildDialog.enableUiFormCompile" value="true" /> |
||||
|
<property name="GenerateAntBuildDialog.forceTargetJdk" value="true" /> |
||||
|
<property name="GenerateAntBuildDialog.backupFiles" value="true" /> |
||||
|
<property name="GenerateAntBuildDialog.outputFileNameProperty" value="ctserver" /> |
||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" /> |
||||
|
</component> |
||||
|
<component name="RunManager" selected="Application.Unnamed"> |
||||
|
<configuration default="true" type="#com.intellij.j2meplugin.run.J2MEConfigurationType" factoryName="J2ME"> |
||||
|
<module name="" /> |
||||
|
<USER_OPTIONS /> |
||||
|
<option name="TARGET_DEVICE_NAME" /> |
||||
|
<option name="COMMAND_LINE_PARAMETERS" /> |
||||
|
<option name="MAIN_CLASS_NAME" value="" /> |
||||
|
<option name="JAD_NAME" value="" /> |
||||
|
<option name="IS_CLASSES" value="false" /> |
||||
|
<option name="IS_OTA" value="false" /> |
||||
|
<option name="INSTALL" /> |
||||
|
<option name="REMOVE" /> |
||||
|
<option name="RUN" /> |
||||
|
<option name="TRANSIENT" /> |
||||
|
<option name="FORCE" /> |
||||
|
<option name="TO_START" /> |
||||
|
<option name="SELECTION" value="0" /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin"> |
||||
|
<module name="" /> |
||||
|
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" /> |
||||
|
<option name="PROGRAM_PARAMETERS" /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application"> |
||||
|
<module name="" /> |
||||
|
<option name="DEPLOY" value="true" /> |
||||
|
<option name="ARTIFACT_NAME" value="" /> |
||||
|
<option name="PM_INSTALL_OPTIONS" value="" /> |
||||
|
<option name="ACTIVITY_EXTRA_FLAGS" value="" /> |
||||
|
<option name="MODE" value="default_activity" /> |
||||
|
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> |
||||
|
<option name="PREFERRED_AVD" value="" /> |
||||
|
<option name="CLEAR_LOGCAT" value="false" /> |
||||
|
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> |
||||
|
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> |
||||
|
<option name="FORCE_STOP_RUNNING_APP" value="true" /> |
||||
|
<option name="DEBUGGER_TYPE" value="Java" /> |
||||
|
<option name="USE_LAST_SELECTED_DEVICE" value="false" /> |
||||
|
<option name="PREFERRED_AVD" value="" /> |
||||
|
<Java /> |
||||
|
<Profilers> |
||||
|
<option name="GAPID_DISABLE_PCS" value="false" /> |
||||
|
</Profilers> |
||||
|
<option name="DEEP_LINK" value="" /> |
||||
|
<option name="ACTIVITY_CLASS" value="" /> |
||||
|
<method> |
||||
|
<option name="Make" enabled="true" /> |
||||
|
<option name="Android.Gradle.BeforeRunTask" enabled="true" /> |
||||
|
</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="EXTRA_OPTIONS" value="" /> |
||||
|
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> |
||||
|
<option name="PREFERRED_AVD" value="" /> |
||||
|
<option name="CLEAR_LOGCAT" value="false" /> |
||||
|
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> |
||||
|
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> |
||||
|
<option name="FORCE_STOP_RUNNING_APP" value="true" /> |
||||
|
<option name="DEBUGGER_TYPE" value="Java" /> |
||||
|
<option name="USE_LAST_SELECTED_DEVICE" value="false" /> |
||||
|
<option name="PREFERRED_AVD" value="" /> |
||||
|
<Java /> |
||||
|
<Profilers> |
||||
|
<option name="GAPID_DISABLE_PCS" value="false" /> |
||||
|
</Profilers> |
||||
|
<method> |
||||
|
<option name="Make" enabled="true" /> |
||||
|
<option name="Android.Gradle.BeforeRunTask" enabled="true" /> |
||||
|
</method> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="AntRunConfiguration" factoryName="Ant Target"> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="Applet" factoryName="Applet"> |
||||
|
<option name="HTML_USED" value="false" /> |
||||
|
<option name="WIDTH" value="400" /> |
||||
|
<option name="HEIGHT" value="300" /> |
||||
|
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> |
||||
|
<module /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="Application" factoryName="Application"> |
||||
|
<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" value="$PROJECT_DIR$" /> |
||||
|
<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="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="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path=""> |
||||
|
<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"> |
||||
|
<setting name="vmparams" value="" /> |
||||
|
<setting name="cmdLine" value="run-app" /> |
||||
|
<setting name="passParentEnv" value="true" /> |
||||
|
<setting name="launchBrowser" value="true" /> |
||||
|
<setting name="depsClasspath" value="false" /> |
||||
|
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="JUnit" factoryName="JUnit"> |
||||
|
<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" value="-ea" /> |
||||
|
<option name="PARAMETERS" /> |
||||
|
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> |
||||
|
<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="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="ctServer" /> |
||||
|
<envs /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script"> |
||||
|
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> |
||||
|
<option name="filePath" /> |
||||
|
<option name="vmParameters" /> |
||||
|
<option name="alternativeJrePath" /> |
||||
|
<option name="programParameters" /> |
||||
|
<option name="passParentEnvs" value="true" /> |
||||
|
<option name="workingDirectory" /> |
||||
|
<option name="isAlternativeJrePathEnabled" value="false" /> |
||||
|
<envs /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="Remote" factoryName="Remote"> |
||||
|
<option name="USE_SOCKET_TRANSPORT" value="true" /> |
||||
|
<option name="SERVER_MODE" value="false" /> |
||||
|
<option name="SHMEM_ADDRESS" value="javadebug" /> |
||||
|
<option name="HOST" value="localhost" /> |
||||
|
<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="" /> |
||||
|
<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" value="-ea" /> |
||||
|
<option name="PARAMETERS" /> |
||||
|
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> |
||||
|
<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="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"> |
||||
|
<node-interpreter>project</node-interpreter> |
||||
|
<node-options /> |
||||
|
<gulpfile /> |
||||
|
<tasks /> |
||||
|
<arguments /> |
||||
|
<envs /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="js.build_tools.npm" factoryName="npm"> |
||||
|
<command value="run-script" /> |
||||
|
<scripts /> |
||||
|
<node-interpreter value="project" /> |
||||
|
<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> |
||||
|
<configuration default="false" name="Unnamed" type="Application" factoryName="Application"> |
||||
|
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> |
||||
|
<option name="MAIN_CLASS_NAME" value="ctServer" /> |
||||
|
<option name="VM_PARAMETERS" value="" /> |
||||
|
<option name="PROGRAM_PARAMETERS" value="" /> |
||||
|
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> |
||||
|
<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="ctServer" /> |
||||
|
<envs /> |
||||
|
<method /> |
||||
|
</configuration> |
||||
|
<list size="1"> |
||||
|
<item index="0" class="java.lang.String" itemvalue="Application.Unnamed" /> |
||||
|
</list> |
||||
|
</component> |
||||
|
<component name="ShelveChangesManager" show_recycled="false"> |
||||
|
<option name="remove_strategy" value="false" /> |
||||
|
</component> |
||||
|
<component name="SvnConfiguration"> |
||||
|
<configuration /> |
||||
|
</component> |
||||
|
<component name="TaskManager"> |
||||
|
<task active="true" id="Default" summary="Default task"> |
||||
|
<changelist id="ef1cf760-9407-4380-a84e-9b438e35c16c" name="Default" comment="" /> |
||||
|
<created>1470646840402</created> |
||||
|
<option name="number" value="Default" /> |
||||
|
<option name="presentableId" value="Default" /> |
||||
|
<updated>1470646840402</updated> |
||||
|
<workItem from="1470646845957" duration="30985000" /> |
||||
|
<workItem from="1470739295224" duration="18435000" /> |
||||
|
<workItem from="1470845742191" duration="18554000" /> |
||||
|
<workItem from="1470936508138" duration="9814000" /> |
||||
|
<workItem from="1470992276279" duration="16600000" /> |
||||
|
</task> |
||||
|
<servers /> |
||||
|
</component> |
||||
|
<component name="TimeTrackingManager"> |
||||
|
<option name="totallyTimeSpent" value="94388000" /> |
||||
|
</component> |
||||
|
<component name="ToolWindowManager"> |
||||
|
<frame x="-8" y="-8" width="1296" height="1010" extended-state="6" /> |
||||
|
<editor active="false" /> |
||||
|
<layout> |
||||
|
<window_info id="Palette" 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="3" side_tool="false" content_ui="tabs" /> |
||||
|
<window_info id="TODO" 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="6" side_tool="false" content_ui="tabs" /> |
||||
|
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32839224" sideWeight="0.4792111" order="7" side_tool="false" content_ui="tabs" /> |
||||
|
<window_info id="Palette	" 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="2" side_tool="false" content_ui="tabs" /> |
||||
|
<window_info id="Capture Analysis" 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="3" side_tool="false" content_ui="tabs" /> |
||||
|
<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.3876853" sideWeight="0.5444984" order="7" 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="3" 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="7" side_tool="false" content_ui="tabs" /> |
||||
|
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3876853" sideWeight="0.45550162" 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.32839224" sideWeight="0.4978678" order="7" side_tool="false" content_ui="tabs" /> |
||||
|
<window_info id="Capture Tool" 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="2" 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="3" 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.1302589" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> |
||||
|
<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="3" 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="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.3990878" sideWeight="0.47708333" order="3" 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="2" side_tool="true" 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="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="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" 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="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="Coverage" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32942432" sideWeight="0.5" order="3" side_tool="true" 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.3294979" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> |
||||
|
</layout> |
||||
|
</component> |
||||
|
<component name="Vcs.Log.UiProperties"> |
||||
|
<option name="RECENTLY_FILTERED_USER_GROUPS"> |
||||
|
<collection /> |
||||
|
</option> |
||||
|
<option name="RECENTLY_FILTERED_BRANCH_GROUPS"> |
||||
|
<collection /> |
||||
|
</option> |
||||
|
</component> |
||||
|
<component name="VcsContentAnnotationSettings"> |
||||
|
<option name="myLimit" value="2678400000" /> |
||||
|
</component> |
||||
|
<component name="XDebuggerManager"> |
||||
|
<breakpoint-manager> |
||||
|
<breakpoints> |
||||
|
<line-breakpoint enabled="true" type="java-line"> |
||||
|
<url>file://$PROJECT_DIR$/src/console.java</url> |
||||
|
<line>48</line> |
||||
|
<properties /> |
||||
|
<option name="timeStamp" value="36" /> |
||||
|
</line-breakpoint> |
||||
|
</breakpoints> |
||||
|
<option name="time" value="37" /> |
||||
|
</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="file://$PROJECT_DIR$/src/ctServer.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="0"> |
||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/console.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="1088"> |
||||
|
<caret line="64" column="91" selection-start-line="64" selection-start-column="91" selection-end-line="64" selection-end-column="91" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/client.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="918"> |
||||
|
<caret line="54" column="20" selection-start-line="54" selection-start-column="20" selection-end-line="54" selection-end-column="20" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/ctServer.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="221"> |
||||
|
<caret line="13" column="47" selection-start-line="13" selection-start-column="47" selection-end-line="13" selection-end-column="47" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/console.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="578"> |
||||
|
<caret line="34" column="5" selection-start-line="34" selection-start-column="5" selection-end-line="34" selection-end-column="5" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/client.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="0"> |
||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="jar://E:/ProfessionalPrograms/JDK8/src.zip!/java/lang/Thread.java" /> |
||||
|
<entry file="file://$PROJECT_DIR$/src/ctServer.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="0"> |
||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/console.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="1003"> |
||||
|
<caret line="67" column="13" selection-start-line="67" selection-start-column="13" selection-end-line="67" selection-end-column="13" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/client.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="1343"> |
||||
|
<caret line="86" column="50" selection-start-line="86" selection-start-column="50" selection-end-line="86" selection-end-column="50" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="jar://E:/ProfessionalPrograms/JDK8/src.zip!/java/lang/Thread.java" /> |
||||
|
<entry file="file://$PROJECT_DIR$/src/ctServer.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="221"> |
||||
|
<caret line="13" column="37" selection-start-line="13" selection-start-column="37" selection-end-line="13" selection-end-column="37" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/console.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="1139"> |
||||
|
<caret line="67" column="13" selection-start-line="67" selection-start-column="13" selection-end-line="67" selection-end-column="13" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/client.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="731"> |
||||
|
<caret line="43" column="30" selection-start-line="43" selection-start-column="30" selection-end-line="43" selection-end-column="30" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="jar://E:/ProfessionalPrograms/JDK8/src.zip!/java/lang/Thread.java" /> |
||||
|
<entry file="file://$PROJECT_DIR$/ctServer.iml"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="0"> |
||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/.idea/copyright/profiles_settings.xml"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="0"> |
||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/package-info.java" /> |
||||
|
<entry file="jar://E:/ProfessionalPrograms/JDK8/src.zip!/java/lang/Thread.java" /> |
||||
|
<entry file="file://$PROJECT_DIR$/ctserver.properties"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="0"> |
||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="jar://E:/ProfessionalPrograms/JDK8/src.zip!/java/util/ArrayList.java" /> |
||||
|
<entry file="file://$PROJECT_DIR$/ctserver.xml" /> |
||||
|
<entry file="file://$PROJECT_DIR$/module_ctserver.xml" /> |
||||
|
<entry file="file://$PROJECT_DIR$/package-list" /> |
||||
|
<entry file="jar://E:/ProfessionalPrograms/JDK8/src.zip!/java/net/SocketInputStream.java" /> |
||||
|
<entry file="jar://C:/Program Files/Java/jdk1.8.0_102/src.zip!/java/util/ArrayList.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="169"> |
||||
|
<caret line="652" column="0" selection-start-line="652" selection-start-column="0" selection-end-line="652" selection-end-column="0" /> |
||||
|
<folding /> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/ctServer.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="51"> |
||||
|
<caret line="61" column="32" selection-start-line="61" selection-start-column="32" selection-end-line="61" selection-end-column="32" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/console.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="178"> |
||||
|
<caret line="30" column="38" selection-start-line="30" selection-start-column="38" selection-end-line="30" selection-end-column="38" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
<entry file="file://$PROJECT_DIR$/src/client.java"> |
||||
|
<provider selected="true" editor-type-id="text-editor"> |
||||
|
<state relative-caret-position="1309"> |
||||
|
<caret line="254" column="52" selection-start-line="254" selection-start-column="52" selection-end-line="254" selection-end-column="52" /> |
||||
|
<folding> |
||||
|
<element signature="imports" expanded="true" /> |
||||
|
</folding> |
||||
|
</state> |
||||
|
</provider> |
||||
|
</entry> |
||||
|
</component> |
||||
|
<component name="masterDetails"> |
||||
|
<states> |
||||
|
<state key="ProjectJDKs.UI"> |
||||
|
<settings> |
||||
|
<last-edited>1.8</last-edited> |
||||
|
<splitter-proportions> |
||||
|
<option name="proportions"> |
||||
|
<list> |
||||
|
<option value="0.2" /> |
||||
|
</list> |
||||
|
</option> |
||||
|
</splitter-proportions> |
||||
|
</settings> |
||||
|
</state> |
||||
|
</states> |
||||
|
</component> |
||||
|
</project> |
@ -0,0 +1,11 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<module type="JAVA_MODULE" version="4"> |
||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
||||
|
<exclude-output /> |
||||
|
<content url="file://$MODULE_DIR$"> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> |
||||
|
</content> |
||||
|
<orderEntry type="inheritedJdk" /> |
||||
|
<orderEntry type="sourceFolder" forTests="false" /> |
||||
|
</component> |
||||
|
</module> |
@ -0,0 +1,4 @@ |
|||||
|
path.variable.kotlin_bundled=E\:\\ProfessionalPrograms\\IntelliJ IDEA 2016.2.1\\plugins\\Kotlin\\kotlinc |
||||
|
path.variable.maven_repository=C\:\\Users\\itsmy\\.m2\\repository |
||||
|
jdk.home.1.8=E\:/ProfessionalPrograms/JDK8 |
||||
|
javac2.instrumentation.includeJavaRuntime=false |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,303 @@ |
|||||
|
import jdk.nashorn.internal.parser.JSONParser; |
||||
|
|
||||
|
import javax.xml.bind.DatatypeConverter; |
||||
|
import java.io.*; |
||||
|
import java.net.*; |
||||
|
import java.security.MessageDigest; |
||||
|
import java.security.NoSuchAlgorithmException; |
||||
|
import java.util.NoSuchElementException; |
||||
|
import java.util.Scanner; |
||||
|
import java.util.regex.Matcher; |
||||
|
import java.util.regex.Pattern; |
||||
|
|
||||
|
/** |
||||
|
* Created by itsmy on 08.08.2016. |
||||
|
*/ |
||||
|
public class client extends Thread { |
||||
|
private Socket socket; |
||||
|
private BufferedReader reader; |
||||
|
private OutputStreamWriter writer; |
||||
|
private OutputStream out; |
||||
|
private InputStream in; |
||||
|
public Boolean httpAuthed = false; |
||||
|
public Boolean socketAuthed = false; |
||||
|
public int socketID; |
||||
|
|
||||
|
public void openSocket(Socket s) throws IOException { |
||||
|
socket = s; |
||||
|
out = socket.getOutputStream(); |
||||
|
in = socket.getInputStream(); |
||||
|
start(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void run() { |
||||
|
socketID = ctServer.socketID; |
||||
|
ctServer.sockets.add(socketID, this); |
||||
|
console.socket(socketID,"New connection"); |
||||
|
wsControl(); |
||||
|
} |
||||
|
|
||||
|
public void close(){ |
||||
|
try{ |
||||
|
if(socket.isClosed()){ |
||||
|
return; |
||||
|
} |
||||
|
socket.close(); |
||||
|
} |
||||
|
catch(IOException e){ |
||||
|
} |
||||
|
if(socketAuthed){ |
||||
|
ctServer.clientInfoList.remove(socketID); |
||||
|
} |
||||
|
ctServer.sessions[socketID] = false; |
||||
|
httpAuthed = false; |
||||
|
socketAuthed = false; |
||||
|
console.socket(socketID,"Disconnected"); |
||||
|
this.interrupt(); |
||||
|
} |
||||
|
|
||||
|
public void wsControl(){ |
||||
|
try{ |
||||
|
handshake(); |
||||
|
while (httpAuthed) { |
||||
|
String msg = readSocket(); |
||||
|
sendSocket(msg); |
||||
|
//TODO: сделать проверку протокола
|
||||
|
} |
||||
|
} finally { |
||||
|
close(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
private String bytesToStringUTFCustom(int[] ints) { |
||||
|
char[] buffer = new char[ints.length]; |
||||
|
for(int i = 0; i < buffer.length; i++) { |
||||
|
char c = (char) ints[i]; |
||||
|
buffer[i] = c; |
||||
|
} |
||||
|
return new String(buffer); |
||||
|
} |
||||
|
|
||||
|
private void handshake(){ |
||||
|
try{ |
||||
|
if(!httpAuthed) { |
||||
|
socket.setSoTimeout(2000); |
||||
|
String data = new Scanner(in, "UTF-8").useDelimiter("\\r\\n\\r\\n").next(); |
||||
|
Matcher get = Pattern.compile("^GET").matcher(data); |
||||
|
if (get.find()) { |
||||
|
Matcher match = Pattern.compile("Sec-WebSocket-Key: (.*)").matcher(data); |
||||
|
match.find(); |
||||
|
try { |
||||
|
byte[] response = ("HTTP/1.1 101 Switching Protocols\r\n" |
||||
|
+ "Connection: Upgrade\r\n" |
||||
|
+ "Upgrade: websocket\r\n" |
||||
|
+ "Sec-WebSocket-Accept: " |
||||
|
+ DatatypeConverter |
||||
|
.printBase64Binary( |
||||
|
MessageDigest |
||||
|
.getInstance("SHA-1") |
||||
|
.digest((match.group(1) + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11") |
||||
|
.getBytes("UTF-8"))) |
||||
|
+ "\r\n\r\n") |
||||
|
.getBytes("UTF-8"); |
||||
|
out.write(response, 0, response.length); |
||||
|
} catch (IOException e) { |
||||
|
console.out("Server Error:", e.toString()); |
||||
|
} catch (NoSuchAlgorithmException e) { |
||||
|
console.out("Server Error:", e.toString()); |
||||
|
} |
||||
|
socket.setSoTimeout(0); |
||||
|
httpAuthed = true; |
||||
|
console.socket(socketID,"Handshake accepted!"); |
||||
|
} |
||||
|
} |
||||
|
}catch (SocketException e){ |
||||
|
console.debug("исключение 22"); |
||||
|
//TODO: написать исключение если сокет закрыт
|
||||
|
}catch (NoSuchElementException e){ |
||||
|
console.socket(socketID,"Handshake Timeout (2000ms)"); |
||||
|
httpAuthed = false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Boolean sendSocket(String message){ |
||||
|
byte[] response; |
||||
|
byte[] r; |
||||
|
try{ |
||||
|
response = message.getBytes("UTF-8"); |
||||
|
}catch (UnsupportedEncodingException e){ |
||||
|
console.socket(socketID, "Unsupported encoding!"); |
||||
|
return false; |
||||
|
} |
||||
|
catch (NullPointerException e){ |
||||
|
return false; |
||||
|
} |
||||
|
if (message.length() < 126) { |
||||
|
r = new byte[response.length+2]; |
||||
|
System.arraycopy(response,0,r,2,response.length); |
||||
|
r[0] = (byte) 129; |
||||
|
r[1] = (byte) (response.length); |
||||
|
} |
||||
|
else{ |
||||
|
if (message.length() < 65535) { |
||||
|
r = new byte[response.length+4]; |
||||
|
System.arraycopy(response,0,r,4,response.length); |
||||
|
r[0] = (byte) 129; |
||||
|
r[1] = (byte) 126; |
||||
|
r[2] = (byte) (response.length >>> 8); |
||||
|
r[3] = (byte) (response.length); |
||||
|
} |
||||
|
else{ |
||||
|
if(response.length > Long.MAX_VALUE){ |
||||
|
console.out("Socket Exception", "Too long message for sending! (>64bit)"); |
||||
|
return false; |
||||
|
} |
||||
|
r = new byte[response.length+8]; |
||||
|
System.arraycopy(response,0,r,8,response.length); |
||||
|
r[0] = (byte) 129; |
||||
|
r[1] = (byte) 127; |
||||
|
r[2] = (byte) (response.length >>> 56); |
||||
|
r[3] = (byte) (response.length >>> 48); |
||||
|
r[4] = (byte) (response.length >>> 40); |
||||
|
r[5] = (byte) (response.length >>> 32); |
||||
|
r[6] = (byte) (response.length >>> 24); |
||||
|
r[7] = (byte) (response.length >>> 16); |
||||
|
r[8] = (byte) (response.length >>> 8); |
||||
|
r[9] = (byte) (response.length); |
||||
|
} |
||||
|
} |
||||
|
try{ |
||||
|
out.write(r, 0, r.length); |
||||
|
return true; |
||||
|
}catch(IOException e){ |
||||
|
console.out("Socket Exeption", "Client socket is closed?! Closing socket connection!"); |
||||
|
close(); |
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public String readSocket(){ |
||||
|
String out = ""; |
||||
|
try |
||||
|
{ |
||||
|
int[] MSG = new int[0]; |
||||
|
int OPCOUNT = 1; |
||||
|
int LENGTH; |
||||
|
int KEYFRAME = 0; |
||||
|
int[] KEY = new int[4]; |
||||
|
int OPCODE = in.read(); //читаем OPCODE byte
|
||||
|
switch(OPCODE){ |
||||
|
case -1: close(); //закрываем чтение потока при -1
|
||||
|
return null; |
||||
|
case 136: close(); |
||||
|
return null; |
||||
|
case 129: |
||||
|
LENGTH = in.read(); //читаем второй бит с данными о размере сообщения
|
||||
|
//TODO: which и switch OPCOUNT - необходимо убрать
|
||||
|
while(OPCOUNT < 4) { |
||||
|
switch (OPCOUNT){ |
||||
|
case 1: switch (LENGTH){ //узнаем длину сообщения
|
||||
|
default: KEYFRAME = 2; |
||||
|
break; |
||||
|
case 254: KEYFRAME = 4; //126-65535
|
||||
|
break; |
||||
|
case 255: KEYFRAME = 10; //65535-...
|
||||
|
break; |
||||
|
} |
||||
|
break; |
||||
|
case 2: |
||||
|
switch (KEYFRAME) { |
||||
|
case 2: |
||||
|
MSG = new int[LENGTH - 128]; |
||||
|
break; |
||||
|
case 4: |
||||
|
LENGTH = (in.read() << 8) + (in.read()); |
||||
|
MSG = new int[LENGTH]; |
||||
|
break; |
||||
|
case 10: |
||||
|
LENGTH = (in.read() << 56) |
||||
|
+ (in.read() << 48) |
||||
|
+ (in.read() << 40) |
||||
|
+ (in.read() << 32) |
||||
|
+ (in.read() << 24) |
||||
|
+ (in.read() << 16) |
||||
|
+ (in.read() << 8) |
||||
|
+ (in.read()); |
||||
|
MSG = new int[LENGTH]; |
||||
|
break; |
||||
|
} |
||||
|
for (int i = 0; i < 4; i++) { |
||||
|
KEY[i] = in.read(); |
||||
|
} |
||||
|
for (int j = 0; j < (MSG.length); j++) { |
||||
|
int enc = in.read(); |
||||
|
MSG[j] = (byte) (enc ^ KEY[j & 0x3]); |
||||
|
} |
||||
|
break; |
||||
|
case 3: |
||||
|
if(MSG.length>0){ |
||||
|
out = bytesToStringUTFCustom(MSG); |
||||
|
} |
||||
|
else{ |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
OPCOUNT++; |
||||
|
} |
||||
|
} |
||||
|
}catch(IOException e){ |
||||
|
console.out("Socket Exception", "Client socket is closed?! Closing socket connection!"); |
||||
|
close(); |
||||
|
} |
||||
|
console.socket(socketID, "Message: "+out); |
||||
|
return out; |
||||
|
} |
||||
|
//
|
||||
|
// public Socket getSocketbyId(socketID){
|
||||
|
// if(socket.closed)
|
||||
|
// return this.socket;
|
||||
|
// }
|
||||
|
|
||||
|
|
||||
|
|
||||
|
// public void sControl(){
|
||||
|
// try{
|
||||
|
// while (true) {
|
||||
|
// String input = reader.readLine();
|
||||
|
// if(input == null){break;}
|
||||
|
// Pattern main = Pattern.compile(";");
|
||||
|
// if(!httpAuthed) {
|
||||
|
// if (!ctServer.checkClient(this, main.split(input))) {
|
||||
|
// writer.println("CONNECT_DENIED");
|
||||
|
// break;
|
||||
|
// }
|
||||
|
// }
|
||||
|
// switch (input) {
|
||||
|
// case "EXIT":
|
||||
|
// socket.close();
|
||||
|
// break;
|
||||
|
// default:
|
||||
|
// writer.println("Client info - " + socket.getRemoteSocketAddress().toString());
|
||||
|
// console.out("Socket "+socketID+" Message",input);
|
||||
|
// }
|
||||
|
// }
|
||||
|
// } catch (IOException e) {
|
||||
|
// console.out("Server Error:", e.toString());
|
||||
|
// } finally {
|
||||
|
// close();
|
||||
|
// try {
|
||||
|
// socket.close();
|
||||
|
// console.out("Server", "Socket "+socketID+" disconnected!");
|
||||
|
// } catch (IOException e) {
|
||||
|
// console.out("Server","System socket closing error!");
|
||||
|
// }catch (NullPointerException e){
|
||||
|
//
|
||||
|
// }
|
||||
|
//
|
||||
|
// }
|
||||
|
// }
|
||||
|
|
||||
|
} |
@ -0,0 +1,89 @@ |
|||||
|
import javafx.application.Application; |
||||
|
|
||||
|
import java.io.BufferedReader; |
||||
|
import java.io.IOException; |
||||
|
import java.io.InputStreamReader; |
||||
|
import java.time.Clock; |
||||
|
import java.time.Instant; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.regex.Pattern; |
||||
|
|
||||
|
/** |
||||
|
* Created by itsmy on 08.08.2016. |
||||
|
*/ |
||||
|
public class console extends Thread{ |
||||
|
|
||||
|
private BufferedReader in; |
||||
|
private String line; |
||||
|
|
||||
|
public void consoleListner() throws IOException{ |
||||
|
in = new BufferedReader(new InputStreamReader(System.in)); |
||||
|
line = ""; |
||||
|
start(); |
||||
|
} |
||||
|
|
||||
|
public static void out(String parent, String msg){ |
||||
|
Instant instant2 = Clock.systemUTC().instant(); |
||||
|
String time = instant2.toString(); |
||||
|
System.out.println("["+time+"|"+parent+"]: "+msg); |
||||
|
} |
||||
|
|
||||
|
public static void socket(Integer socketId, String msg){ |
||||
|
Instant instant2 = Clock.systemUTC().instant(); |
||||
|
String time = instant2.toString(); |
||||
|
System.out.println("["+time+"|"+"Socket "+socketId+"]: "+msg); |
||||
|
} |
||||
|
|
||||
|
public static void debug(String msg){ |
||||
|
Instant instant2 = Clock.systemUTC().instant(); |
||||
|
String time = instant2.toString(); |
||||
|
System.out.println("["+time+"|DEBUG]: "+msg); |
||||
|
} |
||||
|
|
||||
|
public void run() { |
||||
|
while (line.equalsIgnoreCase("quit") == false) { |
||||
|
try{ |
||||
|
line = in.readLine(); |
||||
|
Pattern main = Pattern.compile(" "); |
||||
|
String[] sx = main.split(line); |
||||
|
switch (sx[0]){ |
||||
|
case "/list": |
||||
|
ArrayList<ctServer.ClientInfo> cil = ctServer.clientInfoList; |
||||
|
console.out("Server","/list"); |
||||
|
for(int i = 0; ctServer.sessions[i]; i++){ |
||||
|
if(ctServer.sockets.get(Integer.valueOf(i)).socketAuthed) { |
||||
|
ctServer.ClientInfo ci = cil.get(i); |
||||
|
console.out("Socket " + i, "VKID " + ci.VKID + " and PROTOCOL " + ci.PROTOCOL); |
||||
|
}else{ |
||||
|
console.out("Socket "+ i,"Not authed!"); |
||||
|
} |
||||
|
} |
||||
|
break; |
||||
|
case "/kick": |
||||
|
if(sx.length < 2) { |
||||
|
console.out("Server","/kick - Укажите имя сокета"); |
||||
|
} |
||||
|
break; |
||||
|
case "/help": |
||||
|
console.out("Server","/kick [socketid] для отключения сокета от сервера"); |
||||
|
console.out("Server","/list для отображения всех клиентов"); |
||||
|
console.out("Server","/info [socketid] для отображения полной информации о данном клиенте"); |
||||
|
console.out("Server","/send [socketid] [msg] отладочная команда"); |
||||
|
console.out("Server","ctServer Proto Defend Development 2016"); |
||||
|
break; |
||||
|
case "/send": |
||||
|
if(ctServer.sessions[Integer.valueOf(sx[1])]) { |
||||
|
if ((ctServer.sockets.size() >= Integer.valueOf(sx[1])) && (Integer.valueOf(sx[1]) >= 0)) { |
||||
|
ctServer.sockets.get(Integer.valueOf(sx[1])).sendSocket(sx[2]); |
||||
|
} |
||||
|
} |
||||
|
break; |
||||
|
default: console.out("Server","Введите /help для помощи"); |
||||
|
} |
||||
|
|
||||
|
}catch (IOException e){ |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,102 @@ |
|||||
|
import java.net.*; |
||||
|
import java.io.*; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Arrays; |
||||
|
import java.util.List; |
||||
|
import java.util.regex.Pattern; |
||||
|
|
||||
|
public class ctServer { |
||||
|
public static Boolean[] sessions; |
||||
|
public static List<client> sockets; |
||||
|
public static int socketID; |
||||
|
public static ArrayList<ClientInfo> clientInfoList; |
||||
|
|
||||
|
public static class ClientInfo{ |
||||
|
public static String VKID, ROLE, PROTOCOL, EVENT, TRACKID; |
||||
|
public static int TIME; |
||||
|
public static Boolean notEmpty = false; |
||||
|
public static void destroy(){ |
||||
|
VKID = null; |
||||
|
ROLE = null; |
||||
|
PROTOCOL = null; |
||||
|
EVENT = null; |
||||
|
TRACKID = null; |
||||
|
TIME = 0; |
||||
|
notEmpty = false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static boolean checkClient(client c, String[] args){ |
||||
|
ClientInfo ci = new ClientInfo(); |
||||
|
ci.destroy(); |
||||
|
try { |
||||
|
for (String name : args) { |
||||
|
Pattern main = Pattern.compile(":"); |
||||
|
String[] sx = main.split(name); |
||||
|
switch (sx[0]) { |
||||
|
case "PROTOCOL": |
||||
|
ci.PROTOCOL = sx[1]; |
||||
|
break; |
||||
|
case "VKID": |
||||
|
ci.VKID = sx[1]; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
if (!ci.VKID.equals("")) { |
||||
|
if (!ci.PROTOCOL.equals("")) { |
||||
|
clientInfoList.add(c.socketID, ci); |
||||
|
c.httpAuthed = true; |
||||
|
console.debug("Авторизация произошла!"); |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
|
} catch (NullPointerException e){ |
||||
|
return false; |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
public static void main(String[] args) throws IOException{ |
||||
|
sessions = new Boolean[1000]; |
||||
|
for (int i = 0; i < sessions.length; i++) { |
||||
|
sessions[i] = false; |
||||
|
} |
||||
|
clientInfoList = new ArrayList<>(); |
||||
|
sockets = new ArrayList<>(); |
||||
|
try{ |
||||
|
new console().consoleListner(); |
||||
|
} |
||||
|
catch (IOException e){ |
||||
|
|
||||
|
} |
||||
|
int port = 80; |
||||
|
console.out("Socket Port", port+""); |
||||
|
ServerSocket ss = new ServerSocket(port); |
||||
|
try { |
||||
|
console.out("Server", "Waiting for a client"); |
||||
|
while(true) { |
||||
|
Socket socket = ss.accept(); |
||||
|
try { |
||||
|
for(int i = 0; ctServer.sessions.length > i; i++){ |
||||
|
if(ctServer.sessions[i] == null){ |
||||
|
ctServer.socketID = i; |
||||
|
ctServer.sessions[i] = true; |
||||
|
break; |
||||
|
} |
||||
|
if(ctServer.sessions[i] == false){ |
||||
|
ctServer.socketID = i; |
||||
|
ctServer.sessions[i] = true; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
new client().openSocket(socket); |
||||
|
} catch (IOException e) { |
||||
|
socket.close(); |
||||
|
} |
||||
|
} |
||||
|
} finally { |
||||
|
ss.close(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
Loading…
Reference in new issue