| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 from api_categorizer import APICategorizer | 5 from api_categorizer import APICategorizer |
| 6 from api_data_source import APIDataSource | 6 from api_data_source import APIDataSource |
| 7 from api_list_data_source import APIListDataSource | 7 from api_list_data_source import APIListDataSource |
| 8 from api_models import APIModels | 8 from api_models import APIModels |
| 9 from availability_finder import AvailabilityFinder | 9 from availability_finder import AvailabilityFinder |
| 10 from compiled_file_system import CompiledFileSystem | 10 from compiled_file_system import CompiledFileSystem |
| 11 from content_providers import ContentProviders | 11 from content_providers import ContentProviders |
| 12 from document_renderer import DocumentRenderer | 12 from document_renderer import DocumentRenderer |
| 13 from empty_dir_file_system import EmptyDirFileSystem | 13 from empty_dir_file_system import EmptyDirFileSystem |
| 14 from environment import IsDevServer | 14 from environment import IsDevServer |
| 15 from features_bundle import FeaturesBundle | 15 from features_bundle import FeaturesBundle |
| 16 from github_file_system_provider import GithubFileSystemProvider | 16 from github_file_system_provider import GithubFileSystemProvider |
| 17 from host_file_system_iterator import HostFileSystemIterator |
| 17 from host_file_system_provider import HostFileSystemProvider | 18 from host_file_system_provider import HostFileSystemProvider |
| 18 from host_file_system_iterator import HostFileSystemIterator | |
| 19 from object_store_creator import ObjectStoreCreator | 19 from object_store_creator import ObjectStoreCreator |
| 20 from path_canonicalizer import PathCanonicalizer | 20 from path_canonicalizer import PathCanonicalizer |
| 21 from reference_resolver import ReferenceResolver | 21 from reference_resolver import ReferenceResolver |
| 22 from samples_data_source import SamplesDataSource | 22 from samples_data_source import SamplesDataSource |
| 23 from table_of_contents_renderer import TableOfContentsRenderer | 23 from table_of_contents_renderer import TableOfContentsRenderer |
| 24 from template_renderer import TemplateRenderer | 24 from template_renderer import TemplateRenderer |
| 25 from test_branch_utility import TestBranchUtility | 25 from test_branch_utility import TestBranchUtility |
| 26 from test_object_store import TestObjectStore | 26 from test_object_store import TestObjectStore |
| 27 from gcs_file_system_provider import CloudStorageFileSystemProvider |
| 27 | 28 |
| 28 | 29 |
| 29 class ServerInstance(object): | 30 class ServerInstance(object): |
| 30 | 31 |
| 31 def __init__(self, | 32 def __init__(self, |
| 32 object_store_creator, | 33 object_store_creator, |
| 33 compiled_fs_factory, | 34 compiled_fs_factory, |
| 34 branch_utility, | 35 branch_utility, |
| 35 host_file_system_provider, | 36 host_file_system_provider, |
| 36 github_file_system_provider, | 37 github_file_system_provider, |
| 38 gcs_file_system_provider, |
| 37 base_path='/'): | 39 base_path='/'): |
| 38 ''' | 40 ''' |
| 39 |object_store_creator| | 41 |object_store_creator| |
| 40 The ObjectStoreCreator used to create almost all caches. | 42 The ObjectStoreCreator used to create almost all caches. |
| 41 |compiled_fs_factory| | 43 |compiled_fs_factory| |
| 42 Factory used to create CompiledFileSystems, a higher-level cache type | 44 Factory used to create CompiledFileSystems, a higher-level cache type |
| 43 than ObjectStores. This can usually be derived from just | 45 than ObjectStores. This can usually be derived from just |
| 44 |object_store_creator| but under special circumstances a different | 46 |object_store_creator| but under special circumstances a different |
| 45 implementation needs to be passed in. | 47 implementation needs to be passed in. |
| 46 |branch_utility| | 48 |branch_utility| |
| 47 Has knowledge of Chrome branches, channels, and versions. | 49 Has knowledge of Chrome branches, channels, and versions. |
| 48 |host_file_system_provider| | 50 |host_file_system_provider| |
| 49 Creates FileSystem instances which host the server at alternative | 51 Creates FileSystem instances which host the server at alternative |
| 50 revisions. | 52 revisions. |
| 51 |github_file_system_provider| | 53 |github_file_system_provider| |
| 52 Creates FileSystem instances backed by GitHub. | 54 Creates FileSystem instances backed by GitHub. |
| 53 |base_path| | 55 |base_path| |
| 54 The path which all HTML is generated relative to. Usually this is / | 56 The path which all HTML is generated relative to. Usually this is / |
| 55 but some servlets need to override this. | 57 but some servlets need to override this. |
| 56 ''' | 58 ''' |
| 57 self.object_store_creator = object_store_creator | 59 self.object_store_creator = object_store_creator |
| 58 | 60 |
| 59 self.compiled_fs_factory = compiled_fs_factory | 61 self.compiled_fs_factory = compiled_fs_factory |
| 60 | 62 |
| 61 self.host_file_system_provider = host_file_system_provider | 63 self.host_file_system_provider = host_file_system_provider |
| 62 host_fs_at_trunk = host_file_system_provider.GetTrunk() | 64 host_fs_at_trunk = host_file_system_provider.GetTrunk() |
| 63 | 65 |
| 64 self.github_file_system_provider = github_file_system_provider | 66 self.github_file_system_provider = github_file_system_provider |
| 67 self.gcs_file_system_provider = gcs_file_system_provider |
| 65 | 68 |
| 66 assert base_path.startswith('/') and base_path.endswith('/') | 69 assert base_path.startswith('/') and base_path.endswith('/') |
| 67 self.base_path = base_path | 70 self.base_path = base_path |
| 68 | 71 |
| 69 self.host_file_system_iterator = HostFileSystemIterator( | 72 self.host_file_system_iterator = HostFileSystemIterator( |
| 70 host_file_system_provider, | 73 host_file_system_provider, |
| 71 branch_utility) | 74 branch_utility) |
| 72 | 75 |
| 73 self.features_bundle = FeaturesBundle( | 76 self.features_bundle = FeaturesBundle( |
| 74 host_fs_at_trunk, | 77 host_fs_at_trunk, |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 self.api_data_source_factory.SetSamplesDataSourceFactory( | 137 self.api_data_source_factory.SetSamplesDataSourceFactory( |
| 135 self.samples_data_source_factory) | 138 self.samples_data_source_factory) |
| 136 | 139 |
| 137 self.path_canonicalizer = PathCanonicalizer( | 140 self.path_canonicalizer = PathCanonicalizer( |
| 138 self.compiled_fs_factory, | 141 self.compiled_fs_factory, |
| 139 host_fs_at_trunk) | 142 host_fs_at_trunk) |
| 140 | 143 |
| 141 self.content_providers = ContentProviders( | 144 self.content_providers = ContentProviders( |
| 142 self.compiled_fs_factory, | 145 self.compiled_fs_factory, |
| 143 host_fs_at_trunk, | 146 host_fs_at_trunk, |
| 144 self.github_file_system_provider) | 147 self.github_file_system_provider, |
| 148 self.gcs_file_system_provider) |
| 145 | 149 |
| 146 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry, | 150 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry, |
| 147 # then factor out the DataSource creation into a factory method, so that | 151 # then factor out the DataSource creation into a factory method, so that |
| 148 # the entire ServerInstance doesn't need to be passed in here. | 152 # the entire ServerInstance doesn't need to be passed in here. |
| 149 self.template_renderer = TemplateRenderer(self) | 153 self.template_renderer = TemplateRenderer(self) |
| 150 | 154 |
| 151 # TODO(kalman): It may be better for |document_renderer| to construct a | 155 # TODO(kalman): It may be better for |document_renderer| to construct a |
| 152 # TemplateDataSource itself rather than depending on template_renderer, but | 156 # TemplateDataSource itself rather than depending on template_renderer, but |
| 153 # for that the above todo should be addressed. | 157 # for that the above todo should be addressed. |
| 154 self.document_renderer = DocumentRenderer(TableOfContentsRenderer( | 158 self.document_renderer = DocumentRenderer(TableOfContentsRenderer( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 167 'can be specified') | 171 'can be specified') |
| 168 if file_system_provider is None: | 172 if file_system_provider is None: |
| 169 file_system_provider = HostFileSystemProvider.ForTest( | 173 file_system_provider = HostFileSystemProvider.ForTest( |
| 170 file_system, | 174 file_system, |
| 171 object_store_creator) | 175 object_store_creator) |
| 172 return ServerInstance(object_store_creator, | 176 return ServerInstance(object_store_creator, |
| 173 CompiledFileSystem.Factory(object_store_creator), | 177 CompiledFileSystem.Factory(object_store_creator), |
| 174 TestBranchUtility.CreateWithCannedData(), | 178 TestBranchUtility.CreateWithCannedData(), |
| 175 file_system_provider, | 179 file_system_provider, |
| 176 GithubFileSystemProvider.ForEmpty(), | 180 GithubFileSystemProvider.ForEmpty(), |
| 181 CloudStorageFileSystemProvider(object_store_creator), |
| 177 base_path=base_path) | 182 base_path=base_path) |
| 178 | 183 |
| 179 @staticmethod | 184 @staticmethod |
| 180 def ForLocal(): | 185 def ForLocal(): |
| 181 object_store_creator = ObjectStoreCreator(start_empty=False, | 186 object_store_creator = ObjectStoreCreator(start_empty=False, |
| 182 store_type=TestObjectStore) | 187 store_type=TestObjectStore) |
| 183 host_file_system_provider = HostFileSystemProvider.ForLocal( | 188 host_file_system_provider = HostFileSystemProvider.ForLocal( |
| 184 object_store_creator) | 189 object_store_creator) |
| 185 return ServerInstance( | 190 return ServerInstance( |
| 186 object_store_creator, | 191 object_store_creator, |
| 187 CompiledFileSystem.Factory(object_store_creator), | 192 CompiledFileSystem.Factory(object_store_creator), |
| 188 TestBranchUtility.CreateWithCannedData(), | 193 TestBranchUtility.CreateWithCannedData(), |
| 189 host_file_system_provider, | 194 host_file_system_provider, |
| 190 GithubFileSystemProvider.ForEmpty()) | 195 GithubFileSystemProvider.ForEmpty(), |
| 196 CloudStorageFileSystemProvider(object_store_creator)) |
| OLD | NEW |