提交 bf4df184 编写于 作者: M meyerd

Activiti Cycle: Added service methods for accessing global cycle configuration entries

上级 861754f8
......@@ -22,9 +22,9 @@ public class RuntimeConnectorList implements Serializable {
// TODO: needs testing: When do servlet containers serialize/deserialize?
// Tomcat seems to do it between shutdowns / startups. At the moment I would
// qualify this as a 'hack' - Daniel Meyer
private transient Map<String, RepositoryConnector> connectors;
protected transient Map<String, RepositoryConnector> connectors;
private transient List<RepositoryConnector> connectorList;
protected transient List<RepositoryConnector> connectorList;
public RuntimeConnectorList() {
init();
......@@ -40,7 +40,7 @@ public class RuntimeConnectorList implements Serializable {
return connectorList;
}
private synchronized void init() {
protected synchronized void init() {
if (connectors != null && connectorList != null) {
return;
}
......
......@@ -27,6 +27,7 @@ public class ConnectorLoginInterceptor implements Interceptor {
ignoredMethods.add("startConfiguration");
ignoredMethods.add("configurationFinished");
ignoredMethods.add("addConfiguration");
ignoredMethods.add("addConfigurationEntry");
ignoredMethods.add("getUsername");
ignoredMethods.add("getPassword");
ignoredMethods.add("login");
......
......@@ -18,5 +18,7 @@ public interface CycleConfigurationDao {
public List<CycleConfigEntity> selectCycleConfigByGroup(String group);
public List<CycleConfigEntity> selectCycleConfigById(String id);
public List<String> selectCycleConfigurationGroups();
}
......@@ -36,10 +36,11 @@ public class CycleConfigEntity implements Serializable, PersistentObject {
}
public String getId() {
return null;
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGroupName() {
......
......@@ -3,6 +3,7 @@ package org.activiti.cycle.impl.db.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.UUID;
import java.util.logging.Level;
......@@ -346,7 +347,6 @@ public class CycleDaoMyBatisImpl extends AbstractCycleDaoMyBatisImpl implements
}
}
@SuppressWarnings("unchecked")
public CycleConfigEntity selectCycleConfigByGroupAndKey(String group, String key) {
SqlSession session = openSession();
try {
......@@ -359,6 +359,16 @@ public class CycleDaoMyBatisImpl extends AbstractCycleDaoMyBatisImpl implements
}
}
@SuppressWarnings("unchecked")
public List<String> selectCycleConfigurationGroups() {
SqlSession session = openSession();
try {
return (List<String>) session.selectList("selectCycleConfigGroups");
} finally {
session.close();
}
}
public void saveCycleConfig(CycleConfigEntity entity) {
SqlSession session = openSession();
try {
......
......@@ -217,4 +217,17 @@ public class CycleConfigurationServiceImpl implements CycleConfigurationService
return value;
}
public String[] getConfigurationGroups() {
return cycleConfigurationDao.selectCycleConfigurationGroups().toArray(new String[0]);
}
public Map<String, String> getConfigurationValuesForGroup(String groupId) {
Map<String, String> resultMap = new HashMap<String, String>();
List<CycleConfigEntity> result = cycleConfigurationDao.selectCycleConfigByGroup(groupId);
for (CycleConfigEntity cycleConfigEntity : result) {
resultMap.put(cycleConfigEntity.getKey(), cycleConfigEntity.getValue());
}
return resultMap;
}
}
......@@ -129,4 +129,16 @@ public interface CycleConfigurationService {
*/
public String getConfigurationValue(String groupId, String key, String defaultValue);
/**
* @return an array of configuration groups.
*/
public String[] getConfigurationGroups();
/**
* @param groupId
* the groupId to retreive the configuration values for.
* @return an map of configuration Key/Value pairs for the provided groupid
*/
public Map<String, String> getConfigurationValuesForGroup(String groupId);
}
......@@ -12,11 +12,15 @@
<result property="key" column="KEY_" jdbcType="VARCHAR" />
<result property="value" column="VALUE_" jdbcType="VARCHAR" />
</resultMap>
<select id="selectCycleConfigGroups" resultType="java.util.List">
select distinct GROUP_ from ACT_CY_CONFIG
</select>
<select id="selectCycleConfigById" parameterType="string" resultMap="resultMapCycleConfig">
select * from ACT_CY_CONFIG where ID_ = #{id}
</select>
</select>
<select id="selectCycleConfigByGroup" parameterType="string" resultMap="resultMapCycleConfig">
select * from ACT_CY_CONFIG where GROUP_ = #{groupName}
......
......@@ -6,6 +6,7 @@ import java.util.UUID;
import org.activiti.cycle.impl.ActivitiCycleDbAwareTest;
import org.activiti.cycle.impl.CycleTagContentImpl;
import org.activiti.cycle.impl.db.entity.CycleConfigEntity;
import org.activiti.cycle.impl.db.entity.RepositoryArtifactLinkEntity;
import org.activiti.cycle.impl.db.entity.RepositoryNodeCommentEntity;
import org.activiti.cycle.impl.db.entity.RepositoryNodePeopleLinkEntity;
......@@ -173,5 +174,31 @@ public class CycleDaoMyBatisImplTest extends ActivitiCycleDbAwareTest {
dao.deleteComment(id);
assertEquals(0, dao.getCommentsForNode("testConnectorId", "testNodeId").size());
}
public void testSelectCycleConfigGroups() {
CycleConfigEntity ce1 = new CycleConfigEntity();
ce1.setGroupName("g1");
ce1.setKey("key1");
ce1.setValue("value1");
CycleConfigEntity ce2 = new CycleConfigEntity();
ce2.setGroupName("g2");
ce2.setKey("key2");
ce2.setValue("value2");
CycleConfigEntity ce3 = new CycleConfigEntity();
ce3.setGroupName("g1"); // g1
ce3.setKey("key3");
ce3.setValue("value3");
dao.saveCycleConfig(ce1);
dao.saveCycleConfig(ce2);
dao.saveCycleConfig(ce3);
List<String> groups = dao.selectCycleConfigurationGroups();
assertEquals(2, groups.size());
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册