[Checkins] SVN: zope.app.fssync/trunk/ Added the zsync client, a README.txt, and a demo app.

Uwe Oestermeier u.oestermeier at iwm-kmrc.de
Wed Sep 19 10:20:03 EDT 2007


Log message for revision 79749:
  Added the zsync client, a README.txt, and a demo app.

Changed:
  A   zope.app.fssync/trunk/README.txt
  U   zope.app.fssync/trunk/buildout.cfg
  U   zope.app.fssync/trunk/setup.py
  A   zope.app.fssync/trunk/src/zope/app/fssync/application.zcml

-=-
Added: zope.app.fssync/trunk/README.txt
===================================================================
--- zope.app.fssync/trunk/README.txt	                        (rev 0)
+++ zope.app.fssync/trunk/README.txt	2007-09-19 14:20:02 UTC (rev 79749)
@@ -0,0 +1,56 @@
+******
+FSSync
+******
+
+.. contents::
+
+The FSSync project (zope.app.fssync) provides support for filesystem 
+synchronization of Zope3 content that resides in a ZODB. This package defines
+a Web-based API with basic support for some standard zope.app content 
+types and the standard security policy.
+
+This project is build on top of the more general zope.fssync package which 
+provides object serialization and deserialization tools. If you need a pure 
+Python API which is independent of the ZODB and the Zope3 security machinery you 
+should look at zope.fssync. 
+
+FSSync includes a command line client that resembles svn or cvs. Type 
+
+    bin/zsync help
+    
+for available commands and further information. If you want to see the zsync 
+client in action you can run the demo application
+
+    bin/demo -fg
+    
+Add a 'demo' folder and some files within this folder via the ZMI. After that
+run
+
+    bin/zsync checkout http://zsync:zsync@localhost:8080/demo ./parts/checkout
+
+Edit a file in the checkout directory and run
+
+    bin/zsync commit ./parts/checkout
+    
+The modified file should now be available on the server.
+
+
+Extending zsync
+---------------
+
+The zsync script is generated by the following part of the buildout.cfg::
+
+    [zsync]
+    recipe = zc.recipe.egg
+    eggs = zope.app.fssync
+    entry-points = zsync=zope.app.fssync.main:main
+
+If you want to use zope.app.fssync in your own application you propably have
+to define application specific serializers and deserializers. See 
+
+    zope/app/fssync/fssync.txt
+    
+for further documentation. You probably also need your own zsync script with
+additional dependencies. Simply add the necessary eggs to the corresponding
+buildout snippet of your project.
+

Modified: zope.app.fssync/trunk/buildout.cfg
===================================================================
--- zope.app.fssync/trunk/buildout.cfg	2007-09-19 13:26:54 UTC (rev 79748)
+++ zope.app.fssync/trunk/buildout.cfg	2007-09-19 14:20:02 UTC (rev 79749)
@@ -1,10 +1,29 @@
 [buildout]
 develop = .
-parts = test
+parts = demo test zsync
 
-find-links = http://download.zope.org/distribution/
+[zope3]
+location = .
 
+[demo]
+recipe = zc.zope3recipes:instance
+application = zsync-demo-app
+zope.conf = ${database:zconfig}
+
 [test]
 recipe = zc.recipe.testrunner
 eggs = zope.app.fssync
 defaults = ['--tests-pattern', '^f?tests$', '-v']
+
+[zsync-demo-app]
+recipe = zc.zope3recipes:app
+site.zcml = <include package="zope.app.fssync" file="application.zcml"/>
+eggs = zope.app.fssync [app]
+
+[zsync]
+recipe = zc.recipe.egg
+eggs = zope.app.fssync
+entry-points = zsync=zope.app.fssync.main:main
+
+[database]
+recipe = zc.recipe.filestorage

