1
0
Fork 0
mirror of https://github.com/overleaf/overleaf.git synced 2025-04-14 14:13:28 +00:00

Class and package refactoring with unit tests.

This commit is contained in:
Winston Li 2014-11-02 18:41:18 +00:00
parent c2fea2ee06
commit 2d8580f02b
22 changed files with 815 additions and 202 deletions

View file

@ -2,7 +2,16 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="0c822a5a-f421-4f3c-b941-5c2809c4546f" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/uk/ac/ic/application/WLGitBridgeServer.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeServerTests.java" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/WGBServer.java" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/test/uk/ac/ic/test/WGBServerTests.java" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/Main.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/Main.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/uk/ac/ic/test/MainTests.java" afterPath="$PROJECT_DIR$/test/uk/ac/ic/test/MainTests.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/module_writelatex-git-bridge.xml" afterPath="$PROJECT_DIR$/module_writelatex-git-bridge.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/writelatex-git-bridge.iml" afterPath="$PROJECT_DIR$/writelatex-git-bridge.iml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/writelatex-git-bridge.xml" afterPath="$PROJECT_DIR$/writelatex-git-bridge.xml" />
</list>
<ignored path="writelatex-git-bridge.iws" />
<ignored path=".idea/workspace.xml" />
@ -25,81 +34,101 @@
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="writelatex-git-bridge.iml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/writelatex-git-bridge.iml">
<file leaf-file-name="WLGitServlet.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/git/WLGitServlet.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="345">
<caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="390">
<caret line="16" column="48" selection-start-line="16" selection-start-column="48" selection-end-line="16" selection-end-column="48" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="README.md" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/README.md">
<file leaf-file-name="WLGitBridgeApplicationTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeApplicationTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="135">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="LICENSE" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/LICENSE">
<file leaf-file-name="WLGitBridgeServerTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeServerTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="420">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="7" column="37" selection-start-line="7" selection-start-column="37" selection-end-line="12" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Main.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/Main.java">
<file leaf-file-name="WLGitServletTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLGitServletTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1890">
<caret line="35" column="44" selection-start-line="35" selection-start-column="44" selection-end-line="35" selection-end-column="44" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WGBServer.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/WGBServer.java">
<file leaf-file-name="WLGitServletConfigTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLGitServletConfigTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.07978723" vertical-offset="0" max-vertical-offset="1316">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WGBServerTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/WGBServerTests.java">
<file leaf-file-name="WLReceivePackFactoryTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLReceivePackFactoryTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="195">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="7" column="40" selection-start-line="7" selection-start-column="40" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MainTests.java" pinned="false" current="false" current-in-tab="false">
<file leaf-file-name="WLRepositoryResolverTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLRepositoryResolverTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WLUploadPackTests.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLUploadPackTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MainTests.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/MainTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="195">
<caret line="5" column="13" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
<state vertical-scroll-proportion="0.20547946" vertical-offset="0" max-vertical-offset="1095">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="HttpServlet.class" pinned="false" current="false" current-in-tab="false">
<entry file="jar://$PROJECT_DIR$/libs/javax.servlet-api-3.1.0.jar!/javax/servlet/http/HttpServlet.class">
<file leaf-file-name="WLGitBridgeApplication.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/application/WLGitBridgeApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="660" max-vertical-offset="750">
<caret line="44" column="0" selection-start-line="44" selection-start-column="0" selection-end-line="44" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="480">
<caret line="23" column="5" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
<folding />
</state>
</provider>
@ -119,8 +148,38 @@
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/writelatex-git-bridge.iml" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/Main.java" />
<option value="$PROJECT_DIR$/writelatex-git-bridge.xml" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WritelatexRepositoryResolver.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WGBServer.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/WGBServerTests.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/GitServletConfig.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLGitServletConfig.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WriteLatexGitBridgeServer.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLGBridgeServer.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WriteLatexReceivePackFactory.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLReceivePackFactory.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WriteLatexRepositoryResolver.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLRepositoryResolver.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WriteLatexUploadPackFactory.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLUploadPackFactory.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLProjectGitServlet.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/WriteLatexGitBridgeServerTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/WLGitBridgeServerTests.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLGitServlet.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLGitBridgeServer.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/Main.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/WLGitBridgeApplication.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/application/WLGitBridgeApplication.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/application/git/WLGitServlet.java" />
<option value="$PROJECT_DIR$/src/uk/ac/ic/git/WLGitServlet.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeServerTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeApplicationTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/git/WLGitServletConfigTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/git/WLGitServletTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/git/WLReceivePackFactoryTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/git/WLRepositoryResolverTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/git/WLUploadPackTests.java" />
<option value="$PROJECT_DIR$/test/uk/ac/ic/test/MainTests.java" />
</list>
</option>
</component>
@ -136,7 +195,7 @@
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="1" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectReloadState">
@ -193,6 +252,50 @@
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="git" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="application" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
@ -211,6 +314,50 @@
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ic" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="git" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ic" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="application" />
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="writelatex-git-bridge" />
@ -252,23 +399,27 @@
<property name="OverrideImplement.combined" value="true" />
<property name="OverrideImplement.overriding.sorted" value="false" />
<property name="FullScreen" value="false" />
<property name="restartRequiresConfirmation" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/libs" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="uk.ac.ic" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/libs" />
</key>
</component>
<component name="RunManager" selected="Application.Main">
<configuration default="false" name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<component name="RunManager" selected="Application.writelatex-git-bridge">
<configuration default="false" name="writelatex-git-bridge" type="Application" factoryName="Application" temporary="true">
<option name="MAIN_CLASS_NAME" value="uk.ac.ic.Main" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<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="ALTERNATIVE_JRE_PATH" value="" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
@ -313,6 +464,21 @@
<option name="PORT" value="5005" />
<method />
</configuration>
<configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<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="TestNG" factoryName="TestNG">
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@ -407,12 +573,35 @@
<option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
<method />
</configuration>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Application.Main" />
<configuration default="false" name="writelatex-git-bridge tests" type="JUnit" factoryName="JUnit">
<module name="writelatex-git-bridge" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="PACKAGE_NAME" value="" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Application.writelatex-git-bridge" />
<item index="1" class="java.lang.String" itemvalue="JUnit.writelatex-git-bridge tests" />
</list>
<recent_temporary>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Application.Main" />
<item index="0" class="java.lang.String" itemvalue="Application.writelatex-git-bridge" />
</list>
</recent_temporary>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
@ -434,30 +623,30 @@
</component>
<component name="ToolWindowManager">
<frame x="0" y="23" width="2559" height="1413" extended-state="6" />
<editor active="true" />
<editor active="false" />
<layout>
<window_info id="Documentation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" x="100" y="123" width="1166" height="541" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" 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" 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" weight="0.24970692" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" 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" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32886904" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.13325518" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.16443452" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16443452" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Documentation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" x="100" y="123" width="1166" height="541" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" 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" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32886904" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 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" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
@ -574,14 +763,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/writelatex-git-bridge.iml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="345">
<caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/libs/javax.servlet-api-3.1.0.jar!/javax/servlet/http/HttpServlet.class">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="660" max-vertical-offset="750">
@ -590,34 +771,162 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/writelatex-git-bridge.iml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="420" max-vertical-offset="510">
<caret line="28" column="0" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/writelatex-git-bridge.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1095">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/module_writelatex-git-bridge.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-45.576923" vertical-offset="0" max-vertical-offset="1905">
<caret line="79" column="153" selection-start-line="79" selection-start-column="148" selection-end-line="79" selection-end-column="153" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/writelatex-git-bridge.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2175">
<caret line="17" column="31" selection-start-line="17" selection-start-column="31" selection-end-line="17" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/git/WLGitServletConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="720">
<caret line="11" column="15" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/git/WLReceivePackFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="405">
<caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/git/WLRepositoryResolver.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1050">
<caret line="23" column="13" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/git/WLUploadPackFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="375">
<caret line="13" column="15" selection-start-line="13" selection-start-column="15" selection-end-line="13" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1890">
<caret line="35" column="44" selection-start-line="35" selection-start-column="44" selection-end-line="35" selection-end-column="44" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="300">
<caret line="10" column="37" selection-start-line="10" selection-start-column="37" selection-end-line="10" selection-end-column="37" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/application/WLGitBridgeServer.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="15" max-vertical-offset="810">
<caret line="28" column="35" selection-start-line="28" selection-start-column="35" selection-end-line="28" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/application/WLGitBridgeApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="480">
<caret line="23" column="5" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/git/WLGitServlet.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="390">
<caret line="16" column="48" selection-start-line="16" selection-start-column="48" selection-end-line="16" selection-end-column="48" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeServerTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="7" column="37" selection-start-line="7" selection-start-column="37" selection-end-line="12" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/application/WLGitBridgeApplicationTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLGitServletConfigTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLGitServletTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLReceivePackFactoryTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="7" column="40" selection-start-line="7" selection-start-column="40" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLRepositoryResolverTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/git/WLUploadPackTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/MainTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="195">
<caret line="5" column="13" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/uk/ac/ic/test/WGBServerTests.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="195">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/uk/ac/ic/WGBServer.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.07978723" vertical-offset="0" max-vertical-offset="1316">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<state vertical-scroll-proportion="0.20547946" vertical-offset="0" max-vertical-offset="1095">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>

