Index: chrome/common/extensions/docs/server2/patch_servlet.py |
diff --git a/chrome/common/extensions/docs/server2/patch_servlet.py b/chrome/common/extensions/docs/server2/patch_servlet.py |
index 5680adc88876557b62f0efeb5f59c3f93605d27d..6bef0d8df46fc3dbcbb59d9e46b70ed80728fd44 100644 |
--- a/chrome/common/extensions/docs/server2/patch_servlet.py |
+++ b/chrome/common/extensions/docs/server2/patch_servlet.py |
@@ -12,7 +12,7 @@ from caching_file_system import CachingFileSystem |
from caching_rietveld_patcher import CachingRietveldPatcher |
from chained_compiled_file_system import ChainedCompiledFileSystem |
from compiled_file_system import CompiledFileSystem |
-from host_file_system_creator import HostFileSystemCreator |
+from host_file_system_provider import HostFileSystemProvider |
from instance_servlet import InstanceServlet |
from render_servlet import RenderServlet |
from rietveld_patcher import RietveldPatcher, RietveldPatcherError |
@@ -29,40 +29,51 @@ class _PatchServletDelegate(RenderServlet.Delegate): |
self._delegate = delegate |
def CreateServerInstance(self): |
- object_store_creator = ObjectStoreCreator(start_empty=False) |
- branch_utility = self._delegate.CreateBranchUtility(object_store_creator) |
- host_file_system_creator = self._delegate.CreateHostFileSystemCreator( |
- object_store_creator) |
- # offline=False because a patch can rely on files that are already in SVN |
- # repository but not yet pulled into data store by cron jobs (a typical |
+ # start_empty=False because a patch can rely on files that are already in |
+ # SVN repository but not yet pulled into data store by cron jobs (a typical |
# example is to add documentation for an existing API). |
- base_file_system = CachingFileSystem( |
- host_file_system_creator.Create(offline=False), |
+ object_store_creator = ObjectStoreCreator(start_empty=False) |
+ |
+ unpatched_host_file_system_provider = ( |
+ self._delegate.CreateHostFileSystemProvider(object_store_creator)) |
+ unpatched_trunk_host_file_system = ( |
+ unpatched_host_file_system_provider.GetTrunk()) |
+ unpatched_compiled_fs_factory = CompiledFileSystem.Factory( |
+ unpatched_trunk_host_file_system, |
object_store_creator) |
- base_compiled_fs_factory = CompiledFileSystem.Factory(base_file_system, |
- object_store_creator) |
rietveld_patcher = CachingRietveldPatcher( |
RietveldPatcher(svn_constants.EXTENSIONS_PATH, |
self._issue, |
AppEngineUrlFetcher(url_constants.CODEREVIEW_SERVER)), |
object_store_creator) |
- patched_file_system = PatchedFileSystem(base_file_system, |
+ |
+ patched_file_system = PatchedFileSystem(unpatched_trunk_host_file_system, |
rietveld_patcher) |
+ patched_host_file_system_provider = ( |
+ self._delegate.CreateHostFileSystemProvider( |
+ object_store_creator, |
+ # The patched file system needs to be online otherwise it'd be |
+ # impossible to add files in the patches. |
+ offline=False, |
+ # The trunk file system for this creator should be the patched one. |
+ default_trunk_instance=patched_file_system)) |
patched_compiled_fs_factory = CompiledFileSystem.Factory( |
- patched_file_system, object_store_creator) |
+ patched_file_system, |
+ object_store_creator) |
- compiled_fs_factory = ChainedCompiledFileSystem.Factory( |
+ combined_compiled_fs_factory = ChainedCompiledFileSystem.Factory( |
[(patched_compiled_fs_factory, patched_file_system), |
- (base_compiled_fs_factory, base_file_system)]) |
+ (unpatched_compiled_fs_factory, unpatched_trunk_host_file_system)]) |
+ |
+ branch_utility = self._delegate.CreateBranchUtility(object_store_creator) |
return ServerInstance(object_store_creator, |
- patched_file_system, |
self._delegate.CreateAppSamplesFileSystem( |
object_store_creator), |
- compiled_fs_factory, |
+ combined_compiled_fs_factory, |
branch_utility, |
- host_file_system_creator, |
+ patched_host_file_system_provider, |
base_path='/_patch/%s/' % self._issue) |
class PatchServlet(Servlet): |