跳转到主要内容

配置和代码重新加载无需重启服务器。

项目描述

概述

在不重启服务器的情况下,对Zope 2和Plone进行配置和代码重新加载。

用法

以具有管理员角色的用户登录到ZMI后,通过浏览器访问您的Zope应用程序根目录下的/@@reload。如果您配置了Zope以在本地主机的8080端口上监听,则如下所示

https://#:8080/@@reload

如果您收到“资源未找到”错误,请确保您已从该库中加载了configure.zcml文件,并且您确实使用ZODB应用程序根而不是Plone站点作为基本URL。

当您按下“重新加载代码”按钮时,所有自上次加载以来已更改的模块都会被重新加载。您将获得一个状态消息,告诉您哪些模块已被重新加载。

要重新加载所有ZCML而无需重启,请按“重新加载代码和ZCML”按钮。

要执行的操作是通过简单的查询字符串确定的,因此一旦您执行了一次“重新加载代码”,您可以简单地重新加载浏览器页面以再次执行操作。

注意事项:有些代码结构无法通过此库背后的方法重新加载。Plone小工具和内容类型是两个例子。通常情况下,装饰器目前并不总是有效。

开发

代码和问题跟踪器可以在GitHub上找到:https://github.com/plone/plone.reload

感谢

此代码主要基于在http://launchpad.net/refreshng上找到的Products.RefreshNG产品。

原始的xreload.py由Guido van Rossum编写,可在以下位置找到:http://svn.python.org/projects/sandbox/trunk/xreload/xreload.py

它有一些增强功能,但这些似乎比修补元类和四处乱用的猴子补丁在修补的Zope环境中做得更好。

贡献者

  • Hanno Schlichting(主要作者)

  • Martin Aspeli(测试贡献)

变更日志

4.0.0 (2024-04-22)

重大变更

  • 添加对Python 3.12的支持。删除对Python 2的支持 [pbauer]

3.0.2 (2021-10-16)

错误修复

  • 修复弃用警告 [ale-rt]

  • 修复缺少DOCTYPE,添加html lang,使用html5 charset重新加载页面。 [thet]

3.0.1 (2020-04-22)

错误修复

  • 较小的打包更新。

3.0.0 (2018-11-05)

  • 调用invalidate_caches并从Python 3中删除__pycache__

  • 添加Python 3.4、3.5和3.6支持。删除Python 2.6支持。

  • 针对Zope 4进行测试,同时保持与Zope 2.13的兼容性。

2.0.2 (2016-08-18)

  • 使用zope.interface装饰器。 [gforcada]

2.0.1 (2016-02-11)

  • 较小的打包修复。 [gforcada, maurits]

2.0 (2011-06-04)

  • 更新测试断言以避免Python 2.7下的弃用警告。 [hannosch]

  • 重新许可为BSD。 [hannosch]

  • 较小的PEP8清理。 [hannosch]

  • 从提供的源分发中排除测试。 [hannosch, iElectric]

2.0b1 (2011-04-03)

  • 至少需要Zope 2.12 / Python 2.6,并添加对Python 2.6和2.7的Zope 2.13初步支持。 [hannosch]

1.5 (2010-07-18)

  • 更新许可证为GPL版本2。 [hannosch]

1.4 (2010-05-27)

  • 修复了一些依赖于特定目录布局的测试。 [hannosch]

  • 修复了处理类描述符(如Five的BoundTemplateFile)的bug。我们用描述符的结果替换了描述符,导致出现奇怪的问题。我们通过直接查看__dict__并将其与正常getattr调用的结果进行比较来检查这些问题。 [hannosch, optilude]

1.3 (2010-01-16)

  • 使用不同的钩子来提供跟踪代码文件的初始设置。在 Zope 2.12+ 中,在进程开始之前会发布一个合适的事件。如果可用,我们将使用它,而不是我们不再工作的 setupFinalLogging 钩子方法。[hannosch]

1.2 (2009-11-21)

  • 将模板重新加载支持移动到了一个额外组件。[hannosch]

  • 向测试模块添加了 test_suite 函数。[hannosch]

