You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/07/24 00:36:42 UTC
[26/27] git commit: [#6456] Refactored ProjectImporterDispatcher to
Allura to remove dependency on FI
[#6456] Refactored ProjectImporterDispatcher to Allura to remove dependency on FI
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/64a66930
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/64a66930
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/64a66930
Branch: refs/heads/cj/6456
Commit: 64a669300ad1a04102856b67dae7b96ff3ee058a
Parents: 61d0ca5
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Tue Jul 23 18:26:48 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Tue Jul 23 22:35:03 2013 +0000
----------------------------------------------------------------------
Allura/allura/controllers/project.py | 14 ++++++++++++--
ForgeImporters/forgeimporters/base.py | 15 ++++-----------
2 files changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/64a66930/Allura/allura/controllers/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index 91d5a4f..1150abd 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -20,6 +20,7 @@ import logging
from datetime import datetime, timedelta
from urllib import unquote
from itertools import chain, islice
+from pkg_resources import iter_entry_points
from bson import ObjectId
from tg import expose, flash, redirect, validate, request, response, config
@@ -47,7 +48,6 @@ from allura.lib.widgets import forms as ff
from allura.lib.widgets import form_fields as ffw
from allura.lib.widgets import project_list as plw
from allura.lib import plugin, exceptions
-from forgeimporters.base import ProjectImporterDispatcher
from .auth import AuthController
from .search import SearchController, ProjectBrowseController
from .static import NewForgeController
@@ -74,7 +74,7 @@ class NeighborhoodController(object):
self.browse = NeighborhoodProjectBrowseController(neighborhood=self.neighborhood)
self._admin = NeighborhoodAdminController(self.neighborhood)
self._moderate = NeighborhoodModerateController(self.neighborhood)
- self.import_project = ProjectImporterDispatcher(self.neighborhood)
+ self.import_project = ProjectImporterController(self.neighborhood)
def _check_security(self):
require_access(self.neighborhood, 'read')
@@ -918,3 +918,13 @@ class GrantController(object):
with h.push_context(self.project._id):
g.post_event('project_updated')
redirect(request.referer)
+
+class ProjectImporterController(object):
+ def __init__(self, neighborhood, *a, **kw):
+ super(ProjectImporterController, self).__init__(*a, **kw)
+ self.neighborhood = neighborhood
+
+ @expose()
+ def _lookup(self, source, *rest):
+ for ep in iter_entry_points('allura.project_importers', source):
+ return ep.load()(self.neighborhood), rest
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/64a66930/ForgeImporters/forgeimporters/base.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py
index 777eb8a..bf22f8a 100644
--- a/ForgeImporters/forgeimporters/base.py
+++ b/ForgeImporters/forgeimporters/base.py
@@ -25,18 +25,9 @@ from ming.utils import LazyProperty
from allura.controllers import BaseController
-class ProjectImporterDispatcher(BaseController):
- def __init__(self, neighborhood, *a, **kw):
- super(ProjectImporterDispatcher, self).__init__(*a, **kw)
- self.neighborhood = neighborhood
-
- @expose()
- def _lookup(self, source, *rest):
- for ep in iter_entry_points('allura.project_importers', source):
- return ep.load()(self.neighborhood), rest
-
-
class ProjectImporter(BaseController):
+ """
+ """
source = None
@LazyProperty
@@ -73,6 +64,8 @@ class ProjectImporter(BaseController):
class ToolImporter(object):
+ """
+ """
target_app = None # app or list of apps
source = None # string description of source, must match project importer
controller = None