View file

@ -17,20 +17,42 @@
<path id="writelatex-git-bridge.module.production.classpath">
<path refid="${module.jdk.classpath.writelatex-git-bridge}"/>
<path refid="library.org.eclipse.jgit-3.5.1.201410131835-r.classpath"/>
<path refid="library.org.eclipse.jgit.http.server-3.5.1.201410131835-r.classpath"/>
<path refid="library.javax.servlet-api-3.1.0.classpath"/>
<path refid="library.jetty-all-9.2.3.v20140905.classpath"/>
</path>
<path id="writelatex-git-bridge.runtime.production.module.classpath">
<pathelement location="${writelatex-git-bridge.output.dir}"/>
<path refid="library.org.eclipse.jgit-3.5.1.201410131835-r.classpath"/>
<path refid="library.org.eclipse.jgit.http.server-3.5.1.201410131835-r.classpath"/>
<path refid="library.javax.servlet-api-3.1.0.classpath"/>
<path refid="library.jetty-all-9.2.3.v20140905.classpath"/>
</path>
<path id="writelatex-git-bridge.module.classpath">
<path refid="${module.jdk.classpath.writelatex-git-bridge}"/>
<pathelement location="${writelatex-git-bridge.output.dir}"/>
<path refid="library.org.eclipse.jgit-3.5.1.201410131835-r.classpath"/>
<path refid="library.org.eclipse.jgit.http.server-3.5.1.201410131835-r.classpath"/>
<path refid="library.javax.servlet-api-3.1.0.classpath"/>
<path refid="library.jetty-all-9.2.3.v20140905.classpath"/>
<pathelement location="${idea.home}/lib/hamcrest-core-1.3.jar"/>
<pathelement location="${idea.home}/lib/hamcrest-library-1.3.jar"/>
<pathelement location="${idea.home}/lib/junit-4.11.jar"/>
</path>
<path id="writelatex-git-bridge.runtime.module.classpath">
<pathelement location="${writelatex-git-bridge.testoutput.dir}"/>
<pathelement location="${writelatex-git-bridge.output.dir}"/>
<path refid="library.org.eclipse.jgit-3.5.1.201410131835-r.classpath"/>
<path refid="library.org.eclipse.jgit.http.server-3.5.1.201410131835-r.classpath"/>
<path refid="library.javax.servlet-api-3.1.0.classpath"/>
<path refid="library.jetty-all-9.2.3.v20140905.classpath"/>
<pathelement location="${idea.home}/lib/hamcrest-core-1.3.jar"/>
<pathelement location="${idea.home}/lib/hamcrest-library-1.3.jar"/>
<pathelement location="${idea.home}/lib/junit-4.11.jar"/>
</path>
@ -48,6 +70,12 @@
</dirset>
</path>
<path id="writelatex-git-bridge.module.test.sourcepath">
<dirset dir="${module.writelatex-git-bridge.basedir}">
<include name="test"/>
</dirset>
</path>
<target name="compile.module.writelatex-git-bridge" depends="compile.module.writelatex-git-bridge.production,compile.module.writelatex-git-bridge.tests" description="Compile module writelatex-git-bridge"/>
@ -69,7 +97,23 @@
</copy>
</target>
<target name="compile.module.writelatex-git-bridge.tests" depends="register.custom.compilers,compile.module.writelatex-git-bridge.production" description="compile module writelatex-git-bridge; test classes" unless="skip.tests"/>
<target name="compile.module.writelatex-git-bridge.tests" depends="register.custom.compilers,compile.module.writelatex-git-bridge.production" description="compile module writelatex-git-bridge; test classes" unless="skip.tests">
<mkdir dir="${writelatex-git-bridge.testoutput.dir}"/>
<javac2 destdir="${writelatex-git-bridge.testoutput.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.writelatex-git-bridge}/javac">
<compilerarg line="${compiler.args.writelatex-git-bridge}"/>
<bootclasspath refid="writelatex-git-bridge.module.bootclasspath"/>
<classpath refid="writelatex-git-bridge.module.classpath"/>
<src refid="writelatex-git-bridge.module.test.sourcepath"/>
<patternset refid="excluded.from.compilation.writelatex-git-bridge"/>
</javac2>
<copy todir="${writelatex-git-bridge.testoutput.dir}">
<fileset dir="${module.writelatex-git-bridge.basedir}/test">
<patternset refid="compiler.resources"/>
<type type="file"/>
</fileset>
</copy>
</target>
<target name="clean.module.writelatex-git-bridge" description="cleanup module">
<delete dir="${writelatex-git-bridge.output.dir}"/>

