[Zope-Checkins] SVN: Zope/branches/Zope-2_8-branch/ - marked
old-style product metadata support as deprecated
Yvo Schubbe
y.2005- at wcm-solutions.de
Mon Oct 31 05:35:06 EST 2005
Log message for revision 39762:
- marked old-style product metadata support as deprecated
- removed all dependencies on that support
Changed:
U Zope/branches/Zope-2_8-branch/doc/CHANGES.txt
U Zope/branches/Zope-2_8-branch/lib/python/OFS/Application.py
UU Zope/branches/Zope-2_8-branch/lib/python/OFS/tests/testProductInit.py
UU Zope/branches/Zope-2_8-branch/lib/python/Products/ZGadflyDA/__init__.py
UU Zope/branches/Zope-2_8-branch/lib/python/Products/ZSQLMethods/__init__.py
-=-
Modified: Zope/branches/Zope-2_8-branch/doc/CHANGES.txt
===================================================================
--- Zope/branches/Zope-2_8-branch/doc/CHANGES.txt 2005-10-31 08:30:03 UTC (rev 39761)
+++ Zope/branches/Zope-2_8-branch/doc/CHANGES.txt 2005-10-31 10:35:06 UTC (rev 39762)
@@ -22,8 +22,15 @@
- Collector #1233: port ZOPE_CONFIG patch from Zope 2.7 to Zope 2.8
-
+ Zope 2.8.5 (unreleased)
+ Bugs Fixed
+
+ - OFS Application: While deprecated since years, old-style product
+ metadata in the __init__.py did not show deprecation warnings. Added
+ warnings and converted ZGadflyDA/__init__.py and
+ ZSQLMethods/__init__.py to use registerClass instead.
+
Zope 2.8.4 (2005/10/26)
Bugs Fixed
Modified: Zope/branches/Zope-2_8-branch/lib/python/OFS/Application.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/OFS/Application.py 2005-10-31 08:30:03 UTC (rev 39761)
+++ Zope/branches/Zope-2_8-branch/lib/python/OFS/Application.py 2005-10-31 10:35:06 UTC (rev 39762)
@@ -7,7 +7,7 @@
# 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
+# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Application support
@@ -18,6 +18,7 @@
import os, sys, traceback
from cgi import escape
from StringIO import StringIO
+from warnings import warn
import Globals, Products, App.Product, App.ProductRegistry, misc_
import transaction
@@ -401,7 +402,7 @@
default_period_secs = 20
default_timeout_mins = 20
- limit = getattr(config, 'maximum_number_of_session_objects',
+ limit = getattr(config, 'maximum_number_of_session_objects',
default_limit)
timeout_spec = getattr(config, 'session_timeout_minutes',
default_timeout_mins)
@@ -777,6 +778,13 @@
# constructors, etc.
permissions={}
new_permissions={}
+ if pgetattr(product, '__ac_permissions__', None) is not None:
+ warn('__init__.py of %s has a long deprecated '
+ '\'__ac_permissions__\' attribute. '
+ '\'__ac_permissions__\' will be ignored by '
+ 'install_product in Zope 2.9. Please use registerClass '
+ 'instead.' % product.__name__,
+ DeprecationWarning)
for p in pgetattr(product, '__ac_permissions__', ()):
permission, names, default = (
tuple(p)+('Manager',))[:3]
@@ -786,6 +794,12 @@
elif not folder_permissions.has_key(permission):
new_permissions[permission]=()
+ if pgetattr(product, 'meta_types', None) is not None:
+ warn('__init__.py of %s has a long deprecated \'meta_types\' '
+ 'attribute. \'meta_types\' will be ignored by '
+ 'install_product in Zope 2.9. Please use registerClass '
+ 'instead.' % product.__name__,
+ DeprecationWarning)
for meta_type in pgetattr(product, 'meta_types', ()):
# Modern product initialization via a ProductContext
# adds 'product' and 'permission' keys to the meta_type
@@ -797,6 +811,12 @@
meta_type['visibility'] = 'Global'
meta_types.append(meta_type)
+ if pgetattr(product, 'methods', None) is not None:
+ warn('__init__.py of %s has a long deprecated \'methods\' '
+ 'attribute. \'methods\' will be ignored by '
+ 'install_product in Zope 2.9. Please use registerClass '
+ 'instead.' % product.__name__,
+ DeprecationWarning)
for name,method in pgetattr(
product, 'methods', {}).items():
if not hasattr(Folder.Folder, name):
Modified: Zope/branches/Zope-2_8-branch/lib/python/OFS/tests/testProductInit.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/OFS/tests/testProductInit.py 2005-10-31 08:30:03 UTC (rev 39761)
+++ Zope/branches/Zope-2_8-branch/lib/python/OFS/tests/testProductInit.py 2005-10-31 10:35:06 UTC (rev 39762)
@@ -44,16 +44,18 @@
# backslashes, the backslashes get treated *as* backslashes instead of as
# string escape codes.
dummy_product_init = """
+misc_ = {'a':1}
+def amethod(self):
+ pass
def initialize(context):
f=open(r'%s', 'w')
f.write('didit')
f.close()
-misc_ = {'a':1}
-def amethod(self):
- pass
-methods = {'amethod':amethod}
-__ac_permissions__ = ( ('aPermission', (), () ), )
-meta_types = ( {'name':'grabass', 'action':'amethod'}, )
+ context.registerClass(
+ meta_type='grabass',
+ permission='aPermission',
+ constructors=(amethod,),
+ legacy=(amethod,))
"""
def getSchema():
@@ -195,13 +197,18 @@
self.assert_(os.path.exists(doneflag))
# Methods installed into folder
self.assert_(hasattr(Folder, 'amethod'))
- # __ac_permissions__ put into folder
- self.assert_( ('aPermission', (),) in
- Folder.__ac_permissions__)
+ # permission roles put into folder
+ self.assert_(hasattr(Folder, 'amethod__roles__'))
# Products.meta_types updated
- self.assert_( {'action': 'amethod', 'product': 'abaz',
- 'name': 'grabass', 'visibility': 'Global'}
- in meta_types)
+ self.assert_( {'name': 'grabass',
+ 'action': 'manage_addProduct/abaz/amethod',
+ 'product': 'abaz',
+ 'permission': 'aPermission',
+ 'visibility': 'Global',
+ 'interfaces': (),
+ 'instance': None,
+ 'container_filter': None}
+ in Products.meta_types)
def test_install_products(self):
self.makeFakeProducts()
Property changes on: Zope/branches/Zope-2_8-branch/lib/python/OFS/tests/testProductInit.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
- 1.3
Name: svn:keywords
+ Id
Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZGadflyDA/__init__.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZGadflyDA/__init__.py 2005-10-31 08:30:03 UTC (rev 39761)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZGadflyDA/__init__.py 2005-10-31 10:35:06 UTC (rev 39762)
@@ -7,13 +7,13 @@
# 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
+# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-__doc__='''Generic Database Adapter Package Registration
+"""Generic Database Adapter Package Registration.
-$Id$'''
-__version__='$Revision: 1.16 $'[11:-2]
+$Id$
+"""
import Globals, os
@@ -34,12 +34,6 @@
'date','time','datetime'):
misc_[icon]=Globals.ImageFile('icons/%s.gif' % icon, globals())
-meta_types=(
- {'name':'Z %s Database Connection' % database_type,
- 'action':'manage_addZ%sConnectionForm' % database_type,
- },
- )
-
DA=None
def getDA():
global DA
@@ -70,20 +64,17 @@
return getDA().manage_addZGadflyConnection(
self, id, title, connection, check, REQUEST)
-methods={
- 'manage_addZGadflyConnection':
- manage_addZGadflyConnection,
- 'manage_addZGadflyConnectionForm':
- manage_addZGadflyConnectionForm,
- }
+def initialize(context):
-__ac_permissions__=(
- ('Add Z Gadfly Database Connections',
- ('manage_addZGadflyConnectionForm',
- 'manage_addZGadflyConnection')),
+ context.registerClass(
+ DA.Connection,
+ permission='Add Z Gadfly Database Connections',
+ constructors=(manage_addZGadflyConnectionForm,
+ manage_addZGadflyConnection),
+ legacy=(manage_addZGadflyConnectionForm,
+ manage_addZGadflyConnection),
)
-
# from App.config import getConfiguration
# j=os.path.join
# d=j(getConfiguration().clienthome,'gadfly')
Property changes on: Zope/branches/Zope-2_8-branch/lib/python/Products/ZGadflyDA/__init__.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
- 1.16
Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZSQLMethods/__init__.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZSQLMethods/__init__.py 2005-10-31 08:30:03 UTC (rev 39761)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZSQLMethods/__init__.py 2005-10-31 10:35:06 UTC (rev 39762)
@@ -7,21 +7,19 @@
# 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
+# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-__doc__='''SQL Method Product
+"""SQL Method Product.
+$Id$
+"""
-$Id$'''
-__version__='$Revision: 1.18 $'[11:-2]
import Shared.DC.ZRDB.Search, Shared.DC.ZRDB.Aqueduct, SQL
import Shared.DC.ZRDB.RDB
import Shared.DC.ZRDB.sqlvar, Shared.DC.ZRDB.sqlgroup, Shared.DC.ZRDB.sqltest
-# This is the new way to initialize products. It is hoped
-# that this more direct mechanism will be more understandable.
def initialize(context):
context.registerClass(
@@ -29,6 +27,9 @@
permission='Add Database Methods',
constructors=(SQL.manage_addZSQLMethodForm, SQL.manage_addZSQLMethod),
icon='sqlmethod.gif',
+ # XXX: can this permission be removed?
+ permissions=('Open/Close Database Connections',),
+ legacy=(SQL.SQLConnectionIDs,)
)
context.registerClass(
@@ -36,25 +37,13 @@
permission='Add Documents, Images, and Files',
constructors=(Shared.DC.ZRDB.Search.addForm,
Shared.DC.ZRDB.Search.manage_addZSearch),
+ legacy=(Shared.DC.ZRDB.Search.ZQueryIds,)
)
context.registerHelp()
context.registerHelpTitle('Zope Help')
-methods={
- # We still need this one, at least for now, for both editing and
- # adding. Ugh.
- 'SQLConnectionIDs': SQL.SQLConnectionIDs,
- # Oh please!
- 'ZQueryIds': Shared.DC.ZRDB.Search.ZQueryIds,
- }
-
-__ac_permissions__=(
- # Ugh. We should get rid of this, but we'll have to revisit connections
- ('Open/Close Database Connections', ()),
- )
-
__module_aliases__=(
('Products.AqueductSQLMethods','Products.ZSQLMethods'),
('Aqueduct', Shared.DC.ZRDB),
Property changes on: Zope/branches/Zope-2_8-branch/lib/python/Products/ZSQLMethods/__init__.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
- 1.18
More information about the Zope-Checkins
mailing list