[Zope3-checkins] SVN: Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/ Up the minimum generation to 1. Services are gone.

Jim Fulton jim at zope.com
Fri Apr 21 12:37:31 EDT 2006


Log message for revision 67227:
  Up the minimum generation to 1.  Services are gone.
  

Changed:
  U   Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/__init__.py
  D   Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/evolve1.py

-=-
Modified: Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/__init__.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/__init__.py	2006-04-21 16:37:28 UTC (rev 67226)
+++ Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/__init__.py	2006-04-21 16:37:30 UTC (rev 67227)
@@ -23,7 +23,7 @@
 
 
 ZopeAppSchemaManager = SchemaManager(
-    minimum_generation=0,
+    minimum_generation=1,
     generation=3,
     package_name=key)
 

Deleted: Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/evolve1.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/evolve1.py	2006-04-21 16:37:28 UTC (rev 67226)
+++ Zope3/branches/jim-adapter/src/zope/app/zopeappgenerations/evolve1.py	2006-04-21 16:37:30 UTC (rev 67227)
@@ -1,198 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Evolve the ZODB from Zope X3.0 to a Zope X3.1 compatible format.
-
-$Id$
-"""
-__docformat__ = "reStructuredText"
-import zope.deprecation
-
-from zope.app import zapi
-from zope.app.component.interfaces.registration import IRegistrationManager
-from zope.app.component.interfaces.registration import IRegisterableContainer
-from zope.app.error.error import ErrorReportingUtility
-from zope.app.error.interfaces import IErrorReportingUtility
-from zope.app.principalannotation import PrincipalAnnotationUtility
-from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility
-from zope.app.component.interfaces.registration import ActiveStatus
-from zope.app.component.interfaces.registration import InactiveStatus 
-from zope.app.zopeappgenerations import getRootFolder
-
-# Imports that are only available via backward-compatibility
-zope.deprecation.__show__.off()
-from zope.component.bbb.service import IService
-from zope.app.site.interfaces import ISite, IServiceRegistration
-from zope.app.utility import UtilityRegistration
-zope.deprecation.__show__.on()
-
-from zope.app.generations.utility import findObjectsProviding
-
-generation = 1
-
-def evolve(context):
-    """Evolve the ZODB from a Zope X3.0 to a X3.1 compatible format.
-
-    - The Principal Annotation Service was replaced by the Principal
-      Annotation Utility. Thus all service registrations have to be changed to
-      utility registrations. 
-
-    - The Error Reporting Service was replaced by the Error Reporting
-      Utility. Thus, all service registrations have to be changed to utility
-      registrations. 
-
-    - Component-based registrations used to keep track of their components via
-      the component's path. Now it stores the component directly. All
-      registrations are updated to this new format.
-
-    - Converts all service registrations to utility registrations providing
-      IService, which is the method used to simulate the old service API.
-
-    - Remove 'RegistrationManager' object from all site management folders.
-
-    - Remove all local adapter and utility service instances. 
-    """
-    root = getRootFolder(context)
-
-    for site in findObjectsProviding(root, ISite):
-        sm = site.getSiteManager()
-
-        # Remove old registration manager instances
-        for rm in findObjectsProviding(sm, IRegistrationManager):
-            # Make sure that we called the new registration manager
-            # which will retrieve the old one, if necessary
-            zapi.getParent(rm).registrationManager = rm
-
-            # Do a hard core delete, because I want no whining and complaining
-            container = zapi.getParent(rm)
-            del container._SampleContainer__data[zapi.getName(rm)]
-
-            # Make sure the new registration manager has the correct name:
-            rm.__name__ = '++registrations++'
-            rm.__parent__ = container
-
-        for reg_container in findObjectsProviding(sm, IRegisterableContainer):
-            manager = reg_container.registrationManager
-
-            # Iterate through each registration and fix it up.
-            for reg in tuple(manager.values()):
-
-                # Regardless of registration type, we want to convert the
-                # component path to component  
-                if ('_BBB_componentPath' in reg.__dict__ and
-                    reg._BBB_componentPath is not None):
-
-                    reg.component = reg.getComponent()
-                    del reg.__dict__['_BBB_componentPath']
-
-                # Fixup and convert service registrations
-                if IServiceRegistration.providedBy(reg):
-                    if reg.name == 'ErrorLogging':
-                        fixupErrorLogging(reg_container, reg)
-
-                    elif reg.name == 'PrincipalAnnotation':
-                        fixupPrincipalAnnotation(reg_container, reg)
-
-                    elif reg.name in ('Utilities', 'Adapters'):
-                        # Delete the registration
-                        reg.status = InactiveStatus
-                        del manager[zapi.name(reg)]
-                        # Delete the component
-                        c = reg.component
-                        del zapi.getParent(c)[zapi.name(c)]
-
-                    else:
-                        # Handle all outstanding service registrations
-                        # Create a new utility registration
-                        new_reg = UtilityRegistration(reg.name, IService,
-                                                      reg.component)
-                        manager.addRegistration(new_reg)
-                        new_reg.status = ActiveStatus
-                        # Delete the old registration
-                        reg.status = InactiveStatus
-                        del manager[zapi.getName(reg)]
-
-                # Fixup utility registrations
-                else:
-                    # Getting the provided interface converts the utility
-                    # registration automatically from 'interface' -> 'provided'
-                    reg.provided
-                    # Now let's reactivate the utility, so it will be
-                    # available within the new framework
-                    orig = reg.status
-                    reg.status = InactiveStatus
-                    reg.status = orig
-                    
-
-def fixupErrorLogging(reg_container, reg):
-    # Fix up Error Reporting Service --> Utility 
-    # We do this by simply removing old Error Reporting Services and their
-    # registrations and then add a new error reporting utility.
-
-    errors = reg.component
-    # Set the registration to unregistered and then delete it
-    reg.status = InactiveStatus
-    del zapi.getParent(reg)[zapi.name(reg)]
-    # Get the properties from the old error reporting service and
-    # delete it
-    props = errors.getProperties()
-    folder = zapi.getParent(errors)
-    del folder._SampleContainer__data[zapi.name(errors)]
-    
-    # Only add a new error reporting utility, if there is none.
-    if 'ErrorReporting' not in folder:
-        # Create the error reporting utility and set its properties
-        utility = ErrorReportingUtility()
-        utility.setProperties(**props)
-        folder['ErrorReporting'] = utility
-        # Register the utility and set the registration active
-        reg = UtilityRegistration('', IErrorReportingUtility, utility)
-        reg_manager = folder.registrationManager
-        key = reg_manager.addRegistration(reg)
-        reg_manager[key].status = ActiveStatus
-    else:
-        # If there is one, then at least move the data
-        folder['ErrorReporting'].__dict__.update(props)
-
-
-def fixupPrincipalAnnotation(reg_container, reg):
-    # Fix up Principal Annotation Service --> Utility 
-    ann = reg.component
-    # Set the registration to inactive and then delete it
-    reg.status = InactiveStatus
-    del zapi.getParent(reg)[zapi.name(reg)]
-    # Get the instance dictionary from the old principal
-    # annotation service and then delete the service
-    props = ann.__dict__
-    name = zapi.name(ann)
-    folder = zapi.getParent(ann)
-    del folder._SampleContainer__data[name]
-    
-    # Only add a new principal annotation utility, if there is none.
-    utils = [obj for obj in folder.values()
-             if IPrincipalAnnotationUtility.providedBy(obj)]
-    if len(utils) == 0:
-        # Create the principal annotation utility and set its
-        # properties
-        utility = PrincipalAnnotationUtility()
-        utility.__dict__.update(props)
-        folder[name] = utility
-        # Register the utility and set the registration active
-        reg = UtilityRegistration('', IPrincipalAnnotationUtility,
-                                  utility)
-        reg_manager = folder.getRegistrationManager() 
-        key = reg_manager.addRegistration(reg)
-        reg_manager[key].status = ActiveStatus
-    else:
-        # If there is one, then at least move the data
-        utils[0].__dict__.update(props)



More information about the Zope3-Checkins mailing list