View file

@ -1,120 +1,14 @@
package uk.ac.ic;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jgit.api.AddCommand;
import org.eclipse.jgit.api.CommitCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.http.server.GitServlet;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.ServiceMayNotContinueException;
import org.eclipse.jgit.transport.UploadPack;
import org.eclipse.jgit.transport.resolver.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.Enumeration;
import uk.ac.ic.application.WLGitBridgeApplication;
/**
* Created by Winston on 01/11/14.
*/
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
final ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletContextHandler.setContextPath("/");
server.setHandler(servletContextHandler);
GitServlet servlet = new GitServlet();
servlet.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
@Override
public Repository open(HttpServletRequest httpServletRequest, String s) throws RepositoryNotFoundException, ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
System.out.println(s);
File workspace = new File("/Users/Roxy/git-test/hello");
workspace.mkdirs();
Repository r = null;
try {
r = new FileRepositoryBuilder().setWorkTree(workspace).build();
} catch (IOException e) {
e.printStackTrace();
}
// if the repository doesn't exist, create it
if (!r.getObjectDatabase().exists()) {
try {
r.create();
} catch (IOException e) {
e.printStackTrace();
}
try {
// import initial content
Git git = new Git(r);
AddCommand cmd = git.add();
cmd.addFilepattern(".");
cmd.call();
CommitCommand co = git.commit();
co.setAuthor("Winston","wl3912@ic.ac.uk");
co.setMessage("Initial import of the existing contents");
co.call();
} catch (GitAPIException e) {
e.printStackTrace();
}
}
return r;
}
});
servlet.setReceivePackFactory(new ReceivePackFactory<HttpServletRequest>() {
@Override
public ReceivePack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
return new ReceivePack(repository);
}
});
servlet.setUploadPackFactory(new UploadPackFactory<HttpServletRequest>() {
@Override
public UploadPack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
return new UploadPack(repository);
}
});
servlet.init(new ServletConfig() {
@Override
public String getServletName() {
return "";
}
@Override
public ServletContext getServletContext() {
return servletContextHandler.getServletContext();
}
@Override
public String getInitParameter(String s) {
return "default_init_parameter";
}
@Override
public Enumeration<String> getInitParameterNames() {
return null;
}
});
servletContextHandler.addServlet(new ServletHolder(servlet), "/*");
server.start();
server.join();
public static void main(String[] args) {
new WLGitBridgeApplication(args).run();
}
}

