0.8dev: Correctly set `environment_factory` and `request_factory` on multiproduct upgrade. Refs #795.


git-svn-id: https://svn.apache.org/repos/asf/bloodhound/trunk@1616401 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bloodhound_multiproduct/multiproduct/api.py b/bloodhound_multiproduct/multiproduct/api.py
index c5e7c0e..fa680a0 100644
--- a/bloodhound_multiproduct/multiproduct/api.py
+++ b/bloodhound_multiproduct/multiproduct/api.py
@@ -506,16 +506,15 @@
 
     def _enable_multiproduct_hooks(self):
         # enable multi product hooks in environment configuration
-        import multiproduct.hooks
-        import inspect
 
         config_update = False
-        hook_path = os.path.realpath(inspect.getsourcefile(multiproduct.hooks))
         if not 'environment_factory' in self.env.config['trac']:
-            self.env.config['trac'].set('environment_factory', hook_path)
+            self.env.config['trac'].set('environment_factory',
+                                        'multiproduct.hooks.MultiProductEnvironmentFactory')
             config_update = True
         if not 'request_factory' in self.env.config['trac']:
-            self.env.config['trac'].set('request_factory', hook_path)
+            self.env.config['trac'].set('request_factory',
+                                        'multiproduct.hooks.ProductRequestFactory')
             config_update = True
         if config_update:
             self.log.info(
diff --git a/trac/trac/hooks.py b/trac/trac/hooks.py
index b93f5c5..0ce0c7a 100644
--- a/trac/trac/hooks.py
+++ b/trac/trac/hooks.py
@@ -87,10 +87,12 @@
 
 
 def environment_factory(env):
+    print load_class(env.config.get('trac', 'environment_factory'))
     return load_class(env.config.get('trac', 'environment_factory'))
 
 
 def request_factory(env):
+    print load_class(env.config.get('trac', 'request_factory'))
     return load_class(env.config.get('trac', 'request_factory'))