提交 04566e36 编写于 作者: B bernd.ruecker

removed DTO for RepositoryArtifactLink (can use Entity directly), fixed...

removed DTO for RepositoryArtifactLink (can use Entity directly), fixed queries to use connectorId as well, renamed "DESCRIPTION_" to "COMMENT_" in Link and added it to REST-API
上级 5b23168b
......@@ -18,7 +18,8 @@ public interface RepositoryArtifactLink {
public RepositoryArtifact getTargetArtifact();
public String getTargetElementId();
public String getTargetElementName();
public String getComment();
public String getLinkType();
public void setId(String id);
public void setSourceArtifact(RepositoryArtifact sourceArtifact);
......@@ -27,5 +28,7 @@ public interface RepositoryArtifactLink {
public void setTargetArtifact(RepositoryArtifact targetArtifact);
public void setTargetElementId(String targetElementId);
public void setTargetElementName(String targetElementName);
public void setComment(String comment);
public void setLinkType(String linkType);
}
......@@ -315,7 +315,8 @@ public class ArtifactTypeImpl implements ArtifactType {
public List<RepositoryArtifactOpenLinkAction> createOpenLinkActions(RepositoryConnector connector, RepositoryArtifact artifact) {
ArrayList<RepositoryArtifactOpenLinkAction> list = new ArrayList<RepositoryArtifactOpenLinkAction>();
for (CreateUrlAction action : getCreateUrlActions()) {
RepositoryArtifactOpenLinkAction link = new RepositoryArtifactOpenLinkAction(action.getId(), action.getUrl(connector, artifact));
// TODO: Think about id
RepositoryArtifactOpenLinkAction link = new RepositoryArtifactOpenLinkAction("Open " + action.getId(), action.getUrl(connector, artifact));
list.add(link);
}
return list;
......
......@@ -9,11 +9,11 @@ import javax.servlet.http.HttpSession;
import org.activiti.cycle.ArtifactType;
import org.activiti.cycle.Content;
import org.activiti.cycle.RepositoryArtifactTag;
import org.activiti.cycle.CycleService;
import org.activiti.cycle.CycleTagContent;
import org.activiti.cycle.RepositoryArtifact;
import org.activiti.cycle.RepositoryArtifactLink;
import org.activiti.cycle.RepositoryArtifactTag;
import org.activiti.cycle.RepositoryConnector;
import org.activiti.cycle.RepositoryException;
import org.activiti.cycle.RepositoryFolder;
......@@ -250,31 +250,33 @@ public class CycleServiceImpl implements CycleService {
// RepositoryArtifactLink specific methods
public void addArtifactLink(RepositoryArtifactLink repositoryArtifactLink) {
CycleLink cycleLink = new CycleLink();
cycleLink.setId(repositoryArtifactLink.getId());
// set source artifact attributes
cycleLink.setSourceConnectorId(repositoryArtifactLink.getSourceArtifact().getConnectorId());
cycleLink.setSourceArtifactId(repositoryArtifactLink.getSourceArtifact().getNodeId());
cycleLink.setSourceElementId(repositoryArtifactLink.getSourceElementId());
cycleLink.setSourceElementName(repositoryArtifactLink.getSourceElementName());
cycleLink.setSourceRevision(repositoryArtifactLink.getSourceArtifact().getArtifactType().getRevision());
// set target artifact attributes
cycleLink.setTargetConnectorId(repositoryArtifactLink.getTargetArtifact().getConnectorId());
cycleLink.setTargetArtifactId(repositoryArtifactLink.getTargetArtifact().getNodeId());
cycleLink.setTargetElementId(repositoryArtifactLink.getTargetElementId());
cycleLink.setTargetElementName(repositoryArtifactLink.getTargetElementName());
cycleLink.setTargetRevision(repositoryArtifactLink.getTargetArtifact().getArtifactType().getRevision());
// TODO: decide whether we will use these attributes or get rid of them.
// Just setting defaults to prevent null values for now.
cycleLink.setDescription("");
cycleLink.setLinkedBothWays(false);
cycleLink.setLinkType("");
cycleDAO.insertCycleLink(cycleLink);
if (repositoryArtifactLink instanceof CycleLink) {
cycleDAO.insertCycleLink((CycleLink) repositoryArtifactLink);
} else {
CycleLink cycleLink = new CycleLink();
cycleLink.setId(repositoryArtifactLink.getId());
// set source artifact attributes
cycleLink.setSourceConnectorId(repositoryArtifactLink.getSourceArtifact().getConnectorId());
cycleLink.setSourceArtifactId(repositoryArtifactLink.getSourceArtifact().getNodeId());
cycleLink.setSourceElementId(repositoryArtifactLink.getSourceElementId());
cycleLink.setSourceElementName(repositoryArtifactLink.getSourceElementName());
cycleLink.setSourceRevision(repositoryArtifactLink.getSourceArtifact().getArtifactType().getRevision());
// set target artifact attributes
cycleLink.setTargetConnectorId(repositoryArtifactLink.getTargetArtifact().getConnectorId());
cycleLink.setTargetArtifactId(repositoryArtifactLink.getTargetArtifact().getNodeId());
cycleLink.setTargetElementId(repositoryArtifactLink.getTargetElementId());
cycleLink.setTargetElementName(repositoryArtifactLink.getTargetElementName());
cycleLink.setTargetRevision(repositoryArtifactLink.getTargetArtifact().getArtifactType().getRevision());
cycleLink.setLinkType(repositoryArtifactLink.getLinkType());
cycleLink.setComment(repositoryArtifactLink.getComment());
cycleLink.setLinkedBothWays(false);
cycleDAO.insertCycleLink(cycleLink);
}
}
public List<RepositoryArtifactLink> getArtifactLinks(String sourceConnectorId, String sourceArtifactId) {
......@@ -282,7 +284,8 @@ public class CycleServiceImpl implements CycleService {
List<CycleLink> linkResultList = cycleDAO.getOutgoingCycleLinks(sourceConnectorId, sourceArtifactId);
for (CycleLink entity : linkResultList) {
artifactLinks.add(createLinkDtoFromLinkEntity(entity));
entity.resolveArtifacts(this);
artifactLinks.add(entity);
}
return artifactLinks;
......@@ -320,42 +323,6 @@ public class CycleServiceImpl implements CycleService {
return list;
}
// Private convenience methods
private RepositoryArtifactLink createLinkDtoFromLinkEntity(CycleLink entity) {
RepositoryArtifactLink repositoryArtifactLink = new RepositoryArtifactLinkImpl();
repositoryArtifactLink.setId(entity.getId());
repositoryArtifactLink.setSourceElementId(entity.getSourceElementId());
repositoryArtifactLink.setSourceElementName(entity.getSourceElementName());
repositoryArtifactLink.setTargetElementId(entity.getTargetElementId());
repositoryArtifactLink.setTargetElementName(entity.getTargetElementName());
RepositoryArtifact sourceArtifact = null;
RepositoryArtifact targetArtifact = null;
for (RepositoryConnector conn : this.repositoryConnectors) {
if (conn.getConfiguration().getId().equals(entity.getSourceConnectorId())) {
sourceArtifact = conn.getRepositoryArtifact(entity.getSourceArtifactId());
}
if (conn.getConfiguration().getId().equals(entity.getTargetConnectorId())) {
targetArtifact = conn.getRepositoryArtifact(entity.getTargetArtifactId());
}
}
// TODO: think about exception handling :)
if (sourceArtifact == null) {
throw new RuntimeException("Source-artifact with id '" + entity.getSourceArtifactId() + "' not found for artifact-link with id '" + entity.getId() + "'");
}
if (targetArtifact == null) {
throw new RuntimeException("Target-artifact with id '" + entity.getSourceArtifactId() + "' not found for artifact-link with id '" + entity.getId() + "'");
}
repositoryArtifactLink.setSourceArtifact(sourceArtifact);
repositoryArtifactLink.setTargetArtifact(targetArtifact);
return repositoryArtifactLink;
}
private RepositoryConnector getRepositoryConnector(String connectorId) {
for (RepositoryConnector connector : this.repositoryConnectors) {
if (connector.getConfiguration().getId().equals(connectorId)) {
......
package org.activiti.cycle.impl;
import org.activiti.cycle.RepositoryArtifact;
import org.activiti.cycle.RepositoryArtifactLink;
import org.activiti.cycle.impl.db.entity.CycleLink;
/**
* TODO: THink about merging it with {@link CycleLink} entity!
*
* @author polenz
*/
public class RepositoryArtifactLinkImpl implements RepositoryArtifactLink {
private String id;
private RepositoryArtifact sourceArtifact;
private String sourceElementId;
private String sourceElementName;
private RepositoryArtifact targetArtifact;
private String targetElementId;
private String targetElementName;
public RepositoryArtifactLinkImpl() {
}
public RepositoryArtifactLinkImpl(String id, RepositoryArtifact sourceArtifact, String sourceElementId, String sourceElementName,
RepositoryArtifact targetArtifact, String targetElementId, String targetElementName) {
super();
this.id = id;
this.sourceArtifact = sourceArtifact;
this.sourceElementId = sourceElementId;
this.sourceElementName = sourceElementName;
this.targetArtifact = targetArtifact;
this.targetElementId = targetElementId;
this.targetElementName = targetElementName;
}
public String getId() {
return id;
}
public RepositoryArtifact getSourceArtifact() {
return sourceArtifact;
}
public String getSourceElementId() {
return sourceElementId;
}
public String getSourceElementName() {
return sourceElementName;
}
public RepositoryArtifact getTargetArtifact() {
return targetArtifact;
}
public String getTargetElementId() {
return targetElementId;
}
public String getTargetElementName() {
return targetElementName;
}
public void setId(String id) {
this.id = id;
}
public void setSourceArtifact(RepositoryArtifact sourceArtifact) {
this.sourceArtifact = sourceArtifact;
}
public void setSourceElementId(String sourceElementId) {
this.sourceElementId = sourceElementId;
}
public void setSourceElementName(String sourceElementName) {
this.sourceElementName = sourceElementName;
}
public void setTargetArtifact(RepositoryArtifact targetArtifact) {
this.targetArtifact = targetArtifact;
}
public void setTargetElementId(String targetElementId) {
this.targetElementId = targetElementId;
}
public void setTargetElementName(String targetElementName) {
this.targetElementName = targetElementName;
}
}
......@@ -32,7 +32,7 @@ public class OpenModelerAction extends CreateUrlActionImpl {
public OpenModelerAction() {
// TODO: remove when real labels are introduced in the GUI
super("Open modeler action");
super("modeler");
}
public URL getUrl(RepositoryConnector connector, RepositoryArtifact artifact) {
......
package org.activiti.cycle.impl.db.entity;
import org.activiti.cycle.CycleService;
import org.activiti.cycle.RepositoryArtifact;
import org.activiti.cycle.RepositoryArtifactLink;
import org.activiti.cycle.RepositoryNode;
import org.activiti.engine.impl.db.PersistentObject;
......@@ -12,7 +14,7 @@ import org.activiti.engine.impl.db.PersistentObject;
*
* @author ruecker, polenz
*/
public class CycleLink implements PersistentObject {
public class CycleLink implements PersistentObject, RepositoryArtifactLink {
/**
* TODO: Add own mini repository for types incling names for forward and
......@@ -30,6 +32,9 @@ public class CycleLink implements PersistentObject {
private String sourceConnectorId;
private String sourceArtifactId;
private transient RepositoryArtifact sourceRepositoryArtifact;
/**
* machine readable id of element (what that exactly is depends on the
* connector, could be the Signavio UUID for example)
......@@ -44,6 +49,9 @@ public class CycleLink implements PersistentObject {
private String targetConnectorId;
private String targetArtifactId;
private transient RepositoryArtifact targetRepositoryArtifact;
private String targetElementId;
private String targetElementName;
private Long targetRevision;
......@@ -57,13 +65,18 @@ public class CycleLink implements PersistentObject {
/**
* additional description maybe supplied by the user for this link
*/
private String description;
private String comment;
/**
* indicate if the link is found in both directions, default is true. If false
* the link is only found when searching links for artifactId1
*/
private boolean linkedBothWays = true;
private boolean linkedBothWays = true;
public void resolveArtifacts(CycleService service) {
this.sourceRepositoryArtifact = service.getRepositoryArtifact(sourceConnectorId, sourceArtifactId);
this.targetRepositoryArtifact = service.getRepositoryArtifact(targetConnectorId, targetArtifactId);
}
public String getSourceArtifactId() {
return sourceArtifactId;
......@@ -125,12 +138,12 @@ public class CycleLink implements PersistentObject {
/**
* gets additional description maybe supplied by the user for this link
*/
public String getDescription() {
return description;
public String getComment() {
return comment;
}
public void setDescription(String description) {
this.description = description;
public void setComment(String comment) {
this.comment = comment;
}
......@@ -187,4 +200,25 @@ public class CycleLink implements PersistentObject {
public Object getPersistentState() {
return null;
}
public RepositoryArtifact getSourceArtifact() {
return sourceRepositoryArtifact;
}
public RepositoryArtifact getTargetArtifact() {
return targetRepositoryArtifact;
}
public void setSourceArtifact(RepositoryArtifact sourceArtifact) {
sourceRepositoryArtifact = sourceArtifact;
sourceConnectorId = sourceArtifact.getConnectorId();
sourceArtifactId = sourceArtifact.getNodeId();
}
public void setTargetArtifact(RepositoryArtifact targetArtifact) {
targetRepositoryArtifact = targetArtifact;
targetConnectorId = targetArtifact.getConnectorId();
targetArtifactId = targetArtifact.getNodeId();
}
}
package org.activiti.cycle.impl.db.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.activiti.cycle.impl.CycleTagContentImpl;
......@@ -15,8 +16,10 @@ public class CycleDaoMyBatisImpl extends AbstractCycleDaoMyBatisImpl implements
public List<CycleLink> getOutgoingCycleLinks(String sourceConnectorId, String sourceArtifactId) {
SqlSession session = openSession();
try {
// TODO: Ad connectorID to query parameter
List<CycleLink> linkResultList = session.selectList("org.activiti.cycle.impl.db.entity.CycleLink.selectArtifactLinkForSourceArtifact", sourceArtifactId);
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("connectorId", sourceConnectorId);
parameters.put("artifactId", sourceArtifactId);
List<CycleLink> linkResultList = session.selectList("org.activiti.cycle.impl.db.entity.CycleLink.selectArtifactLinkForSourceArtifact", parameters);
if (linkResultList != null) {
return linkResultList;
}
......@@ -30,8 +33,10 @@ public class CycleDaoMyBatisImpl extends AbstractCycleDaoMyBatisImpl implements
public List<CycleLink> getIncomingCycleLinks(String targetConnectorId, String targetArtifactId) {
SqlSession session = openSession();
try {
// TODO: Ad connectorID to query parameter
List<CycleLink> linkResultList = session.selectList("org.activiti.cycle.impl.db.entity.CycleLink.selectArtifactLinkForTargetArtifact", targetArtifactId);
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("connectorId", targetConnectorId);
parameters.put("artifactId", targetArtifactId);
List<CycleLink> linkResultList = session.selectList("org.activiti.cycle.impl.db.entity.CycleLink.selectArtifactLinkForTargetArtifact", parameters);
if (linkResultList != null) {
return linkResultList;
}
......
......@@ -8,17 +8,17 @@ create table ACT_CY_CONFIG (
create table ACT_CY_LINK (
ID_ varchar AUTO_INCREMENT,
SOURCE_CONNECTOR_ID_ varchar,
TARGET_CONNECTOR_ID_ varchar,
SOURCE_ARTIFACT_ID_ varchar,
TARGET_ARTIFACT_ID_ varchar,
SOURCE_ELEMENT_ID_ varchar DEFAULT NULL,
TARGET_ELEMENT_ID_ varchar DEFAULT NULL,
SOURCE_ELEMENT_NAME_ varchar DEFAULT NULL,
TARGET_ELEMENT_NAME_ varchar DEFAULT NULL,
SOURCE_REVISION_ bigint DEFAULT NULL,
TARGET_CONNECTOR_ID_ varchar,
TARGET_ARTIFACT_ID_ varchar,
TARGET_ELEMENT_ID_ varchar DEFAULT NULL,
TARGET_ELEMENT_NAME_ varchar DEFAULT NULL,
TARGET_REVISION_ bigint DEFAULT NULL,
LINK_TYPE_ varchar,
DESCRIPTION_ varchar,
COMMENT_ varchar,
LINKED_BOTH_WAYS_ boolean,
primary key(ID_)
);
......
......@@ -8,17 +8,17 @@ create table ACT_CY_CONFIG (
create table ACT_CY_LINK (
ID_ varchar(255) AUTO_INCREMENT,
SOURCE_CONNECTOR_ID_ varchar(255),
TARGET_CONNECTOR_ID_ varchar(255),
SOURCE_ARTIFACT_ID_ varchar(255),
TARGET_ARTIFACT_ID_ varchar(255),
SOURCE_ELEMENT_ID_ varchar(255) DEFAULT NULL,
TARGET_ELEMENT_ID_ varchar(255) DEFAULT NULL,
SOURCE_ELEMENT_NAME_ varchar(255) DEFAULT NULL,
TARGET_ELEMENT_NAME_ varchar(255) DEFAULT NULL,
SOURCE_REVISION_ bigint DEFAULT NULL,
TARGET_CONNECTOR_ID_ varchar(255),
TARGET_ARTIFACT_ID_ varchar(255),
TARGET_ELEMENT_ID_ varchar(255) DEFAULT NULL,
TARGET_ELEMENT_NAME_ varchar(255) DEFAULT NULL,
TARGET_REVISION_ bigint DEFAULT NULL,
LINK_TYPE_ varchar(255) ,
DESCRIPTION_ varchar(255),
COMMENT_ varchar(255),
LINKED_BOTH_WAYS_ boolean,
primary key(ID_)
)TYPE=InnoDB;
......
......@@ -8,17 +8,17 @@ create table ACT_CY_CONFIG (
create table ACT_CY_LINK (
ID_ NVARCHAR2(255) AUTO_INCREMENT,
SOURCE_CONNECTOR_ID_ NVARCHAR2(255),
TARGET_CONNECTOR_ID_ NVARCHAR2(255),
SOURCE_ARTIFACT_ID_ NVARCHAR2(255),
TARGET_ARTIFACT_ID_ NVARCHAR2(255),
SOURCE_ELEMENT_ID_ NVARCHAR2(255) DEFAULT NULL,
TARGET_ELEMENT_ID_ NVARCHAR2(255) DEFAULT NULL,
SOURCE_ELEMENT_NAME_ NVARCHAR2(255) DEFAULT NULL,
TARGET_ELEMENT_NAME_ NVARCHAR2(255) DEFAULT NULL,
SOURCE_REVISION_ INTEGER DEFAULT NULL,
TARGET_CONNECTOR_ID_ NVARCHAR2(255),
TARGET_ARTIFACT_ID_ NVARCHAR2(255),
TARGET_ELEMENT_ID_ NVARCHAR2(255) DEFAULT NULL,
TARGET_ELEMENT_NAME_ NVARCHAR2(255) DEFAULT NULL,
TARGET_REVISION_ INTEGER DEFAULT NULL,
LINK_TYPE_ NVARCHAR2(255),
DESCRIPTION_ NVARCHAR2(255),
COMMENT_ NVARCHAR2(255),
LINKED_BOTH_WAYS_ boolean,
primary key(ID_)
);
......
......@@ -8,17 +8,17 @@ create table ACT_CY_CONFIG (
create table ACT_CY_LINK (
ID_ varchar(255) AUTO_INCREMENT,
SOURCE_CONNECTOR_ID_ varchar(255),
TARGET_CONNECTOR_ID_ varchar(255),
SOURCE_ARTIFACT_ID_ varchar(255),
TARGET_ARTIFACT_ID_ varchar(255),
SOURCE_ELEMENT_ID_ varchar(255) DEFAULT NULL,
TARGET_ELEMENT_ID_ varchar(255) DEFAULT NULL,
SOURCE_ELEMENT_NAME_ varchar(255) DEFAULT NULL,
TARGET_ELEMENT_NAME_ varchar(255) DEFAULT NULL,
SOURCE_REVISION_ bigint DEFAULT NULL,
TARGET_CONNECTOR_ID_ varchar(255),
TARGET_ARTIFACT_ID_ varchar(255),
TARGET_ELEMENT_ID_ varchar(255) DEFAULT NULL,
TARGET_ELEMENT_NAME_ varchar(255) DEFAULT NULL,
TARGET_REVISION_ bigint DEFAULT NULL,
LINK_TYPE_ varchar(255),
DESCRIPTION_ varchar(255),
COMMENT_ varchar(255),
LINKED_BOTH_WAYS_ boolean,
primary key(ID_)
);
......
......@@ -17,24 +17,24 @@
<result property="sourceElementRevision" column="SOURCE_ELEMENT_REVISION_"/>
<result property="targetElementRevision" column="TARGET_ELEMENT_REVISION_"/>
<result property="linkType" column="LINK_TYPE_"/>
<result property="description" column="DESCRIPTION_"/>
<result property="comment" column="COMMENT_"/>
<result property="linkedBothWays" column="LINKED_BOTH_WAYS_"/>
</resultMap>
<!-- selectArtifactLink with PK (auto-generated key)-->
<select id="selectArtifactLink" parameterType="string" resultMap="resultMapCycleLink">
select * from ACT_CY_LINK where ID_ = #{id}
</select>
<!-- selectArtifactLink with sourceArtifactId -->
<select id="selectArtifactLinkForSourceArtifact" parameterType="string" resultType="list" resultMap="resultMapCycleLink">
select * from ACT_CY_LINK where SOURCE_ARTIFACT_ID_ = #{sourceArtifactId}
<select id="selectArtifactLinkForSourceArtifact" parameterType="map" resultType="list" resultMap="resultMapCycleLink">
select * from ACT_CY_LINK where SOURCE_CONNECTOR_ID_ = #{connectorId} and SOURCE_ARTIFACT_ID_ = #{artifactId}
</select>
<select id="selectArtifactLinkForTargetArtifact" parameterType="map" resultType="list" resultMap="resultMapCycleLink">
select * from ACT_CY_LINK where TARGET_CONNECTOR_ID_ = #{connectorId} and TARGET_ARTIFACT_ID_ = #{artifactId}
</select>
<!-- insertCycleLink -->
<insert id="insertCycleLink" parameterType="org.activiti.cycle.impl.db.entity.CycleLink">
insert into ACT_CY_LINK (ID_,SOURCE_CONNECTOR_ID_, TARGET_CONNECTOR_ID_, SOURCE_ARTIFACT_ID_,TARGET_ARTIFACT_ID_,SOURCE_ELEMENT_ID_,TARGET_ELEMENT_ID_,SOURCE_ELEMENT_NAME_,TARGET_ELEMENT_NAME_, SOURCE_REVISION_, TARGET_REVISION_ , LINK_TYPE_, DESCRIPTION_, LINKED_BOTH_WAYS_)
insert into ACT_CY_LINK (ID_,SOURCE_CONNECTOR_ID_, TARGET_CONNECTOR_ID_, SOURCE_ARTIFACT_ID_,TARGET_ARTIFACT_ID_,SOURCE_ELEMENT_ID_,TARGET_ELEMENT_ID_,SOURCE_ELEMENT_NAME_,TARGET_ELEMENT_NAME_, SOURCE_REVISION_, TARGET_REVISION_ , LINK_TYPE_, COMMENT_, LINKED_BOTH_WAYS_)
values (
#{id, jdbcType=VARCHAR},
#{sourceConnectorId, jdbcType=VARCHAR},
......@@ -48,146 +48,9 @@
#{sourceRevision, jdbcType=BIGINT},
#{targetRevision, jdbcType=BIGINT},
#{linkType, jdbcType=VARCHAR},
#{description, jdbcType=VARCHAR},
#{comment, jdbcType=VARCHAR},
#{linkedBothWays, jdbcType=BOOLEAN}
)
</insert>
<!-- @deprecated: not useful now: Artifact RESULT MAP
<resultMap id="resultMapArtifact" type="org.activiti.cycle.Artifact">
<id property="id" column="ID_"/>
<result property="elementId" column="ELEMENT_ID_"/>
<result property="elementName" column="ELEMENT_NAME_"/>
<collection property="artifactRevisionList" javaType="ArrayList" ofType="org.activiti.cycle.ArtifactRevision" column="ID_" select="selectArtifactRevisionForArtifact"/>
<collection property="artifactCycleList" javaType="ArrayList" ofType="org.activiti.cycle.impl.db.entity.CycleLink" column="ID_" select="selectCycleLinkForSourceArtifact"/>
</resultMap>
-->
<!-- @deprecated: not useful now: Artifact Revision RESULT MAP
<resultMap id="resultMapArtifactRevision" type="org.activiti.cycle.ArtifactRevision">
<id property="id" column="ID_"/>
<result property="artifactId" column="ARTIFACT_ID_"/>
<result property="revision" column="REVISION_"/>
</resultMap>
-->
<!-- @deprecated: not useful now: Cycle Link RESULT MAP
<resultMap id="resultMapCycleLink" type="org.activiti.cycle.impl.db.entity.CycleLink">
<id property="id" column="ID_"/>
<result property="targetArtifactId" column="TARGET_ARTIFACT_ID_"/>
<result property="targetElementId" column="TARGET_ELEMENT_ID_"/>
<result property="targetElementName" column="TARGET_ELEMENT_NAME_"/>
<result property="targetElementRevision" column="TARGET_ELEMENT_REVISION_"/>
<result property="sourceArtifactId" column="SOURCE_ARTIFACT_ID_"/>
<result property="description" column="DESCRIPTION_"/>
<result property="linkType" column="LINK_TYPE_"/>
<result property="linkedBothWays" column="LINKED_BOTH_WAYS_"/>
</resultMap>
-->
<!-- @deprecated: not useful now: selectArtifact
<select id="selectArtifact" parameterType="string" resultType="list" resultMap="resultMapArtifact">
select * from ACT_CY_ARTIFACT where ID_ = #{id}
</select>
-->
<!-- @deprecated: not useful now: selectArtifactRevisionForArtifact
<select id="selectArtifactRevisionForArtifact" parameterType="string" resultType="list" resultMap="resultMapArtifactRevision">
select * from ACT_CY_ARTIFACT_REVISION where ARTIFACT_ID_ = #{artifactId}
</select>
-->
<!-- @deprecated: not useful now: selectCycleLinkForSourceArtifact
<select id="selectCycleLinkForSourceArtifact" parameterType="string" resultType="list" resultMap="resultMapCycleLink">
select * from ACT_CY_LINK where SOURCE_ARTIFACT_ID_ = #{sourceArtifactId}
</select>
-->
<!-- @deprecated: not useful now: insertArtifact
<insert id="insertArtifact" parameterType="org.activiti.cycle.Artifact">
insert into ACT_CY_ARTIFACT (ID_, SOURCE_ELEMENT_ID_, SOURCE_ELEMENT_NAME_,)
values (
#{id, jdbcType=VARCHAR},
#{elementId, jdbcType=VARCHAR},
#{elementName, jdbcType=VARCHAR}
)
</insert>
-->
<!-- @deprecated: not useful now: insertArtifactRevision
<insert id="insertArtifactRevision" parameterType="org.activiti.cycle.ArtifactRevision">
insert into ACT_CY_ARTIFACT_REVISION (ID_, ARTIFACT_ID_, REVISION_,)
values (
#{id, jdbcType=VARCHAR},
#{artifactId, jdbcType=VARCHAR},
#{revision, jdbcType=BIGINT}
)
</insert>
-->
<!-- @deprecated: not useful now: insertCycleLink
<insert id="insertCycleLink" parameterType="org.activiti.cycle.impl.db.entity.CycleLink">
insert into ACT_CY_LINK (ID_, TARGET_ELEMENT_NAME, TARGET_ELEMENT_ID_, TARGET_ELEMENT_REVISION_ ,SOURCE_ARTIFACT_ID_)
values (
#{id, jdbcType=VARCHAR},
#{targetElementName, jdbcType=VARCHAR},
#{targetElementId, jdbcType=VARCHAR},
#{targetRevision, jdbcType=BIGINT},
#{sourceArtifactId, jdbcType=VARCHAR}
)
</insert>
-->
<!-- @deprecated: not useful now: updateArtifact
<update id="updateArtifact" parameterType="org.activiti.cycle.Artifact">
update ACT_CY_ARTIFACT set
ID_ = #{id},
ELEMENT_ID_ = #{elementId},
ELEMENT_NAME_ = #{elementName}
where ID_ = #{id}
</update>
-->
<!-- @deprecated: not useful now: updateArtifactRevision
<update id="updateArtifactRevision" parameterType="org.activiti.cycle.ArtifactRevision">
update ACT_CY_ARTIFACT_REVISION set
ID_ = #{id},
ARTIFACT_ID_ = #{artifactId},
REVISION_ = #{revision},
where ID_ = #{id}
</update>
-->
<!-- @deprecated: not useful now: updateCycleLink
<update id="updateCycleLink" parameterType="org.activiti.cycle.impl.db.entity.CycleLink">
update ACT_CY_LINK set
ID_ = #{id},
TARGET_ELEMENT_NAME_ = #{targetElementName},
TARGET_ELEMENT_ID_ = #{targetElementId},
TARGET_REVISION_ = #{targetRevision},
SOURCE_ARTIFACT_ID_ = #{sourceArtifactId}
where ID_ = #{id}
</update>
-->
<!-- @deprecated: not useful now: deleteArtifact
<delete id="deleteArtifact" parameterType="string">
delete from ACT_CY_ARTIFACT where ID_ = #{id}
</delete>
-->
<!-- @deprecated: not useful now: deleteArtifactRevision
<delete id="deleteArtifactRevision" parameterType="string">
delete from ACT_CY_ARTIFACT_REVISION where ID_ = #{id}
</delete>
-->
<!-- @deprecated: not useful now: deleteCycleLink
<delete id="deleteCycleLink" parameterType="string">
delete ACT_CY_LINK where ID_ = #{id}
</delete>
-->
</mapper>
......@@ -17,10 +17,8 @@ import java.util.Map;
import javax.servlet.http.HttpSession;
import org.activiti.cycle.CycleService;
import org.activiti.cycle.RepositoryArtifact;
import org.activiti.cycle.RepositoryArtifactLink;
import org.activiti.cycle.impl.CycleServiceImpl;
import org.activiti.cycle.impl.RepositoryArtifactLinkImpl;
import org.activiti.cycle.impl.db.entity.CycleLink;
import org.activiti.rest.util.ActivitiRequest;
import org.activiti.rest.util.ActivitiRequestObject;
import org.activiti.rest.util.ActivitiWebScript;
......@@ -48,8 +46,8 @@ public class ArtifactLinkPost extends ActivitiWebScript {
ActivitiRequestObject obj = req.getBody();
String srcConnectorId = req.getMandatoryString(obj, "connectorId");
String srcArtifactId = req.getMandatoryString(obj, "artifactId");
String sourceConnectorId = req.getMandatoryString(obj, "connectorId");
String sourceArtifactId = req.getMandatoryString(obj, "artifactId");
// String srcElementName = req.getMandatoryString("sourceElementName");
// String srcElementId = req.getMandatoryString("sourceElementId");
......@@ -57,16 +55,17 @@ public class ArtifactLinkPost extends ActivitiWebScript {
// String tgtElementName = req.getMandatoryString("targetElementName");
// String tgtElementId = req.getMandatoryString("targetElementId");
String tgtConnectorId = req.getMandatoryString(obj, "targetConnectorId");
String tgtArtifactId = req.getMandatoryString(obj, "targetArtifactId");
String targetConnectorId = req.getMandatoryString(obj, "targetConnectorId");
String targetArtifactId = req.getMandatoryString(obj, "targetArtifactId");
RepositoryArtifact srcArtifact = cycleService.getRepositoryArtifact(srcConnectorId, srcArtifactId);
RepositoryArtifact tgtArtifact = cycleService.getRepositoryArtifact(tgtConnectorId, tgtArtifactId);
RepositoryArtifactLink link = new RepositoryArtifactLinkImpl(null, srcArtifact, "", "", tgtArtifact, "", "");
CycleLink link = new CycleLink();
link.setSourceConnectorId(sourceConnectorId);
link.setSourceArtifactId(sourceArtifactId);
link.setTargetConnectorId(targetConnectorId);
link.setTargetArtifactId(targetArtifactId);
try {
this.cycleService.addArtifactLink(link);
cycleService.addArtifactLink(link);
model.put("result", true);
} catch (Exception e) {
// TODO: see whether this makes sense, probably either exception or
......
......@@ -48,6 +48,26 @@ public class ArtifactLinksGet extends ActivitiWebScript {
String artifactId = req.getString("artifactId");
List<RepositoryArtifactLink> links = this.cycleService.getArtifactLinks(connectorId, artifactId);
for (RepositoryArtifactLink link : links) {
if (link.getSourceElementId()==null) {
link.setSourceElementId("");
}
if (link.getSourceElementName()==null) {
link.setSourceElementName("");
}
if (link.getTargetElementId()==null) {
link.setTargetElementId("");
}
if (link.getTargetElementName()==null) {
link.setTargetElementName("");
}
if (link.getLinkType()==null) {
link.setLinkType("");
}
if (link.getComment()==null) {
link.setComment("");
}
}
model.put("links", links);
}
......
......@@ -7,7 +7,9 @@
"artifact": {
<@printArtifact link.targetArtifact/>,
"targetElementId": "${link.targetElementId}",
"targetElementName": "${link.targetElementName}"
"targetElementName": "${link.targetElementName}",
"linkType": "${link.linkType}",
"comment": "${link.comment}"
}
}
</#macro>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册