View file

@ -1,10 +0,0 @@
package uk.ac.ic;
/**
* Created by Winston on 02/11/14.
*/
public class WGBServer {
}

View file

@ -0,0 +1,26 @@
package uk.ac.ic.application;
import javax.servlet.ServletException;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitBridgeApplication {
public WLGitBridgeApplication(String[] args) {
parseArguments(args);
}
public void run() {
try {
new WLGitBridgeServer(8080).start();
} catch (ServletException e) {
e.printStackTrace();
}
}
private void parseArguments(String[] args) {
}
}

View file

@ -0,0 +1,48 @@
package uk.ac.ic.application;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import uk.ac.ic.git.WLGitServlet;
import javax.servlet.ServletException;
import java.net.BindException;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitBridgeServer {
private final Server jettyServer;
private final int port;
public WLGitBridgeServer(final int port) throws ServletException {
this.port = port;
jettyServer = new Server(port);
configureJettyServer();
}
public void start() {
try {
jettyServer.start();
} catch (BindException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
try {
jettyServer.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private void configureJettyServer() throws ServletException {
final ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletContextHandler.setContextPath("/");
servletContextHandler.addServlet(new ServletHolder(new WLGitServlet(servletContextHandler)), "/*");
jettyServer.setHandler(servletContextHandler);
}
}

View file

@ -0,0 +1,20 @@
package uk.ac.ic.git;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jgit.http.server.GitServlet;
import javax.servlet.ServletException;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitServlet extends GitServlet {
public WLGitServlet(ServletContextHandler servletContextHandler) throws ServletException {
setRepositoryResolver(new WLRepositoryResolver());
setReceivePackFactory(new WLReceivePackFactory());
setUploadPackFactory(new WLUploadPackFactory());
init(new WLGitServletConfig(servletContextHandler));
}
}

View file

@ -0,0 +1,42 @@
package uk.ac.ic.git;
import org.eclipse.jetty.servlet.ServletContextHandler;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import java.util.Enumeration;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitServletConfig implements ServletConfig {
private static final String SERVLET_NAME = "git-servlet";
private ServletContext servletContext;
public WLGitServletConfig(ServletContextHandler servletContextHandler) {
servletContext = servletContextHandler.getServletContext();
}
@Override
public String getServletName() {
return SERVLET_NAME;
}
@Override
public ServletContext getServletContext() {
return servletContext;
}
@Override
public String getInitParameter(String s) {
return null;
}
@Override
public Enumeration<String> getInitParameterNames() {
return null;
}
}

View file

@ -0,0 +1,21 @@
package uk.ac.ic.git;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import javax.servlet.http.HttpServletRequest;
/**
* Created by Winston on 02/11/14.
*/
public class WLReceivePackFactory implements ReceivePackFactory<HttpServletRequest> {
@Override
public ReceivePack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
return new ReceivePack(repository);
}
}

View file

@ -0,0 +1,64 @@
package uk.ac.ic.git;
import org.eclipse.jgit.api.AddCommand;
import org.eclipse.jgit.api.CommitCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
import org.eclipse.jgit.transport.ServiceMayNotContinueException;
import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
/**
* Created by Winston on 02/11/14.
*/
public class WLRepositoryResolver implements RepositoryResolver<HttpServletRequest> {
@Override
public Repository open(HttpServletRequest httpServletRequest, String s) throws RepositoryNotFoundException, ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
System.out.println(s);
File workspace = new File("/Users/Roxy/git-test/hello");
workspace.mkdirs();
Repository r = null;
try {
r = new FileRepositoryBuilder().setWorkTree(workspace).build();
} catch (IOException e) {
e.printStackTrace();
}
// if the repository doesn't exist, create it
if (!r.getObjectDatabase().exists()) {
try {
r.create();
} catch (IOException e) {
e.printStackTrace();
}
try {
// import initial content
Git git = new Git(r);
AddCommand cmd = git.add();
cmd.addFilepattern(".");
cmd.call();
CommitCommand co = git.commit();
co.setAuthor("Winston", "wl3912@ic.ac.uk");
co.setMessage("Initial import of the existing contents");
co.call();
} catch (GitAPIException e) {
e.printStackTrace();
}
}
return r;
}
}

View file

@ -0,0 +1,19 @@
package uk.ac.ic.git;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.transport.UploadPack;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.eclipse.jgit.transport.resolver.UploadPackFactory;
import javax.servlet.http.HttpServletRequest;
/**
* Created by Winston on 02/11/14.
*/
public class WLUploadPackFactory implements UploadPackFactory<HttpServletRequest> {
@Override
public UploadPack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
return new UploadPack(repository);
}
}

