<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: I've implemented an extensible BPMN parser for Activiti in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27693#M13952</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your comments.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Yes, I've sent the signed agreement (scanned version, using email). I'm not sure if I need to send a hard-copy by mail too. And Tom didn't tell me what to do next (I asked him if I need to do anything else)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. There is already a JIRA issue for this: &lt;/SPAN&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-178" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-178&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;I will add a comment in the issue now.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. I've done my changes in the classes in my own project, not in a check-out of the Activiti code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It will take me some time to do the changes on the Activiti code (for check-in / creating a patch) which I'm totally willing to do.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But since there's no response on this from the team, I'm thinking that creating a branch or replying to a post is much easier that reviewing and pallying a patch (which affects several files). So if they don't have time (or intention) for that, they won't look at my patch either. So why spend the time? If i have heard as much as "Send us a patch" sentence from them, I would have prepared and sent it two weeks ago.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Hamed&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 14 Oct 2010 14:00:45 GMT</pubDate>
    <dc:creator>iravanchi</dc:creator>
    <dc:date>2010-10-14T14:00:45Z</dc:date>
    <item>
      <title>I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27690#M13949</link>
      <description>As a part of my project, I needed to extend BPMN parser to support my own activities in the process definition.I imported a few of the source codes of Activiti into my project and implemented the following solution:BpmnParser supports multiple xmlns definitions, and each element / attribute is deleg</description>
      <pubDate>Mon, 27 Sep 2010 15:39:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27690#M13949</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-09-27T15:39:08Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27691#M13950</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm not getting any feedback on this in the forum, or in the email.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Would you let me know if I should follow-up on this or not?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Or let me know what to do about this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think if I'm ever going to merge my code with the actual code, the sooner is the better.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Because as the trunk changes, there's more changes to be merged.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Hamed&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Oct 2010 12:25:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27691#M13950</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-12T12:25:04Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27692#M13951</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Hamed,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As a newbie user my opinion may not be of much significance but… FWIW your proposed extensibility features seem to be very desirable from a end-user perspective.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I suspect the dev team is very busy to comment on your proposed idea in the abstract but may be more helpful if you did further due diligence. Here is what I suggest based on experience with other OS projects:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Send a signed contributors agreement (Just saw that you already did that):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;A href="http://docs.codehaus.org/pages/viewpage.action?pageId=163872771" rel="nofollow noopener noreferrer"&gt;http://docs.codehaus.org/pages/viewpage.action?pageId=163872771&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. File an RFE issue in ACT JIRA requesting the features you propose:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;A href="http://jira.codehaus.org/browse/ACT" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Attach your proposed changes as a patch diff file to the issue and then post an update on this thread with link to the issue&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This will hopefully help the dev team be able to understand what your proposal is all about and respond to it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 13:39:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27692#M13951</guid>
      <dc:creator>farrukh_najmi</dc:creator>
      <dc:date>2010-10-14T13:39:53Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27693#M13952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your comments.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Yes, I've sent the signed agreement (scanned version, using email). I'm not sure if I need to send a hard-copy by mail too. And Tom didn't tell me what to do next (I asked him if I need to do anything else)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. There is already a JIRA issue for this: &lt;/SPAN&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-178" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-178&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;I will add a comment in the issue now.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. I've done my changes in the classes in my own project, not in a check-out of the Activiti code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It will take me some time to do the changes on the Activiti code (for check-in / creating a patch) which I'm totally willing to do.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But since there's no response on this from the team, I'm thinking that creating a branch or replying to a post is much easier that reviewing and pallying a patch (which affects several files). So if they don't have time (or intention) for that, they won't look at my patch either. So why spend the time? If i have heard as much as "Send us a patch" sentence from them, I would have prepared and sent it two weeks ago.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Hamed&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 14:00:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27693#M13952</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-14T14:00:45Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27694#M13953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;i'm processing my backlog after having been on vacation.&amp;nbsp; please bear with us for a moment.&amp;nbsp; sorry for the delay.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;from a first incomplete glance, i would be concerned with 1) i don't think your proposal is valid bpmn.&amp;nbsp; it's not allowed to define custom activities like that.&amp;nbsp; 2) changing and extending the parser would take us a long time to discuss.&amp;nbsp; then we need to think and agree on how we actually want to build in this extensibility.&amp;nbsp; that's not a priority for us atm.&amp;nbsp; the better we understand what you want to do, how and why the easier it is for us to accept a contribution.&amp;nbsp; and also we need to see how this is generic enough so that it serves the community at large.&amp;nbsp; hopefully i'll be able to process my backlog soon so that i can look deeper into this proposal&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 14:12:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27694#M13953</guid>
      <dc:creator>tombaeyens</dc:creator>
      <dc:date>2010-10-14T14:12:35Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27695#M13954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I know it's not valid BPMN, but it's the same as what you've done with "activiti:" attributes and elements.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Actually it is possible to exactly separate the Activiti extensions from the pure BPMN in the parser that I've done with simple re-arrangements.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyway, let me know what to do, if you're interested.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 14:32:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27695#M13954</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-14T14:32:05Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27696#M13955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The activiti-extentions are actually valid BPMN, since the serviceTask's attributes may be extended (with for example activiti:type). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, it allows custom elements under the tag '&amp;lt;extensionElements&amp;gt;', like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;lt;serviceTask id="sendMail" activiti:type="mail"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field activiti:name="from" activiti:string-value="order-shipping@thecompany.com" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field activiti:name="to" activiti:string-value="${recipient}" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field activiti:name="subject" activiti:string-value="Your order ${orderId} has been shipped" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field activiti:name="html"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hello ${male ? 'Mr.' : 'Mrs.' } ${recipientName},&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As of ${now}, your order has been &amp;lt;b&amp;gt;processed and shipped&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kind regards,&amp;lt;br/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TheCompany.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]]&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;/serviceTask&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 14:41:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27696#M13955</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2010-10-14T14:41:00Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27697#M13956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;On a related note, as previously discussed on other threads the actviti parser currently supports a small subset of BPMN 2.0:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://forums.activiti.org/en/viewtopic.php?f=4&amp;amp;t=298" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/en/viewtopic.php?f=4&amp;amp;t=298&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One issue I am encountering is that it does not provide warnings when it encounters unsupportred types leaving users to stumble upon limitations (since they are not documented explicitly anywhere yet).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I am wondering what are the latest plans for BpmnParser to use a set of data binding classes generated from JAXB or Eclipse BPMN2 EMF project. This would be really a great improvement to the robustness and spec coverage within the parser.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 15:54:07 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27697#M13956</guid>
      <dc:creator>farrukh_najmi</dc:creator>
      <dc:date>2010-10-14T15:54:07Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27698#M13957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Let me re-phrase my original message:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've refactored the BPMN parser inside the activiti that:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Makes it easier to extend the BPMN coverage in future developments&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Makes it possible to add valid extensions (like Activiti extensions) without the need to modify the original parser code, and in a clean way&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Makes it easy to intercept / override PVM code generation from BPMN&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Makes it possible to incorporate existing BPMN parser for creating new custom languages&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I originally wanted to do was the last one (create my own lang based on BPMN) but I wasn't aware of the explicit extensibility specification in the BPMN spec. I should review the specs to see what is exactly considered valid and what is not valid in BPMN. Maybe I can use the valid extensions and don't need to extend it the way I did.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And I wasn't proposing that my way was the right way. And I also know that my code can be improved. I am expecting discussions and feedback so that I can do the right thing, considering the core developers' experience.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I'm willing to spend time and develop in Activiti, since I already know the engine code to some extent. If the core developers assign tasks to me, I'd be happy to contribute my time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;About warnings on unsupported BPMN elements, I think the current Activiti parser produces warnings on the log output, but I'm not sure. But in my refactored code, each unsupported element inside the scopes, are reported as a WARNING on the log output.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 16:59:01 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27698#M13957</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-14T16:59:01Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27699#M13958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;About warnings on unsupported BPMN elements, I think the current Activiti parser produces warnings on the log output, but I'm not sure. But in my refactored code, each unsupported element inside the scopes, are reported as a WARNING on the log output.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;I just switched to latest trunk bits (5.0.rc1-SNAPSHOT) and I see a lot more warnings now. Thanks dev team!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One missing warning I can spot still is when there is a sendTask in a process. Since sendTask is unsupported in parser AFAIK, I think there should be a warning on its usage.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 17:22:39 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27699#M13958</guid>
      <dc:creator>farrukh_najmi</dc:creator>
      <dc:date>2010-10-14T17:22:39Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27700#M13959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;from a first incomplete glance, i would be concerned with 1) i don't think your proposal is valid bpmn.&amp;nbsp; it's not allowed to define custom activities like that.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;+1 &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking at Hamed's BPMN example more carefully I now see that it is based upon invalid BPMN and does not extend BPMN using extensionElement as pointed by another post on this thread.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think Hamed has the right idea (though details are off) that there is a need to provide a framework in the impl for adding handlers for custom extension elements. The same extension framework should be used internally by actviti dev team for actviti-defined extensions and exposed to activiti developers in user community to implement support for their own custom extensions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The details of Hamed's proposed solution is not correct since it is not valid BPMN.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Tom, does the dev team already have a framework for handling custom extensions in mind? If not, is there support and encouragement from dev team &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for Hamed and I to work out an extensibility proposal that is based on valid BPMN? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On a related note what are the plans for using JAXB or BPMN2 EMF project within the parser?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 18:18:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27700#M13959</guid>
      <dc:creator>farrukh_najmi</dc:creator>
      <dc:date>2010-10-14T18:18:42Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27701#M13960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We're don't think its a good idea to switch our BpmnParser to JAXB.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;We can consider improvements to the current parser, but then we need to be sure that the solution covers also the tooling.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We have an idea in mind that looks like this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;lt;serviceTask activiti:type="someTypeOrAClassName"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;field name="cfgParam1"&amp;gt;stringValue&amp;lt;/field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;field name="cfgParam2"&amp;gt;&amp;lt;integer value="293" /&amp;gt;&amp;lt;/field&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In case short type names are used, then the BpmnParser (as part of the ProcessEngineConfiguration) should have a list of full class names that implement ActivityBehavior.&amp;nbsp; Those classes should indicate their short type name with an annotation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This way, the modeler and designer tools can dynamically add support for ActivityBehavior's that are plugged in by doing introspection on the ActivityBehavior class.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thats our current line of thinking.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Oct 2010 07:02:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27701#M13960</guid>
      <dc:creator>tombaeyens</dc:creator>
      <dc:date>2010-10-15T07:02:18Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27702#M13961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I agree with not using JAXB. The current parser, in my opinion, is both more flexible and more efficient, than if you'd used JAXB. (except the long list of if .. else if … else if … comparisons in the parser, which can be made more efficient using a lookup map)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a few notes, that won't clash with your current idea. I want to know what you think about it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. I think if &amp;lt;serviceTask&amp;gt; can have custom attributes, such as activiti:type, it should be able to have other custom attributes too, like "myOwnNs:type", through some extensibility.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. If you agree with 1, then I think the best design would be the one that handles "activiti:" extensions the same way that it handles other extensions. You can even distinguish between pure-BPMN parsing, and BPMN with activiti extensions parsing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. If you provide some features in the engine, it doesn't necessarily mean that you have to support it in the designer. For example, you allow a list of "deployers" in the engine, but the designer only creates BPMN files. This way, a user can extend the engine and use it in his own way, in addition to what Activiti provides already.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;4. Being able to re-use any part of the class library is a good feature to have. For example, I might want to use the BpmnDeployer (or Parser) to validate an XML that I get from my user, and to see if the engine supports it already, and gather error messages independently, without deploying the XML into the Activiti tables.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'd be happy to hear what you think about the above.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Meanwhile, I will take a look at the BPMN specs one more time, to see exactly what it allows for extensions. I'll update my design accordingly, and post a couple of class / sequence diagrams for you to see what I have.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Hamed&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Oct 2010 08:33:23 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27702#M13961</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-15T08:33:23Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27703#M13962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;As BPMN's XML schema doesn't block &lt;/SPAN&gt;&lt;A href="http://w3schools.com/schema/schema_complex_subst.asp" rel="nofollow noopener noreferrer"&gt;Element Substitution&lt;/A&gt;&lt;SPAN&gt;, I was just about to argue that the custom Flow Nodes suggested by iravanchi could be made valid with the following XML schema:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR /&gt;&amp;lt;schema&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;A href="http://www.w3.org/2001/XMLSchema" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/2001/XMLSchema&lt;/A&gt;"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetNamespace="&lt;A href="http://my/custom/namespace" rel="nofollow noopener noreferrer"&gt;http://my/custom/namespace&lt;/A&gt;"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:tns="&lt;A href="http://my/custom/namespace" rel="nofollow noopener noreferrer"&gt;http://my/custom/namespace&lt;/A&gt;"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:bpmn="&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elementFormDefault="qualified"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!–&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is a schema-valid BPMN extension, which is invalid with respect&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the meta model as described in section "8.2.3 Extensibility" of the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BPMN specification.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; –&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;import namespace="&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!– &amp;lt;io:readFile id="readFromSource" sourceFile="D:\new.txt" targetVariable="fileContent" /&amp;gt; –&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;element name="readFile" type="tns:tReadFile" substitutionGroup="bpmn:flowElement" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;complexType name="tReadFile"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;complexContent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extension base="bpmn:tTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="sourceFile" type="string" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="targetVariable" type="string" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extension&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/complexContent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/complexType&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;/schema&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;SPAN&gt; However, after reading section "8.2.3 Extensibility" of the BPMN specification again, I learned that the BPMN Meta Model only allows custom XML elements that are contained in &lt;/SPAN&gt;&lt;EM&gt;extensionElements&lt;/EM&gt;&lt;SPAN&gt; elements. This means that the direct children of the &lt;/SPAN&gt;&lt;EM&gt;process&lt;/EM&gt;&lt;SPAN&gt; element can only be elements from the official BPMN XML schema.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This still leaves the question of how to deal with the quite frequent request for custom elements open.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In general, I believe that it is good to have a compact set of task categories that gives users hint about what they have to do and what the machines do for them. I think that the seven Task Types of BPMN 2.0 are broad enough to put any custom task into one of those seven categories. So why don't we restrict us to, e.g., Service Tasks with Extension Elements and be sure that our processes stay compatible with the majority of BPMN tools? We could still extend our particular tools to display our extended Service Task, e.g., with another icon or even completely different.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Oct 2010 09:13:10 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27703#M13962</guid>
      <dc:creator>falko_menge</dc:creator>
      <dc:date>2010-10-15T09:13:10Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27704#M13963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;@iravanchi&amp;nbsp; did you see the ParseListeners already in the code?&amp;nbsp; with that (undocumented for now) feature you can parse custom attributes&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Oct 2010 11:46:28 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27704#M13963</guid>
      <dc:creator>tombaeyens</dc:creator>
      <dc:date>2010-10-15T11:46:28Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27705#M13964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;@falko &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've planned to read BPMN extensibility again tomorrow, but as you already did and you're fresh, does BPMN allow such &amp;lt;extensionElements&amp;gt; in all of the process children? For example, can I have extensions on flows and user tasks too?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;During the previous version of our project (which used jBPM 3) the requirement to add extra custom information to such elements in the XML raised a few times, and I think I'll probably need the same stuff in BPMN too.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For example, I'm sure that I'd be adding additional event attributes for allowing processes to be triggered by my application's custom events.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@tom&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes, I saw the ParseListeners, and I've actually extended it to have two methods (before and after). I don't remember why I added the "after" method, I'd check my code tomorrow at work and write back.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What I did (in brief) was to create some kind of ElementParseHandler, each of which can declare a set of element names they can handle (plus xmlns).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The parser then creates a Map of the handlers, and delegates parsing of each element to its handler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Hamed&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Oct 2010 20:58:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27705#M13964</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-15T20:58:42Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27706#M13965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;We're don't think its a good idea to switch our BpmnParser to JAXB.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I agree with not using JAXB. The current parser, in my opinion, is both more flexible and more efficient, than if you'd used JAXB. (except the long list of if .. else if … else if … comparisons in the parser, which can be made more efficient using a lookup map)&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;I do not wish to beat a dead horse but only interested in learning the rationale behind not wanting to use jAXB.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I realize JAXB is not as efficient as raw XML processing. What other considerations make you both feel that its not a good fit for parsing BPMN2?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Again I only wish to understand your rationale and am not trying to make a case for JAXB. Thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Oct 2010 12:21:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27706#M13965</guid>
      <dc:creator>farrukh_najmi</dc:creator>
      <dc:date>2010-10-18T12:21:30Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27707#M13966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;What other considerations make you both feel that its not a good fit for parsing BPMN2?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe if I wanted to write the BPMN Parser from scratch, I might have used JAXB. Specially provided that we have an XSD ready for generating JAXB classes. So, I'm not saying that JAXB is not a good fit. Anyway, here's why I felt I'm not comfortable with JAXB in here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(Note that none of these are concrete reasons, just generally the way I feel about the issue)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. BpmnParser does two things. One is parsing the XML, and one is generating PVM objects based on what is read from XML. So if we use JAXB, most of the current code will remain, not replaced.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Using JAXB means strict conformance of the XML to the object model. In the current implementation, it's rather easier to handle errors in custom ways.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. It's easier to change / extend the current parser, than if the parser have used JAXB. For example, in JAXB code you need to specify possible sub-classes of a super class user @XmlSeeAlso. So if you want the parser to handle a new element, you'll either have to change the library code, or re-implement the whole JAXB class hierarchy that is bound to BPMN. In the current parser, it's a matter of comparing strings.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All of the above items can be considered a positive point for JAXB too, depending on your point of view.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Even for the performance, since there is many string comparisons and string lookups in the current code, we can't be sure that using JAXB means lower performance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think the concrete reason for not changing it would be: there's no (special) gain for the user of Activiti to do so.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;From your point of view, as a user of Activiti, what can be better if Activiti uses JAXB or not internally?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Oct 2010 13:28:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27707#M13966</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-18T13:28:38Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27708#M13967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;What other considerations make you both feel that its not a good fit for parsing BPMN2?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;Maybe if I wanted to write the BPMN Parser from scratch, I might have used JAXB. Specially provided that we have an XSD ready for generating JAXB classes. So, I'm not saying that JAXB is not a good fit. Anyway, here's why I felt I'm not comfortable with JAXB in here:&lt;BR /&gt;(Note that none of these are concrete reasons, just generally the way I feel about the issue)&lt;BR /&gt;&lt;BR /&gt;1. BpmnParser does two things. One is parsing the XML, and one is generating PVM objects based on what is read from XML. So if we use JAXB, most of the current code will remain, not replaced.&lt;BR /&gt;&lt;BR /&gt;2. Using JAXB means strict conformance of the XML to the object model. In the current implementation, it's rather easier to handle errors in custom ways.&lt;BR /&gt;&lt;BR /&gt;3. It's easier to change / extend the current parser, than if the parser have used JAXB. For example, in JAXB code you need to specify possible sub-classes of a super class user @XmlSeeAlso. So if you want the parser to handle a new element, you'll either have to change the library code, or re-implement the whole JAXB class hierarchy that is bound to BPMN. In the current parser, it's a matter of comparing strings.&lt;BR /&gt;&lt;BR /&gt;All of the above items can be considered a positive point for JAXB too, depending on your point of view.&lt;BR /&gt;Even for the performance, since there is many string comparisons and string lookups in the current code, we can't be sure that using JAXB means lower performance.&lt;BR /&gt;&lt;BR /&gt;I think the concrete reason for not changing it would be: there's no (special) gain for the user of Activiti to do so.&lt;BR /&gt;From your point of view, as a user of Activiti, what can be better if Activiti uses JAXB or not internally?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for sharing your thoughts Ahmed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The main benefit of using JAXB that I see is that it will likely encourage a tighter support for BPMN2 syntax in the parser and will be much more robust and easier to maintain in the long term. Perhaps that is not compelling enough benefit in the short term.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW, handling of extension elements can be done in JAXB RI via separate compilation of the extension schema and using the generated bindings of extension schema with the core schema:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://weblogs.java.net/blog/2006/09/05/separate-compilation-jaxb-ri-21" rel="nofollow noopener noreferrer"&gt;http://weblogs.java.net/blog/2006/09/05/separate-compilation-jaxb-ri-21&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Oct 2010 14:05:50 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27708#M13967</guid>
      <dc:creator>farrukh_najmi</dc:creator>
      <dc:date>2010-10-18T14:05:50Z</dc:date>
    </item>
    <item>
      <title>Re: I've implemented an extensible BPMN parser for Activiti</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27709#M13968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes, I agree with you about the long-term maintainability, and cleaner code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe Tom has some more concrete reasons for why he didn't think JAXB is a good choice.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And, BTW, I'm NOT "Ahmed". I'm "Hamed" &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://connect.hyland.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Hamed&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Oct 2010 18:36:47 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/i-ve-implemented-an-extensible-bpmn-parser-for-activiti/m-p/27709#M13968</guid>
      <dc:creator>iravanchi</dc:creator>
      <dc:date>2010-10-18T18:36:47Z</dc:date>
    </item>
  </channel>
</rss>

