Adobe Illustrator CEP插件开发系列(2)——设置调试环境

背景

上一章讲到CEP扩展的开发环境,这一章讲下如何调试CEP扩展。调试是开发很重要的一环,如果不能调试,那么很难找出bug。由于CEP扩展是基于前端语言编写的,因此,调试信息可以在Chrome中显示。本章内容主要涉及调试的配置以及步骤。

调试配置

允许Adobe应用调试未签名的CEP扩展

在开发过程中,由于调试需要,代码内容是实时更新的,因此,如果修改一次代码就签名一次,效率是十分低下的。**最重要的是,签名后的文件夹,如果内容修改,那么签名就无效了,在Adobe应用中是无法正常打开扩展的。**因此,我们需要在Adobe应用中打开未签名的扩展,同时可调试。我们需要两个操作,一是修改注册表,二是创建.debug文件。

修改注册表

在window搜索窗下,输入“运行”=》“regedit”,打开注册表编辑器。选择HKEY_CURRENT_USER=>Software=>Adobe=>CSXS.x。这个.x需要根据自己的版本来选,这取决于自己manifest.xml中的应用的version有关,比如我是version=“7.0”,那么我就是打开CSXS.7。
在注册表中,右键新建=》字符串值。输入PlayerDebugMode,值为1,如图。
在这里插入图片描述
这个操作的含义是允许Adobe(对应版本的)应用调试未签名的CEP扩展。
如果想关闭调试模式,把该值设为0即可。
如果想方便地打开和关闭该功能,可以写.reg文件,如“不知语冰”就提供了两个这样的文件,修改CSXS版本后直接点击可以使用,这里有链接,可以对文本另存为。
关闭CEP调试模式.reg
打开CEP调试模式.reg

.debug文件

在CEP扩展文件夹的根目录中,需要创建一个.debug文件来存储调试信息。由于.开头的文件不能直接创建,在window下可以通过如下命令创建:

$>> copy con .debug
$>> Ctrl+Z

这样就创建了一个.debug文件。
然后我们编辑该文件,该文件是一个xml结构,结构如下:

<?xml version="1.0" encoding="UTF-8"?> 
<ExtensionList>
	<Extension Id="com.acc.ext.liyucep.1">
    	<HostList>   
        	<!-- Illustrator -->
        	<Host Name="ILST" Port="8089"/>      
    	</HostList>
	</Extension>
</ExtensionList>

需要修改的地方主要是:

  1. <Extension>标签里的id,需要和manifest.xml中的扩展id一致。注意,是扩展id,而不是应用id。
  2. <HostList>标签里的<Host>指适用的Adobe应用,Name表示应用的Host ID,Port表示本机调试页面的端口。
    在这里插入图片描述
    上述的代码含义是,调试Illustrator,端口是8089。这样,当打开Illustrator中的扩展后,打开Chrome,输入localhost:8089,会出现如下页面。
    在这里插入图片描述
    点击index.html,就跳转到CEP扩展的调试页面,如图。
    在这里插入图片描述
    在这里,可以看到CEP扩展的调试信息。
    如果要给多个Adobe应用添加该扩展的调试功能,就在<HostList>下添加其他应用的<Host>和不同的端口即可。

调试日志

要启用调试日志的功能,也需要修改注册表。同样是上述注册表位置,添加LogLevel字段,值对应的含义如下图。
在这里插入图片描述
不同数字对应不同级别的调试信息,如果想看到所有信息,那就设置为6。
那么日志对应的位置在哪里呢?在windows下日志的位置在

C:\Users\USERNAME\AppData\Local\Temp

看下日志内容,如下
在这里插入图片描述

参考资料

Adobe CEP 扩展开发教程 「 1 」Hello World!
CEP_7.0_HTML_Extension_Cookbook.pdf

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Flink CEP是基于Apache Flink的一个复杂事件处理(CEP)库,用于在流式数据中识别和处理符合特定模式的事件序列。Flink CEP的原理是基于有限状态自动机(Finite State Automaton)的思想。 具体来说,Flink CEP将输入的数据流分割成事件流,每个事件都包含一组属性。然后,通过定义一系列模式,即规定了事件序列的特定顺序和条件,Flink CEP会在事件流中搜索匹配这些模式的事件序列。 在Flink CEP的内部,使用了NFA(Non-deterministic Finite Automaton)来表示模式,并通过将NFA与事件流进行匹配来识别符合模式的事件序列。NFA是一种能够处理复杂的、非确定性的状态迁移的有限状态自动机。 Flink CEP的实现包括几个关键步骤。首先,将定义的模式转化为对应的NFA表示。然后,将输入的事件流与NFA进行匹配,找到符合模式的事件序列。接着,根据匹配结果执行相应的操作,比如触发事件或生成结果。 Flink CEP还支持动态更新和加载规则的功能。通过在Flink Job中提供访问外部库的能力,可以及时发现外部存储中规则的变化。然后,将变更的规则动态加载到CEP中,将外部规则的描述解析成Flink CEP能够识别的pattern结构体。最后,将生成的pattern转化成NFA,替换历史NFA,使得新到来的消息能够使用新的规则进行匹配。 综上所述,Flink CEP的原理是基于有限状态自动机的思想,通过将模式转化为NFA并与输入的事件流匹配,识别和处理符合特定模式的事件序列。同时,还支持动态更新和加载规则的功能,使得规则库的变化能够及时反映在Flink CEP的运行中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Flink CEP兵书](https://download.csdn.net/download/weixin_26840895/19687436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Flink: CEP详解](https://blog.csdn.net/weixin_44131414/article/details/113883061)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HouGISer

HouGiser需要你的鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值