|
43 | 43 | from com.sun.star.ucb import IllegalIdentifierException |
44 | 44 |
|
45 | 45 | from .ucp import Identifier |
| 46 | +from .ucp import getDataSourceUrl |
46 | 47 | from .ucp import getExceptionMessage |
47 | 48 |
|
48 | | -from .database import DataBase |
49 | | - |
50 | 49 | from .datasource import DataSource |
51 | 50 |
|
52 | | -from .unotool import checkVersion |
53 | | -from .unotool import getExtensionVersion |
54 | 51 | from .unotool import getUrlTransformer |
55 | 52 | from .unotool import parseUrl |
56 | 53 |
|
57 | | -from .dbtool import getConnectionUrl |
58 | | - |
59 | 54 | from .logger import getLogger |
60 | 55 |
|
61 | | -from .oauth2 import getOAuth2Version |
62 | | -from .oauth2 import g_extension as g_oauth2ext |
63 | | -from .oauth2 import g_version as g_oauth2ver |
64 | | - |
65 | 56 | from .jdbcdriver import g_extension as g_jdbcext |
66 | | -from .jdbcdriver import g_identifier as g_jdbcid |
67 | | -from .jdbcdriver import g_version as g_jdbcver |
68 | 57 |
|
69 | | -from .dbconfig import g_folder |
70 | 58 | from .dbconfig import g_version |
71 | 59 |
|
72 | 60 | from .configuration import g_extension |
73 | 61 | from .configuration import g_identifier |
74 | 62 | from .configuration import g_defaultlog |
75 | | -from .configuration import g_scheme |
76 | | - |
77 | | -from .ucp import g_ucbseparator |
78 | 63 |
|
79 | 64 | import traceback |
80 | 65 |
|
@@ -109,8 +94,11 @@ def createContentIdentifier(self, url): |
109 | 94 | # XContentProvider |
110 | 95 | def queryContent(self, identifier): |
111 | 96 | try: |
| 97 | + print("ContentProvider.queryContent() 1") |
112 | 98 | url = self._getPresentationUrl(identifier.getContentIdentifier()) |
| 99 | + print("ContentProvider.queryContent() 2") |
113 | 100 | content = self._datasource.queryContent(self, self._authority, url) |
| 101 | + print("ContentProvider.queryContent() 3") |
114 | 102 | self._logger.logprb(INFO, self._cls, 'queryContent', 231, url) |
115 | 103 | return content |
116 | 104 | except IllegalIdentifierException as e: |
@@ -145,42 +133,24 @@ def getSupportedServiceNames(self): |
145 | 133 | # Private methods |
146 | 134 | def _getDataSource(self): |
147 | 135 | mtd = '_getDataSource' |
148 | | - oauth2 = getOAuth2Version(self._ctx) |
149 | | - driver = getExtensionVersion(self._ctx, g_jdbcid) |
150 | | - if oauth2 is None: |
151 | | - msg = self._getExceptionMessage(mtd, 221, g_oauth2ext, g_oauth2ext, g_extension) |
152 | | - raise IllegalIdentifierException(msg, self) |
153 | | - elif not checkVersion(oauth2, g_oauth2ver): |
154 | | - msg = self._getExceptionMessage(mtd, 223, g_oauth2ext, oauth2, g_oauth2ext, g_oauth2ver) |
155 | | - raise IllegalIdentifierException(msg, self) |
156 | | - elif driver is None: |
157 | | - msg = self._getExceptionMessage(mtd, 221, g_jdbcext, g_jdbcext, g_extension) |
| 136 | + url = getDataSourceUrl(self._ctx, self, self._logger, self._cls, mtd) |
| 137 | + try: |
| 138 | + datasource = DataSource(self._ctx, self._logger, url) |
| 139 | + except SQLException as e: |
| 140 | + msg = self._getExceptionMessage(mtd, 225, g_extension, url, e.Message) |
158 | 141 | raise IllegalIdentifierException(msg, self) |
159 | | - elif not checkVersion(driver, g_jdbcver): |
160 | | - msg = self._getExceptionMessage(mtd, 223, g_jdbcext, driver, g_jdbcext, g_jdbcver) |
| 142 | + if not datasource.isUptoDate(): |
| 143 | + msg = self._getExceptionMessage(mtd, 227, g_jdbcext, datasource.getDataBaseVersion(), g_version) |
161 | 144 | raise IllegalIdentifierException(msg, self) |
162 | | - else: |
163 | | - path = g_folder + g_ucbseparator + g_scheme |
164 | | - url = getConnectionUrl(self._ctx, path) |
165 | | - try: |
166 | | - database = DataBase(self._ctx, self._logger, url) |
167 | | - except SQLException as e: |
168 | | - msg = self._getExceptionMessage(mtd, 225, g_extension, url, e.Message) |
169 | | - raise IllegalIdentifierException(msg, self) |
170 | | - else: |
171 | | - if not database.isUptoDate(): |
172 | | - msg = self._getExceptionMessage(mtd, 227, g_jdbcext, database.Version, g_version) |
173 | | - raise IllegalIdentifierException(msg, self) |
174 | | - else: |
175 | | - return DataSource(self._ctx, self._logger, database) |
176 | | - return None |
| 145 | + return datasource |
177 | 146 |
|
178 | 147 | def _getPresentationUrl(self, url): |
179 | | - # FIXME: Sometimes the url can end with a dot or a slash, it must be deleted |
180 | | - url = url.rstrip('/.') |
| 148 | + # FIXME: Sometimes the url can end with a dot, it must be removed |
| 149 | + url = url.removesuffix('.') |
181 | 150 | uri = parseUrl(self._transformer, url) |
182 | 151 | if uri is not None: |
183 | 152 | url = self._transformer.getPresentation(uri, True) |
| 153 | + print("ContentProvider._getPresentationUrl() url: %s" % url) |
184 | 154 | return url |
185 | 155 |
|
186 | 156 | def _getExceptionMessage(self, mtd, code, extension, *args): |
|
0 commit comments