jbpm支持xpdl的标准了吗?

今天用svn下载jbpm3的源码,无意中发现了xpdl的字样,奇怪了一下,因为jbpm支持的是JPDL的,看JBOSS的网站和相关wiki,都没有提到对XDPL的支持。等不得svn完成,到下载的目录中去查看一番,结果发现在:
jbpm/jbpm3/jbossbpm/spec/trunk/modules/dialects/
文件夹下,真的有一个xpdl121的文件夹
在这个文件夹下用tree命令的结果如下:

dialect]$ tree
.
`-- xpdl21
    |-- DialectHandlerImpl.java
    |-- ProcessUnmarshaller.java
    |-- WorkflowProcessAdapter.java
    `-- model
        |-- ApplicationType.java
        |-- ExpressionType.java
        |-- MessageType.java
        |-- ObjectFactory.java
        |-- PackageType.java
        |-- XPDLActivities.java
        |-- XPDLActivity.java
        |-- XPDLActivitySet.java
        |-- XPDLActivitySets.java
        |-- XPDLActualParameters.java
        |-- XPDLApplication.java
        |-- XPDLApplications.java
        |-- XPDLArrayType.java
        |-- XPDLArtifact.java
        |-- XPDLArtifactInput.java
        |-- XPDLArtifacts.java
        |-- XPDLAssignment.java
        |-- XPDLAssignments.java
        |-- XPDLAssociation.java
        |-- XPDLAssociations.java
        |-- XPDLAuthor.java
        |-- XPDLBasicType.java
        |-- XPDLBlockActivity.java
        |-- XPDLCategories.java
        |-- XPDLCategory.java
        |-- XPDLCodepage.java
        |-- XPDLCondition.java
        |-- XPDLConformanceClass.java
        |-- XPDLConnectorGraphicsInfo.java
        |-- XPDLConnectorGraphicsInfos.java
        |-- XPDLCoordinates.java
        |-- XPDLCost.java
        |-- XPDLCostStructure.java
        |-- XPDLCostUnit.java
        |-- XPDLCountrykey.java
        |-- XPDLCreated.java
        |-- XPDLDataField.java
        |-- XPDLDataFields.java
        |-- XPDLDataMapping.java
        |-- XPDLDataMappings.java
        |-- XPDLDataObject.java
        |-- XPDLDataType.java
        |-- XPDLDeadline.java
        |-- XPDLDeclaredType.java
        |-- XPDLDescription.java
        |-- XPDLDocumentation.java
        |-- XPDLDuration.java
        |-- XPDLEndEvent.java
        |-- XPDLEndPoint.java
        |-- XPDLEnumerationType.java
        |-- XPDLEnumerationValue.java
        |-- XPDLEvent.java
        |-- XPDLExtendedAttribute.java
        |-- XPDLExtendedAttributes.java
        |-- XPDLExternalPackage.java
        |-- XPDLExternalPackages.java
        |-- XPDLExternalReference.java
        |-- XPDLFormalParameter.java
        |-- XPDLFormalParameters.java
        |-- XPDLGroup.java
        |-- XPDLIORules.java
        |-- XPDLIcon.java
        |-- XPDLImplementation.java
        |-- XPDLInput.java
        |-- XPDLInputSet.java
        |-- XPDLInputSets.java
        |-- XPDLIntermediateEvent.java
        |-- XPDLJoin.java
        |-- XPDLLane.java
        |-- XPDLLanes.java
        |-- XPDLLayoutInfo.java
        |-- XPDLLength.java
        |-- XPDLLimit.java
        |-- XPDLListType.java
        |-- XPDLLoop.java
        |-- XPDLLoopMultiInstance.java
        |-- XPDLLoopStandard.java
        |-- XPDLMember.java
        |-- XPDLMessageFlow.java
        |-- XPDLMessageFlows.java
        |-- XPDLModificationDate.java
        |-- XPDLNo.java
        |-- XPDLNodeGraphicsInfo.java
        |-- XPDLNodeGraphicsInfos.java
        |-- XPDLObject.java
        |-- XPDLOutput.java
        |-- XPDLOutputSet.java
        |-- XPDLOutputSets.java
        |-- XPDLPackageHeader.java
        |-- XPDLPage.java
        |-- XPDLPages.java
        |-- XPDLParticipant.java
        |-- XPDLParticipantType.java
        |-- XPDLParticipants.java
        |-- XPDLPartnerLink.java
        |-- XPDLPartnerLinkType.java
        |-- XPDLPartnerLinkTypes.java
        |-- XPDLPartnerLinks.java
        |-- XPDLPerformer.java
        |-- XPDLPerformers.java
        |-- XPDLPool.java
        |-- XPDLPools.java
        |-- XPDLPrecision.java
        |-- XPDLPriority.java
        |-- XPDLPriorityUnit.java
        |-- XPDLProcessHeader.java
        |-- XPDLPropertyInput.java
        |-- XPDLRecordType.java
        |-- XPDLRedefinableHeader.java
        |-- XPDLReference.java
        |-- XPDLResourceCosts.java
        |-- XPDLResponsible.java
        |-- XPDLResponsibles.java
        |-- XPDLResultError.java
        |-- XPDLResultMultiple.java
        |-- XPDLRoute.java
        |-- XPDLRule.java
        |-- XPDLScale.java
        |-- XPDLSchemaType.java
        |-- XPDLScript.java
        |-- XPDLSimulationInformation.java
        |-- XPDLSplit.java
        |-- XPDLStartEvent.java
        |-- XPDLSubFlow.java
        |-- XPDLTask.java
        |-- XPDLTaskApplication.java
        |-- XPDLTaskManual.java
        |-- XPDLTaskReceive.java
        |-- XPDLTaskReference.java
        |-- XPDLTaskScript.java
        |-- XPDLTaskSend.java
        |-- XPDLTaskService.java
        |-- XPDLTaskUser.java
        |-- XPDLTimeEstimation.java
        |-- XPDLTransaction.java
        |-- XPDLTransition.java
        |-- XPDLTransitionRef.java
        |-- XPDLTransitionRefs.java
        |-- XPDLTransitionRestriction.java
        |-- XPDLTransitionRestrictions.java
        |-- XPDLTransitions.java
        |-- XPDLTriggerConditional.java
        |-- XPDLTriggerIntermediateMultiple.java
        |-- XPDLTriggerMultiple.java
        |-- XPDLTriggerResultCompensation.java
        |-- XPDLTriggerResultLink.java
        |-- XPDLTriggerResultMessage.java
        |-- XPDLTriggerResultSignal.java
        |-- XPDLTriggerTimer.java
        |-- XPDLTypeDeclaration.java
        |-- XPDLTypeDeclarations.java
        |-- XPDLUnionType.java
        |-- XPDLValidFrom.java
        |-- XPDLValidTo.java
        |-- XPDLVendor.java
        |-- XPDLVendorExtension.java
        |-- XPDLVendorExtensions.java
        |-- XPDLVersion.java
        |-- XPDLWaitingTime.java
        |-- XPDLWebServiceFaultCatch.java
        |-- XPDLWebServiceOperation.java
        |-- XPDLWorkflowProcess.java
        |-- XPDLWorkflowProcesses.java
        |-- XPDLWorkingTime.java
        |-- XPDLXPDLVersion.java
        `-- package-info.java

2 directories, 169 files
看来是有相关的class
于是,我用vim打开其中的一个文件:
#>vim WorkflowProcessAdapter.java
这个文件的源代码片断如下:

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2005, JBoss Inc., and individual contributors as indicated
  4.  * by the @authors tag. See the copyright.txt in the distribution for a
  5.  * full listing of individual contributors.
  6.  *
  7.  * This is free software; you can redistribute it and/or modify it
  8.  * under the terms of the GNU Lesser General Public License as
  9.  * published by the Free Software Foundation; either version 2.1 of
  10.  * the License, or (at your option) any later version.
  11.  *
  12.  * This software is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15.  * Lesser General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU Lesser General Public
  18.  * License along with this software; if not, write to the Free
  19.  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  20.  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  21.  */
  22. package org.jboss.bpm.dialect.xpdl21;
  23. // $Id: WorkflowProcessAdapter.java 1864 2008-08-11 10:56:42Z thomas.diesler@jboss.com $
  24. import org.jboss.bpm.InvalidProcessException;
  25. import org.jboss.bpm.dialect.xpdl21.model.XPDLActivities;
  26. import org.jboss.bpm.dialect.xpdl21.model.XPDLActivity;
  27. import org.jboss.bpm.dialect.xpdl21.model.XPDLEvent;
  28. import org.jboss.bpm.dialect.xpdl21.model.XPDLWorkflowProcess;
  29. import org.jboss.bpm.model.Process;
  30. import org.jboss.bpm.model.ProcessBuilder;
  31. import org.jboss.bpm.model.ProcessBuilderFactory;
  32. /**
  33.  * Adapt the jpdl-3.2 ProcessDefinition to the API Process
  34.  * 
  35.  * @author thomas.diesler@jboss.com
  36.  * @since 18-Jun-2008
  37.  */
  38. public class WorkflowProcessAdapter
  39. {
  40.   public Process adaptWorkflowProcess(XPDLWorkflowProcess xpdlProc)
  41.   {
  42.     ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
  43.     builder.addProcess(xpdlProc.getName());
  44.     XPDLActivities xpdlActivities = xpdlProc.getActivities();
  45.     for (XPDLActivity xpdlActivity : xpdlActivities.getActivity())
  46.     {
  47.       XPDLEvent xpdlEvent = xpdlActivity.getEvent();
  48.       if (xpdlEvent != null)
  49.       {
  50.         if (xpdlEvent.getStartEvent() != null)
  51.         {
  52.           builder.addStartEvent("Start");
  53.         }
  54.         else if (xpdlEvent.getEndEvent() != null)
  55.         {
  56.           builder.addEndEvent(xpdlActivity.getName());
  57.         }
  58.         else
  59.         {
  60.           throw new InvalidProcessException("Unsupported type: " + xpdlEvent);
  61.         }
  62.       }
  63.       else
  64.       {
  65.         throw new InvalidProcessException("Unsupported type: " + xpdlActivity);
  66.                                                               
  67.  Process proc = builder.getProcess();
  68.     return proc;
  69.   }
  70. }
  71.                    

奇怪ing,研究一下相关的代码再作结论。。。。。。。。。。。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值