Modified: zope.app.fssync/trunk/setup.py
===================================================================
--- zope.app.fssync/trunk/setup.py	2007-09-19 13:26:54 UTC (rev 79748)
+++ zope.app.fssync/trunk/setup.py	2007-09-19 14:20:02 UTC (rev 79749)
@@ -3,38 +3,53 @@
 from setuptools import setup, find_packages, Extension
 
 setup(name='zope.app.fssync',
-      version = '3.4.0b1',
-      url='http://svn.zope.org/zope.app.fssync',
-      license='ZPL 2.1',
-      description='Zope app fssync',
-      author='Zope Corporation and Contributors',
-      author_email='zope3-dev at zope.org',
-      long_description="Filesystem synchronization for Zope 3 Applications.",
-
-      packages=find_packages('src'),
-      package_dir = {'': 'src'},
-
-      namespace_packages=['zope',],
-      tests_require = ['zope.testing'],
-      install_requires=['setuptools',
-                        'zope.dublincore',
-                        'zope.fssync',
-                        'zope.interface',
-                        'zope.proxy',
-                        'zope.testbrowser',
-                        'zope.traversing',
-                        'zope.xmlpickle',
-                        'zope.app.catalog',
-                        'zope.app.component',
-                        'zope.app.dtmlpage',
-                        'zope.app.file',
-                        'zope.app.folder',
-                        'zope.app.module',
-                        'zope.app.securitypolicy',
-                        'zope.app.zcmlfiles',
-                        'zope.app.zptpage'
-                        ],
-      include_package_data = True,
-
-      zip_safe = False,
-      )
+    version = '3.4.0b1',
+    url='http://svn.zope.org/zope.app.fssync',
+    license='ZPL 2.1',
+    description='Zope app fssync',
+    author='Zope Corporation and Contributors',
+    author_email='zope3-dev at zope.org',
+    long_description="Filesystem synchronization for Zope 3 Applications.",
+    
+    packages=find_packages('src'),
+    package_dir = {'': 'src'},
+    
+    namespace_packages=['zope',],
+    tests_require = ['zope.testing'],
+    extras_require = dict(
+        app = ['zope.app.appsetup',
+               'zope.app.authentication',
+               'zope.app.component',
+               'zope.app.container',
+               'zope.app.error',
+               'zope.app.form',
+               'zope.app.publisher',
+               'zope.app.publication',
+               'zope.app.security',
+               'zope.app.securitypolicy',
+               'zope.app.twisted',
+               'zope.app.wsgi',
+               ]
+              ),
+    install_requires=['setuptools',
+                    'zope.dublincore',
+                    'zope.fssync',
+                    'zope.interface',
+                    'zope.proxy',
+                    'zope.testbrowser',
+                    'zope.traversing',
+                    'zope.xmlpickle',
+                    'zope.app.catalog',
+                    'zope.app.component',
+                    'zope.app.dtmlpage',
+                    'zope.app.file',
+                    'zope.app.folder',
+                    'zope.app.module',
+                    'zope.app.securitypolicy',
+                    'zope.app.zcmlfiles',
+                    'zope.app.zptpage'
+                    ],
+    include_package_data = True,
+    
+    zip_safe = False,
+    )

Added: zope.app.fssync/trunk/src/zope/app/fssync/application.zcml
===================================================================
--- zope.app.fssync/trunk/src/zope/app/fssync/application.zcml	                        (rev 0)
+++ zope.app.fssync/trunk/src/zope/app/fssync/application.zcml	2007-09-19 14:20:02 UTC (rev 79749)
@@ -0,0 +1,72 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   i18n_domain="zope"
+   package="zope.app.fssync"
+   >
+
+  <!-- This file is the equivalent of site.zcml and it is -->
+  <!-- used for the demo setup -->
+
+  <include package="zope.app.securitypolicy" file="meta.zcml" />
+
+  <include package="zope.app.zcmlfiles" />
+  <include package="zope.app.authentication" />
+  <include package="zope.app.securitypolicy" />
+  
+  <include package="zope.app.twisted" />
+  <include package="zope.app.wsgi" />
+  
+  <include package="zope.app.file"/>
+  <include package="zope.app.folder"/>
+  <include package="zope.app.fssync.file"/>
+  <include package="zope.app.fssync.folder"/>
+  <include package="zope.app.fssync.dublincore"/>
+  <include package="zope.app.fssync"/>
+  
+  <securityPolicy
+    component="zope.app.securitypolicy.zopepolicy.ZopeSecurityPolicy" />
+
+  <role id="zope.Anonymous" title="Everybody"
+                 description="All users have this role implicitly" />
+  <role id="zope.Manager" title="Site Manager" />
+  <role id="zope.Member" title="Member" />
+
+
+  <!-- Permissions for the readonly example in security.txt -->
+  
+  <permission id="zope.fssync.Serialize" title="Access to serializers" />
+  <permission id="zope.fssync.Deserialize" title="Access to deserializers" />
+      
+  <class class="zope.app.fssync.file.adapter.FileSynchronizer">
+       
+     <require
+       permission="zope.fssync.Deserialize"
+       interface="zope.fssync.interfaces.IFileDeserializer" />
+       
+  </class>
+ 
+   
+  <!-- Replace the following directive if you don't want public access -->
+  <grant permission="zope.View"
+                  role="zope.Anonymous" />
+  <grant permission="zope.app.dublincore.view"
+                  role="zope.Anonymous" />
+
+  <grantAll role="zope.Manager" />
+ 
+  <!-- Principals -->
+
+  <unauthenticatedPrincipal
+      id="zope.anybody"
+      title="Unauthenticated User" />
+
+  <!-- Principal for demo -->
+  <principal
+      id="zope.zsync"
+      title="Manager"
+      login="zsync"
+      password="zsync" />
+
+  <grant role="zope.Manager" principal="zope.zsync" />
+  
+</configure>



More information about the Checkins mailing list