Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
ac537d52
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ac537d52
编写于
10月 27, 2010
作者:
N
nilspreusker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merged changes from cycle branch r1100 through r1138 into trunk
上级
cf384f7c
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
153 addition
and
32 deletion
+153
-32
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/SignavioConnector.java
...viti/cycle/impl/connector/signavio/SignavioConnector.java
+33
-25
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/SignavioPluginDefinition.java
...cle/impl/connector/signavio/SignavioPluginDefinition.java
+4
-2
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/action/AbstractCopyBaseAction.java
...mpl/connector/signavio/action/AbstractCopyBaseAction.java
+53
-0
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/action/CopySignavioModelAction.java
...pl/connector/signavio/action/CopySignavioModelAction.java
+24
-0
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/action/CreateTechnicalBpmnXmlAction.java
...nnector/signavio/action/CreateTechnicalBpmnXmlAction.java
+2
-2
modules/activiti-cycle/src/main/resources/org/activiti/cycle/impl/connector/signavio/action/CopySignavioModelAction.html
...pl/connector/signavio/action/CopySignavioModelAction.html
+33
-0
modules/activiti-cycle/src/main/resources/org/activiti/cycle/impl/connector/signavio/action/CreateTechnicalBpmnXmlAction.html
...nnector/signavio/action/CreateTechnicalBpmnXmlAction.html
+4
-3
未找到文件。
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/SignavioConnector.java
浏览文件 @
ac537d52
...
...
@@ -184,32 +184,34 @@ public class SignavioConnector extends AbstractRepositoryConnector<SignavioConne
throw
new
RepositoryException
(
jsonDirectoryObject
+
" is not a directory"
);
}
String
directoryName
=
jsonDirectoryObject
.
getJSONObject
(
"rep"
).
getString
(
"name"
);
if
(
jsonDirectoryObject
.
getJSONObject
(
"rep"
).
has
(
"type"
))
{
// need hard coded translation of some special folders with special
// treatment by signavio
// see https://app.camunda.com/jira/browse/HEMERA-328
String
type
=
jsonDirectoryObject
.
getJSONObject
(
"rep"
).
optString
(
"type"
);
if
(
"public"
.
equals
(
type
))
{
// TODO: Think about what to show here (I18n?)
directoryName
=
"Public"
;
}
if
(
"private"
.
equals
(
type
))
{
directoryName
=
"Private"
;
}
}
log
.
finest
(
"Directoryname: "
+
directoryName
);
// String directoryDescription =
// jsonDirectoryObject.getJSONObject("rep").getString("description");
String
href
=
jsonDirectoryObject
.
getString
(
"href"
);
// for (JSONObject subDirectoryInfo : getSubDirectoryInfos(href)) {
// printDirectory(subDirectoryInfo, indention);
// }
//
// for (JSONObject modelInfo : getSubModelInfos(href)) {
// String modelName = modelInfo.getJSONObject("rep").getString("name");
// String modelType = modelInfo.getJSONObject("rep").getString("type");
// System.out.println(indention + "- MODEL " + modelName + " (" + modelType
// + ")");
// }
// folderInfo.setId( directoryId );
// TODO: Check where we get the real ID from!
String
id
=
getConfiguration
().
getDirectoryIdFromUrl
(
href
);
RepositoryFolderImpl
folderInfo
=
new
RepositoryFolderImpl
(
getConfiguration
().
getId
(),
id
);
folderInfo
.
getMetadata
().
setName
(
directoryName
);
// TODO: Where do we get the path from?
// folderInfo.getMetadata().setPath();
return
folderInfo
;
}
...
...
@@ -235,7 +237,7 @@ public class SignavioConnector extends AbstractRepositoryConnector<SignavioConne
fileInfo
.
getMetadata
().
setLastAuthor
(
json
.
optString
(
"author"
));
fileInfo
.
getMetadata
().
setCreated
(
SignavioJsonHelper
.
getDateValueIfExists
(
json
,
"created"
));
fileInfo
.
getMetadata
().
setLastChanged
(
SignavioJsonHelper
.
getDateValueIfExists
(
json
,
"updated"
));
// relObject.getJSONObject("rep").getString("revision"); --> UUID of
// revision
// relObject.getJSONObject("rep").getString("description");
...
...
@@ -455,41 +457,47 @@ public class SignavioConnector extends AbstractRepositoryConnector<SignavioConne
public
RepositoryArtifact
createArtifactFromJSON
(
String
containingFolderId
,
String
artifactName
,
String
artifactType
,
String
jsonContent
)
throws
RepositoryNodeNotFoundException
{
// TODO: Add check if model already exists (overwrite or throw exception?)
String
revisionComment
=
null
;
String
description
=
null
;
// public void createNewModel(String parentFolderId, String name, String
// jsonData, String revisionComment, String description) throws IOException
// {
try
{
// do this to check if jsonString is valid
JSONObject
jsonModel
=
new
JSONObject
(
jsonContent
);
Form
modelForm
=
new
Form
();
// TODO: Check if this is correct, maybe we need to include an empty
// string
Form
modelForm
=
new
Form
();
if
(
revisionComment
!=
null
)
{
modelForm
.
add
(
"comment"
,
revisionComment
);
}
else
{
modelForm
.
add
(
"comment"
,
""
);
}
if
(
description
!=
null
)
{
modelForm
.
add
(
"description"
,
description
);
}
else
{
modelForm
.
add
(
"description"
,
""
);
}
modelForm
.
add
(
"glossary_xml"
,
new
JSONArray
().
toString
());
// signavio generates a new id for POSTed models
// modelForm.add("id", null);
// signavio generates a new id for POSTed models, so don't set an id
modelForm
.
add
(
"json_xml"
,
jsonModel
.
toString
());
modelForm
.
add
(
"name"
,
artifactName
);
// TODO: Check ArtifactType here correctly
modelForm
.
add
(
"namespace"
,
"http://b3mn.org/stencilset/bpmn2.0#"
);
modelForm
.
add
(
"parent"
,
"/directory/"
+
containingFolderId
);
modelForm
.
add
(
"namespace"
,
SignavioPluginDefinition
.
SIGNAVIO_NAMESPACE_FOR_BPMN_2_0
);
// Important: Don't set the type attribute here, otherwise it will not
// work!
modelForm
.
add
(
"parent"
,
"/"
+
getConfiguration
().
DIRECTORY_URL_SUFFIX
+
containingFolderId
);
// we have to provide a SVG (even if don't have the correct one) because
// otherwise Signavio throws an exception in its GUI
modelForm
.
add
(
"svg_xml"
,
"svg_xml"
,
//
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:oryx=\"http://oryx-editor.org\" id=\"sid-80D82B67-3B30-4B35-A6CB-16EEE17A719F\" width=\"50\" height=\"50\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:svg=\"http://www.w3.org/2000/svg\"><defs/><g stroke=\"black\" font-family=\"Verdana, sans-serif\" font-size-adjust=\"none\" font-style=\"normal\" font-variant=\"normal\" font-weight=\"normal\" line-heigth=\"normal\" font-size=\"12\"><g class=\"stencils\" transform=\"translate(25, 25)\"><g class=\"me\"/><g class=\"children\"/><g class=\"edge\"/></g></g></svg>"
);
modelForm
.
add
(
"type"
,
"BPMN 2.0"
);
// modelForm.add("views", new JSONArray().toString());
Representation
modelRep
=
modelForm
.
getWebRepresentation
();
...
...
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/SignavioPluginDefinition.java
浏览文件 @
ac537d52
...
...
@@ -3,11 +3,12 @@ package org.activiti.cycle.impl.connector.signavio;
import
java.util.List
;
import
org.activiti.cycle.ArtifactType
;
import
org.activiti.cycle.RenderInfo
;
import
org.activiti.cycle.CycleDefaultMimeType
;
import
org.activiti.cycle.RenderInfo
;
import
org.activiti.cycle.impl.ArtifactTypeImpl
;
import
org.activiti.cycle.impl.ContentRepresentationImpl
;
import
org.activiti.cycle.impl.conf.RepositoryConnectorConfiguration
;
import
org.activiti.cycle.impl.connector.signavio.action.CopySignavioModelAction
;
import
org.activiti.cycle.impl.connector.signavio.action.CreateTechnicalBpmnXmlAction
;
import
org.activiti.cycle.impl.connector.signavio.action.OpenModelerAction
;
import
org.activiti.cycle.impl.connector.signavio.action.ValidateActivitiDeployment
;
...
...
@@ -15,8 +16,8 @@ import org.activiti.cycle.impl.connector.signavio.provider.ActivitiCompliantBpmn
import
org.activiti.cycle.impl.connector.signavio.provider.Bpmn20Provider
;
import
org.activiti.cycle.impl.connector.signavio.provider.Jpdl4Provider
;
import
org.activiti.cycle.impl.connector.signavio.provider.JsonProvider
;
import
org.activiti.cycle.impl.connector.signavio.provider.SvgApiProvider
;
import
org.activiti.cycle.impl.connector.signavio.provider.PngProvider
;
import
org.activiti.cycle.impl.connector.signavio.provider.SvgApiProvider
;
import
org.activiti.cycle.impl.plugin.ActivitiCyclePlugin
;
import
org.activiti.cycle.impl.plugin.ActivitiCyclePluginDefinition
;
...
...
@@ -72,6 +73,7 @@ public class SignavioPluginDefinition implements ActivitiCyclePluginDefinition {
artifactType1
.
addParameterizedAction
(
new
CreateTechnicalBpmnXmlAction
());
artifactType1
.
addParameterizedAction
(
new
ValidateActivitiDeployment
());
artifactType1
.
addParameterizedAction
(
new
CopySignavioModelAction
());
artifactType1
.
addOpenUrlAction
(
new
OpenModelerAction
());
artifactType1
.
addDownloadContentAction
(
CONTENT_REPRESENTATION_ID_BPMN_20_DEVELOPER
);
artifactType1
.
addDownloadContentAction
(
CONTENT_REPRESENTATION_ID_BPMN_20_RAW
);
...
...
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/action/AbstractCopyBaseAction.java
0 → 100644
浏览文件 @
ac537d52
package
org.activiti.cycle.impl.connector.signavio.action
;
import
java.util.Map
;
import
org.activiti.cycle.Content
;
import
org.activiti.cycle.RepositoryArtifact
;
import
org.activiti.cycle.RepositoryConnector
;
import
org.activiti.cycle.impl.ParameterizedHtmlFormTemplateAction
;
/**
* This action copies any artifact to another location. Extend it to specify the
* used content representation id
*
* TODO: Move to a folder for generic base classes
*
* @author bernd.ruecker@camunda.com
*/
public
abstract
class
AbstractCopyBaseAction
extends
ParameterizedHtmlFormTemplateAction
{
private
static
final
long
serialVersionUID
=
1L
;
public
static
final
String
PARAM_TARGET_FOLDER
=
"targetFolderId"
;
public
static
final
String
PARAM_TARGET_CONNECTOR
=
"targetConnectorId"
;
public
static
final
String
PARAM_TARGET_NAME
=
"targetName"
;
public
static
final
String
PARAM_COMMENT
=
"comment"
;
public
AbstractCopyBaseAction
(
String
actionId
)
{
super
(
actionId
);
}
public
void
execute
(
RepositoryConnector
connector
,
RepositoryArtifact
artifact
,
Map
<
String
,
Object
>
parameters
)
throws
Exception
{
String
targetFolderId
=
(
String
)
getParameter
(
parameters
,
PARAM_TARGET_FOLDER
,
true
,
null
,
String
.
class
);
String
targetName
=
(
String
)
getParameter
(
parameters
,
PARAM_TARGET_NAME
,
false
,
artifact
.
getMetadata
().
getName
(),
String
.
class
);
String
comment
=
(
String
)
getParameter
(
parameters
,
PARAM_COMMENT
,
false
,
null
,
String
.
class
);
RepositoryConnector
targetConnector
=
(
RepositoryConnector
)
getParameter
(
parameters
,
PARAM_TARGET_CONNECTOR
,
true
,
null
,
RepositoryConnector
.
class
);
String
contentAsString
=
connector
.
getContent
(
artifact
.
getNodeId
(),
getContentRepresentationIdToUse
()).
asString
();
Content
content
=
new
Content
();
content
.
setValue
(
contentAsString
);
targetConnector
.
createArtifact
(
targetFolderId
,
targetName
,
artifact
.
getArtifactType
().
getId
(),
content
);
// TODO: Think about that more, does it make sense like this?
targetConnector
.
commitPendingChanges
(
comment
);
}
public
abstract
String
getContentRepresentationIdToUse
();
@Override
public
String
getFormResourceName
()
{
return
getDefaultFormName
();
}
}
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/action/CopySignavioModelAction.java
0 → 100644
浏览文件 @
ac537d52
package
org.activiti.cycle.impl.connector.signavio.action
;
import
org.activiti.cycle.impl.connector.signavio.SignavioPluginDefinition
;
/**
* This action copies a Signavio model to another repository (ideally another
* Signavio).
*
* @author bernd.ruecker@camunda.com
*/
public
class
CopySignavioModelAction
extends
AbstractCopyBaseAction
{
private
static
final
long
serialVersionUID
=
1L
;
public
CopySignavioModelAction
()
{
// TODO: remove when real labels are introduced in the GUI
super
(
"Copy model"
);
}
public
String
getContentRepresentationIdToUse
()
{
return
SignavioPluginDefinition
.
CONTENT_REPRESENTATION_ID_JSON
;
}
}
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/signavio/action/CreateTechnicalBpmnXmlAction.java
浏览文件 @
ac537d52
...
...
@@ -33,8 +33,8 @@ public class CreateTechnicalBpmnXmlAction extends ParameterizedHtmlFormTemplateA
private
static
final
long
serialVersionUID
=
1L
;
public
static
final
String
PARAM_TARGET_FOLDER
=
"targetFolder"
;
public
static
final
String
PARAM_TARGET_CONNECTOR
=
"target
FolderConnector
"
;
public
static
final
String
PARAM_TARGET_FOLDER
=
"targetFolder
Id
"
;
public
static
final
String
PARAM_TARGET_CONNECTOR
=
"target
ConnectorId
"
;
public
static
final
String
PARAM_TARGET_NAME
=
"targetName"
;
public
static
final
String
PARAM_COMMENT
=
"comment"
;
...
...
modules/activiti-cycle/src/main/resources/org/activiti/cycle/impl/connector/signavio/action/CopySignavioModelAction.html
0 → 100644
浏览文件 @
ac537d52
<h1>
Copy artifact
</h1>
<table>
<tr>
<td>
<label>
Target folder:
<br/>
<input
type=
"text"
name=
"targetFolderId"
value=
""
/>
<input
type=
"hidden"
name=
"targetFolderId_required"
value=
"true"
/>
<input
type=
"hidden"
name=
"targetFolderId_type"
value=
"Event"
/>
<input
type=
"hidden"
name=
"targetConnectorId"
value=
""
/>
</label><br/>
</td>
</tr>
<tr>
<td>
<label>
Name of process file (same as model if skipped):
<br/>
<input
type=
"text"
name=
"targetName"
value=
""
/>
<input
type=
"hidden"
name=
"targetName_required"
value=
"false"
/>
<input
type=
"hidden"
name=
"targetName_type"
value=
"String"
/>
</label>
</td>
</tr>
<tr>
<td>
<label>
Comment:
<br/>
<textarea
name=
"comment"
value=
""
></textarea>
</label>
</td>
</tr>
</table>
modules/activiti-cycle/src/main/resources/org/activiti/cycle/impl/connector/signavio/action/CreateTechnicalBpmnXmlAction.html
浏览文件 @
ac537d52
...
...
@@ -5,9 +5,10 @@
<td>
<label>
Target folder:
<br/>
<input
type=
"text"
name=
"targetFolder"
value=
""
/>
<input
type=
"hidden"
name=
"targetFolder_required"
value=
"true"
/>
<input
type=
"hidden"
name=
"targetFolder_type"
value=
"RepositoryFolder"
/>
<input
type=
"text"
name=
"targetFolderId"
value=
""
/>
<input
type=
"hidden"
name=
"targetFolderId_required"
value=
"true"
/>
<input
type=
"hidden"
name=
"targetFolderId_type"
value=
"Event"
/>
<input
type=
"hidden"
name=
"targetConnectorId"
value=
""
/>
</label><br/>
</td>
</tr>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录