View file

@ -1,7 +1,15 @@
package uk.ac.ic.test;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class MainTests {
@Test
public void nothingToTest() {
}
}

View file

@ -1,7 +0,0 @@
package uk.ac.ic.test;
/**
* Created by Winston on 02/11/14.
*/
public class WGBServerTests {
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.application;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitBridgeApplicationTests {
@Test
public void nothingToTest() {
}
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.application;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitBridgeServerTests {
@Test
public void nothingToTest() {
}
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.git;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitServletConfigTests {
@Test
public void nothingToTest() {
}
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.git;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLGitServletTests {
@Test
public void nothingToTest() {
}
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.git;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLReceivePackFactoryTests {
@Test
public void nothingToTest() {
}
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.git;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLRepositoryResolverTests {
@Test
public void nothingToTest() {
}
}

View file

@ -0,0 +1,15 @@
package uk.ac.ic.test.git;
import org.junit.Test;
/**
* Created by Winston on 02/11/14.
*/
public class WLUploadPackTests {
@Test
public void nothingToTest() {
}
}

View file

@ -12,6 +12,17 @@
<orderEntry type="library" name="org.eclipse.jgit.http.server-3.5.1.201410131835-r" level="project" />
<orderEntry type="library" name="javax.servlet-api-3.1.0" level="project" />
<orderEntry type="library" name="jetty-all-9.2.3.v20140905" level="project" />
<orderEntry type="module-library" scope="TEST">
<library name="JUnit4">
<CLASSES>
<root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.11.jar!/" />
<root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" />
<root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-library-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

View file

@ -92,6 +92,25 @@
<property name="project.jdk.home" value="${jdk.home.1.7}"/>
<property name="project.jdk.bin" value="${jdk.bin.1.7}"/>
<property name="project.jdk.classpath" value="jdk.classpath.1.7"/>
<!-- Project Libraries -->
<path id="library.javax.servlet-api-3.1.0.classpath">
<pathelement location="${basedir}/libs/javax.servlet-api-3.1.0.jar"/>
</path>
<path id="library.jetty-all-9.2.3.v20140905.classpath">
<pathelement location="${basedir}/libs/jetty-all-9.2.3.v20140905.jar"/>
</path>
<path id="library.org.eclipse.jgit-3.5.1.201410131835-r.classpath">
<pathelement location="${basedir}/libs/org.eclipse.jgit-3.5.1.201410131835-r.jar"/>
</path>
<path id="library.org.eclipse.jgit.http.server-3.5.1.201410131835-r.classpath">
<pathelement location="${basedir}/libs/org.eclipse.jgit.http.server-3.5.1.201410131835-r.jar"/>
</path>
<!-- Register Custom Compiler Taskdefs -->
<property name="javac2.home" value="${idea.home}/lib"/>
<path id="javac2.classpath">