1.1 (2009-10-19)

  • 添加了 CMF 特定功能:在生产模式下,我们支持显式重新加载所有基于文件系统的对象。[hannosch]

1.0 (2009-10-11)

  • 避免使用 ENABLED 配置标志,并在浏览器视图中检查 Globals.DevelopmentMode。[hannosch]

  • 确保在设置变量之后导入 Globals 模块。这应该使它与 Zope 2.10.9+ 兼容。[hannosch]

1.0b1 (2009-08-11)

  • 将代码重新加载部分的测试覆盖率提高到 100%。[hannosch]

  • 修复了模块作用域的重新加载。现在函数的 func_globals 将更新为新引入模块作用域中的名称,因此添加新的导入语句将工作。[hannosch]

  • 指定了包依赖关系,添加了开发构建和广泛的测试覆盖率。[hannosch]

  • 找到了支持使用装饰器的代码重新加载的方法。[hannosch]

0.11 (2009-05-30)

  • 添加了 z3c.autoinclude 入口点,以便在 Plone 3.3 及以上版本中自动加载 plone.reload。[optilude]

0.10 (2009-03-22)

  • 在重新加载时不要从类中移除属性。ZCML 指令和其他连接可能会向类添加属性,然后这些属性在重新加载时将消失。这意味着如果您已移除类属性,它将在重新加载时 不会 消失。在这种情况下:重新启动。 :) [optilude]

0.9 (2008-07-23)

  • 移除了由 ZCML 解析填充的额外注册表的手动清理方法。相反,我们使用 zope.testing.cleanup 中包含的清理函数注册表来自动选择所有清理函数。[hannosch]

0.8 (2008-06-30)

  • 包装 Zope2 启动对象的 setupFinalLogging 方法,以便在 Zope 完成加载后初始化我们的内部修改时间注册表一次。这是我找到的与“Zope 完成加载”事件最相似的方法,应该有助于消除双重重新加载行为。[hannosch]

  • 仅在 Zope 2 开发模式下公开重新加载视图。[hannosch]

  • 如果在 ZCML 重新加载期间发生错误,则恢复原始全局站点管理器状态,而不是将其留在损坏状态。这允许您修复并重试 ZCML 重新加载,直到您需要为止。[hannosch]

0.7 (2008-06-17)

  • 将两个不同的视图合并为一个名为 @@reload 的视图。向其中添加了一个更友好的用户界面,并在该页面上解释了当前的某些限制。[hannosch]

  • 重构了 ZCML 加载代码。在重新加载 ZCML 之前始终执行自动代码重新加载。[hannosch]

  • 移除了所有黑名单代码。[hannosch]

0.6 (2008-06-11)

  • 禁用黑名单,直到它可以配置。速度提升几乎不明显,而且它可能会阻塞太多(尤其是当 plone.reload 以 lib/python 风格部署而不是作为 egg 时)。[optilude]

0.5 (2008-05-24)

0.4 (2008-03-01)

  • 将代码重新加载作为自己的 @@code_reload 视图提供。[hannosch]

  • 集成了来自 RefreshNG 的 xreload.py,并添加了一个通用的手动代码重新加载功能的第一版。[hannosch]

0.3 (2008-02-21)

  • 通过使所有 ZODB 缓存无效来修复缓存问题。如果您有分布在不同 FileStorages 上的本地站点管理器,这仍然可能无法按预期工作。[hannosch]

  • 添加了对 CMFCore 和 PAS 的清理。[hannosch]

0.2 (2008-01-25)

  • 添加了对 Zope 2.10 / Plone 3.0 的兼容性。[hannosch]

0.1 (2008-01-25)

  • 基于 Products.RefreshNG 进行了初始实现。[hannosch]

  • 初始包结构。[zopeskel]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

plone_reload-4.0.0.tar.gz (19.6 kB 查看哈希值)

上传时间 源代码

构建分发

plone.reload-4.0.0-py2.py3-none-any.whl (16.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面