Index: chrome/common/extensions/docs/server2/echo_handler.py |
diff --git a/chrome/common/extensions/docs/server2/echo_handler.py b/chrome/common/extensions/docs/server2/echo_handler.py |
index c94c412157fc3a3b8c14442d315128e02824476d..39fd287ca4f0e6b490e5b9cbc8544ec33d61cc40 100755 |
--- a/chrome/common/extensions/docs/server2/echo_handler.py |
+++ b/chrome/common/extensions/docs/server2/echo_handler.py |
@@ -20,17 +20,19 @@ from google.appengine.ext.webapp.util import run_wsgi_app |
from api_data_source import APIDataSource |
from api_list_data_source import APIListDataSource |
from appengine_memcache import AppEngineMemcache |
+from appengine_url_fetcher import AppEngineUrlFetcher |
from branch_utility import BranchUtility |
from example_zipper import ExampleZipper |
from file_system_cache import FileSystemCache |
from intro_data_source import IntroDataSource |
from local_file_system import LocalFileSystem |
from memcache_file_system import MemcacheFileSystem |
+from memcache_url_fetcher import MemcacheUrlFetcher |
from samples_data_source import SamplesDataSource |
from server_instance import ServerInstance |
from subversion_file_system import SubversionFileSystem |
from template_data_source import TemplateDataSource |
-from appengine_url_fetcher import AppEngineUrlFetcher |
+from zip_file_system import ZipFileSystem |
SVN_URL = 'http://src.chromium.org/chrome' |
TRUNK_URL = SVN_URL + '/trunk' |
@@ -46,6 +48,8 @@ PRIVATE_TEMPLATE_PATH = DOCS_PATH + '/server2/templates/private' |
EXAMPLES_PATH = DOCS_PATH + '/examples' |
FULL_EXAMPLES_PATH = DOCS_PATH + '/' + EXAMPLES_PATH |
+GITHUB_URL = 'https://api.github.com/repos/GoogleChrome/chrome-app-samples' |
+ |
# The branch that the server will default to when no branch is specified in the |
# URL. This is necessary because it is not possible to pass flags to the script |
# handler. |
@@ -69,14 +73,17 @@ class Handler(webapp.RequestHandler): |
def _GetInstanceForBranch(self, branch): |
if branch in SERVER_INSTANCES: |
return SERVER_INSTANCES[branch] |
+ appengine_memcache = AppEngineMemcache(branch, memcache) |
if branch == 'local': |
file_system = LocalFileSystem(EXTENSIONS_PATH) |
else: |
fetcher = AppEngineUrlFetcher( |
_GetURLFromBranch(branch) + '/' + EXTENSIONS_PATH) |
file_system = MemcacheFileSystem(SubversionFileSystem(fetcher), |
- AppEngineMemcache(branch, memcache)) |
- |
+ appengine_memcache) |
+ zip_file_system = ZipFileSystem( |
+ MemcacheUrlFetcher(appengine_memcache, GITHUB_URL)) |
+ zip_cache_builder = FileSystemCache.Builder(zip_file_system) |
cache_builder = FileSystemCache.Builder(file_system) |
api_data_source = APIDataSource(cache_builder, API_PATH) |
api_list_data_source = APIListDataSource(cache_builder, |
@@ -87,7 +94,9 @@ class Handler(webapp.RequestHandler): |
[INTRO_PATH, ARTICLE_PATH]) |
samples_data_source_factory = SamplesDataSource.Factory(branch, |
file_system, |
+ zip_file_system, |
cache_builder, |
+ zip_cache_builder, |
EXAMPLES_PATH) |
template_data_source_factory = TemplateDataSource.Factory( |
branch, |