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_data_source import APIDataSource | 5 from api_data_source import APIDataSource |
6 from api_list_data_source import APIListDataSource | 6 from api_list_data_source import APIListDataSource |
7 from appengine_wrappers import IsDevServer | 7 from appengine_wrappers import IsDevServer |
8 from availability_finder import AvailabilityFinder | 8 from availability_finder import AvailabilityFinder |
9 from compiled_file_system import CompiledFileSystem | 9 from compiled_file_system import CompiledFileSystem |
10 from empty_dir_file_system import EmptyDirFileSystem | 10 from empty_dir_file_system import EmptyDirFileSystem |
11 from example_zipper import ExampleZipper | 11 from example_zipper import ExampleZipper |
| 12 from features_bundle import FeaturesBundle |
12 from host_file_system_creator import HostFileSystemCreator | 13 from host_file_system_creator import HostFileSystemCreator |
13 from host_file_system_iterator import HostFileSystemIterator | 14 from host_file_system_iterator import HostFileSystemIterator |
14 from intro_data_source import IntroDataSource | 15 from intro_data_source import IntroDataSource |
15 from object_store_creator import ObjectStoreCreator | 16 from object_store_creator import ObjectStoreCreator |
16 from path_canonicalizer import PathCanonicalizer | 17 from path_canonicalizer import PathCanonicalizer |
17 from permissions_data_source import PermissionsDataSource | |
18 from redirector import Redirector | 18 from redirector import Redirector |
19 from reference_resolver import ReferenceResolver | 19 from reference_resolver import ReferenceResolver |
20 from samples_data_source import SamplesDataSource | 20 from samples_data_source import SamplesDataSource |
21 import svn_constants | 21 import svn_constants |
22 from template_data_source import TemplateDataSource | 22 from template_data_source import TemplateDataSource |
23 from test_branch_utility import TestBranchUtility | 23 from test_branch_utility import TestBranchUtility |
24 from test_object_store import TestObjectStore | 24 from test_object_store import TestObjectStore |
25 | 25 |
26 | |
27 class ServerInstance(object): | 26 class ServerInstance(object): |
28 | 27 |
29 def __init__(self, | 28 def __init__(self, |
30 object_store_creator, | 29 object_store_creator, |
31 host_file_system, | 30 host_file_system, |
32 app_samples_file_system, | 31 app_samples_file_system, |
33 base_path, | 32 base_path, |
34 compiled_fs_factory, | 33 compiled_fs_factory, |
35 branch_utility, | 34 branch_utility, |
36 host_file_system_creator): | 35 host_file_system_creator): |
37 self.object_store_creator = object_store_creator | 36 self.object_store_creator = object_store_creator |
38 | 37 |
39 self.host_file_system = host_file_system | 38 self.host_file_system = host_file_system |
40 | 39 |
41 self.app_samples_file_system = app_samples_file_system | 40 self.app_samples_file_system = app_samples_file_system |
42 | 41 |
43 self.compiled_host_fs_factory = compiled_fs_factory | 42 self.compiled_host_fs_factory = compiled_fs_factory |
44 | 43 |
45 self.host_file_system_creator = host_file_system_creator | 44 self.host_file_system_creator = host_file_system_creator |
46 | 45 |
47 self.host_file_system_iterator = HostFileSystemIterator( | 46 self.host_file_system_iterator = HostFileSystemIterator( |
48 host_file_system_creator, | 47 host_file_system_creator, |
49 host_file_system, | 48 host_file_system, |
50 branch_utility) | 49 branch_utility) |
51 | 50 |
| 51 self.features_bundle = FeaturesBundle( |
| 52 self.host_file_system, |
| 53 self.compiled_host_fs_factory, |
| 54 svn_constants.API_FEATURES_PATH, |
| 55 svn_constants.MANIFEST_FEATURES_PATH, |
| 56 svn_constants.MANIFEST_JSON_PATH, |
| 57 svn_constants.PERMISSION_FEATURES_PATH, |
| 58 svn_constants.PERMISSIONS_JSON_PATH) |
| 59 |
52 self.availability_finder = AvailabilityFinder( | 60 self.availability_finder = AvailabilityFinder( |
53 self.host_file_system_iterator, | 61 self.host_file_system_iterator, |
54 object_store_creator, | 62 object_store_creator, |
55 branch_utility) | 63 branch_utility) |
56 | 64 |
57 self.api_list_data_source_factory = APIListDataSource.Factory( | 65 self.api_list_data_source_factory = APIListDataSource.Factory( |
| 66 self.host_file_system, |
58 self.compiled_host_fs_factory, | 67 self.compiled_host_fs_factory, |
59 self.host_file_system, | 68 svn_constants.PUBLIC_TEMPLATE_PATH, |
60 svn_constants.API_PATH, | 69 self.features_bundle) |
61 svn_constants.PUBLIC_TEMPLATE_PATH) | |
62 | 70 |
63 self.api_data_source_factory = APIDataSource.Factory( | 71 self.api_data_source_factory = APIDataSource.Factory( |
64 self.compiled_host_fs_factory, | 72 self.compiled_host_fs_factory, |
65 svn_constants.API_PATH, | 73 svn_constants.API_PATH, |
66 self.availability_finder, | 74 self.availability_finder, |
67 branch_utility) | 75 branch_utility) |
68 | 76 |
69 self.ref_resolver_factory = ReferenceResolver.Factory( | 77 self.ref_resolver_factory = ReferenceResolver.Factory( |
70 self.api_data_source_factory, | 78 self.api_data_source_factory, |
71 self.api_list_data_source_factory, | 79 self.api_list_data_source_factory, |
(...skipping 19 matching lines...) Expand all Loading... |
91 base_path) | 99 base_path) |
92 | 100 |
93 self.api_data_source_factory.SetSamplesDataSourceFactory( | 101 self.api_data_source_factory.SetSamplesDataSourceFactory( |
94 self.samples_data_source_factory) | 102 self.samples_data_source_factory) |
95 | 103 |
96 self.intro_data_source_factory = IntroDataSource.Factory( | 104 self.intro_data_source_factory = IntroDataSource.Factory( |
97 self.compiled_host_fs_factory, | 105 self.compiled_host_fs_factory, |
98 self.ref_resolver_factory, | 106 self.ref_resolver_factory, |
99 [svn_constants.INTRO_PATH, svn_constants.ARTICLE_PATH]) | 107 [svn_constants.INTRO_PATH, svn_constants.ARTICLE_PATH]) |
100 | 108 |
101 self.permissions_data_source = PermissionsDataSource( | |
102 self.compiled_host_fs_factory, | |
103 self.host_file_system, | |
104 '/'.join((svn_constants.API_PATH, '_api_features.json')), | |
105 '/'.join((svn_constants.API_PATH, '_permission_features.json')), | |
106 '/'.join((svn_constants.JSON_PATH, 'permissions.json'))) | |
107 | |
108 self.example_zipper = ExampleZipper( | 109 self.example_zipper = ExampleZipper( |
109 self.compiled_host_fs_factory, | 110 self.compiled_host_fs_factory, |
110 self.host_file_system, | 111 self.host_file_system, |
111 svn_constants.DOCS_PATH) | 112 svn_constants.DOCS_PATH) |
112 | 113 |
113 self.path_canonicalizer = PathCanonicalizer(self.compiled_host_fs_factory) | 114 self.path_canonicalizer = PathCanonicalizer(self.compiled_host_fs_factory) |
114 | 115 |
115 self.redirector = Redirector( | 116 self.redirector = Redirector( |
116 self.compiled_host_fs_factory, | 117 self.compiled_host_fs_factory, |
117 self.host_file_system, | 118 self.host_file_system, |
118 svn_constants.PUBLIC_TEMPLATE_PATH) | 119 svn_constants.PUBLIC_TEMPLATE_PATH) |
119 | 120 |
120 self.strings_json_path = '/'.join((svn_constants.JSON_PATH, 'strings.json')) | 121 self.strings_json_path = svn_constants.STRINGS_JSON_PATH |
121 self.sidenav_json_base_path = svn_constants.JSON_PATH | 122 self.sidenav_json_base_path = svn_constants.JSON_PATH |
122 self.manifest_json_path = '/'.join( | 123 self.manifest_json_path = svn_constants.MANIFEST_JSON_PATH |
123 (svn_constants.JSON_PATH, 'manifest.json')) | 124 self.manifest_features_path = svn_constants.MANIFEST_FEATURES_PATH |
124 self.manifest_features_path = '/'.join( | |
125 (svn_constants.API_PATH, '_manifest_features.json')) | |
126 | 125 |
127 self.template_data_source_factory = TemplateDataSource.Factory( | 126 self.template_data_source_factory = TemplateDataSource.Factory( |
128 self.api_data_source_factory, | 127 self.api_data_source_factory, |
129 self.api_list_data_source_factory, | 128 self.api_list_data_source_factory, |
130 self.intro_data_source_factory, | 129 self.intro_data_source_factory, |
131 self.samples_data_source_factory, | 130 self.samples_data_source_factory, |
132 self.compiled_host_fs_factory, | 131 self.compiled_host_fs_factory, |
133 self.ref_resolver_factory, | 132 self.ref_resolver_factory, |
134 self.permissions_data_source, | 133 self.features_bundle, |
135 svn_constants.PUBLIC_TEMPLATE_PATH, | 134 svn_constants.PUBLIC_TEMPLATE_PATH, |
136 svn_constants.PRIVATE_TEMPLATE_PATH, | 135 svn_constants.PRIVATE_TEMPLATE_PATH, |
137 base_path) | 136 base_path) |
138 | 137 |
139 self.api_data_source_factory.SetTemplateDataSource( | 138 self.api_data_source_factory.SetTemplateDataSource( |
140 self.template_data_source_factory) | 139 self.template_data_source_factory) |
141 self.permissions_data_source.SetTemplateDataSource( | 140 self.features_bundle.AnnotateWithTemplateData( |
142 self.template_data_source_factory) | 141 self.template_data_source_factory) |
143 | 142 |
144 @staticmethod | 143 @staticmethod |
145 def ForTest(file_system): | 144 def ForTest(file_system): |
146 object_store_creator = ObjectStoreCreator.ForTest() | 145 object_store_creator = ObjectStoreCreator.ForTest() |
147 return ServerInstance(object_store_creator, | 146 return ServerInstance(object_store_creator, |
148 file_system, | 147 file_system, |
149 EmptyDirFileSystem(), | 148 EmptyDirFileSystem(), |
150 '', | 149 '', |
151 CompiledFileSystem.Factory(file_system, | 150 CompiledFileSystem.Factory(file_system, |
(...skipping 10 matching lines...) Expand all Loading... |
162 object_store_creator) | 161 object_store_creator) |
163 trunk_file_system = host_file_system_creator.Create() | 162 trunk_file_system = host_file_system_creator.Create() |
164 return ServerInstance( | 163 return ServerInstance( |
165 object_store_creator, | 164 object_store_creator, |
166 trunk_file_system, | 165 trunk_file_system, |
167 EmptyDirFileSystem(), | 166 EmptyDirFileSystem(), |
168 '', | 167 '', |
169 CompiledFileSystem.Factory(trunk_file_system, object_store_creator), | 168 CompiledFileSystem.Factory(trunk_file_system, object_store_creator), |
170 TestBranchUtility.CreateWithCannedData(), | 169 TestBranchUtility.CreateWithCannedData(), |
171 host_file_system_creator) | 170 host_file_system_creator) |
OLD | NEW |