aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/music/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/music/main')
-rw-r--r--src/main/java/org/onap/music/main/MusicCore.java105
-rwxr-xr-xsrc/main/java/org/onap/music/main/MusicUtil.java256
-rw-r--r--src/main/java/org/onap/music/main/PropertiesLoader.java94
3 files changed, 273 insertions, 182 deletions
diff --git a/src/main/java/org/onap/music/main/MusicCore.java b/src/main/java/org/onap/music/main/MusicCore.java
index df718379..324f4681 100644
--- a/src/main/java/org/onap/music/main/MusicCore.java
+++ b/src/main/java/org/onap/music/main/MusicCore.java
@@ -24,7 +24,6 @@ package org.onap.music.main;
import java.util.List;
import java.util.Map;
-
import org.onap.music.datastore.Condition;
import org.onap.music.datastore.PreparedQueryObject;
import org.onap.music.eelf.logging.EELFLoggerDelegate;
@@ -32,105 +31,126 @@ import org.onap.music.exceptions.MusicLockingException;
import org.onap.music.exceptions.MusicQueryException;
import org.onap.music.exceptions.MusicServiceException;
import org.onap.music.lockingservice.cassandra.CassaLockStore;
+import org.onap.music.lockingservice.cassandra.LockType;
import org.onap.music.lockingservice.cassandra.MusicLockState;
import org.onap.music.service.MusicCoreService;
import org.onap.music.service.impl.MusicCassaCore;
-
import com.datastax.driver.core.ResultSet;
public class MusicCore {
private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicCore.class);
- private static boolean unitTestRun=true;
-
+ private static boolean unitTestRun = true;
+
private static MusicCoreService musicCore = MusicUtil.getMusicCoreService();
public static CassaLockStore mLockHandle;
-
-
+
+
/**
* Acquire lock
+ *
* @param fullyQualifiedKey DO NOT RELY ON THIS KEY WORKING. INCLUDE THE KEY IN THE LOCKID.
* @param lockId - the full lock id (key + lockRef)
* @return
- * @throws MusicLockingException
+ * @throws MusicLockingException
* @throws MusicQueryException
* @throws MusicServiceException
*/
- public static ReturnType acquireLock(String fullyQualifiedKey, String lockId)
- throws MusicLockingException, MusicQueryException, MusicServiceException {
+ public static ReturnType acquireLock(String fullyQualifiedKey, String lockId)
+ throws MusicLockingException, MusicQueryException, MusicServiceException {
return musicCore.acquireLock(fullyQualifiedKey, lockId);
}
-
- public static ReturnType acquireLockWithLease(String key, String lockId, long leasePeriod)
- throws MusicLockingException, MusicQueryException, MusicServiceException {
+
+ public static ReturnType acquireLockWithLease(String key, String lockId, long leasePeriod)
+ throws MusicLockingException, MusicQueryException, MusicServiceException {
return musicCore.acquireLockWithLease(key, lockId, leasePeriod);
}
-
+
public static String createLockReference(String fullyQualifiedKey) throws MusicLockingException {
return musicCore.createLockReference(fullyQualifiedKey);
}
-
- public static ResultType createTable(String keyspace, String table, PreparedQueryObject tableQueryObject,
- String consistency) throws MusicServiceException {
+
+ public static String createLockReference(String fullyQualifiedKey, LockType locktype) throws MusicLockingException {
+ return musicCore.createLockReference(fullyQualifiedKey, locktype);
+ }
+
+ public static ResultType createTable(String keyspace, String table, PreparedQueryObject tableQueryObject,
+ String consistency) throws MusicServiceException {
return musicCore.createTable(keyspace, table, tableQueryObject, consistency);
}
-
+
public static ResultSet quorumGet(PreparedQueryObject query) {
- return musicCore.quorumGet(query);
+ return musicCore.quorumGet(query);
}
-
+
+ /**
+ * Gets the top of queue for fullyQualifiedKey
+ *
+ * @param fullyQualifiedKey
+ * @return
+ */
public static String whoseTurnIsIt(String fullyQualifiedKey) {
return musicCore.whoseTurnIsIt(fullyQualifiedKey);
}
-
+
+ /**
+ * Gets the current lockholder(s) for fullyQualifiedKey
+ *
+ * @param fullyQualifiedKey
+ * @return
+ */
+ public static List<String> getCurrentLockHolders(String fullyQualifiedKey) {
+ return musicCore.getCurrentLockHolders(fullyQualifiedKey);
+ }
+
public static void destroyLockRef(String lockId) throws MusicLockingException {
musicCore.destroyLockRef(lockId);
}
-
+
public static ReturnType eventualPut(PreparedQueryObject queryObject) {
return musicCore.eventualPut(queryObject);
}
-
- public static ReturnType eventualPut_nb(PreparedQueryObject queryObject,String keyspace,
- String tablename,String primaryKey) {
+
+ public static ReturnType eventualPut_nb(PreparedQueryObject queryObject, String keyspace, String tablename,
+ String primaryKey) {
return musicCore.eventualPut_nb(queryObject, keyspace, tablename, primaryKey);
}
-
+
public static ReturnType criticalPut(String keyspace, String table, String primaryKeyValue,
PreparedQueryObject queryObject, String lockReference, Condition conditionInfo) {
return musicCore.criticalPut(keyspace, table, primaryKeyValue, queryObject, lockReference, conditionInfo);
}
-
- public static ResultType nonKeyRelatedPut(PreparedQueryObject queryObject, String consistency)
- throws MusicServiceException {
+
+ public static ResultType nonKeyRelatedPut(PreparedQueryObject queryObject, String consistency)
+ throws MusicServiceException {
return musicCore.nonKeyRelatedPut(queryObject, consistency);
}
-
- public static ResultSet get(PreparedQueryObject queryObject) throws MusicServiceException{
+
+ public static ResultSet get(PreparedQueryObject queryObject) throws MusicServiceException {
return musicCore.get(queryObject);
}
-
+
public static ResultSet criticalGet(String keyspace, String table, String primaryKeyValue,
PreparedQueryObject queryObject, String lockReference) throws MusicServiceException {
- return musicCore.criticalGet(keyspace, table, primaryKeyValue, queryObject,lockReference);
+ return musicCore.criticalGet(keyspace, table, primaryKeyValue, queryObject, lockReference);
}
-
+
public static ReturnType atomicPut(String keyspaceName, String tableName, String primaryKey,
- PreparedQueryObject queryObject, Condition conditionInfo) throws MusicLockingException,
- MusicQueryException,MusicServiceException {
+ PreparedQueryObject queryObject, Condition conditionInfo)
+ throws MusicLockingException, MusicQueryException, MusicServiceException {
return musicCore.atomicPut(keyspaceName, tableName, primaryKey, queryObject, conditionInfo);
}
-
+
public static ResultSet atomicGet(String keyspaceName, String tableName, String primaryKey,
PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException, MusicQueryException {
return musicCore.atomicGet(keyspaceName, tableName, primaryKey, queryObject);
}
-
+
public static List<String> getLockQueue(String fullyQualifiedKey)
throws MusicServiceException, MusicQueryException, MusicLockingException {
return musicCore.getLockQueue(fullyQualifiedKey);
}
-
+
public static long getLockQueueSize(String fullyQualifiedKey)
throws MusicServiceException, MusicQueryException, MusicLockingException {
return musicCore.getLockQueueSize(fullyQualifiedKey);
@@ -139,12 +159,12 @@ public class MusicCore {
public static void deleteLock(String lockName) throws MusicLockingException {
musicCore.deleteLock(lockName);
}
-
- public static ReturnType atomicPutWithDeleteLock(String keyspaceName, String tableName,
- String primaryKey, PreparedQueryObject queryObject, Condition conditionInfo) throws MusicLockingException {
+
+ public static ReturnType atomicPutWithDeleteLock(String keyspaceName, String tableName, String primaryKey,
+ PreparedQueryObject queryObject, Condition conditionInfo) throws MusicLockingException {
return musicCore.atomicPutWithDeleteLock(keyspaceName, tableName, primaryKey, queryObject, conditionInfo);
}
-
+
public static ResultSet atomicGetWithDeleteLock(String keyspaceName, String tableName, String primaryKey,
PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException {
return musicCore.atomicGetWithDeleteLock(keyspaceName, tableName, primaryKey, queryObject);
@@ -157,6 +177,5 @@ public class MusicCore {
public static MusicLockState releaseLock(String lockId, boolean voluntaryRelease) throws MusicLockingException {
return musicCore.releaseLock(lockId, voluntaryRelease);
}
-
}
diff --git a/src/main/java/org/onap/music/main/MusicUtil.java b/src/main/java/org/onap/music/main/MusicUtil.java
index da5da239..2ad7117b 100755
--- a/src/main/java/org/onap/music/main/MusicUtil.java
+++ b/src/main/java/org/onap/music/main/MusicUtil.java
@@ -74,6 +74,7 @@ import com.sun.jersey.core.util.Base64;
public class MusicUtil {
private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicUtil.class);
+ // Consistancy Constants
public static final String ATOMIC = "atomic";
public static final String EVENTUAL = "eventual";
public static final String CRITICAL = "critical";
@@ -82,55 +83,54 @@ public class MusicUtil {
public static final String QUORUM = "quorum";
public static final String ONE = "one";
public static final String ATOMICDELETELOCK = "atomic_delete_lock";
- public static final String DEFAULTKEYSPACENAME = "TBD";
+
+ // Header Constants
private static final String XLATESTVERSION = "X-latestVersion";
private static final String XMINORVERSION = "X-minorVersion";
private static final String XPATCHVERSION = "X-patchVersion";
+ public static final String AUTHORIZATION = "Authorization";
+
+ // CQL Constants
public static final String SELECT = "select";
public static final String INSERT = "insert";
public static final String UPDATE = "update";
public static final String UPSERT = "upsert";
public static final String USERID = "userId";
- public static final String PASSWORD = "password";
+ public static final String PASSWORD = "";
public static final String CASSANDRA = "cassandra";
- public static final String AUTHORIZATION = "Authorization";
-
private static final String LOCALHOST = "localhost";
private static final String PROPERTIES_FILE = "/opt/app/music/etc/music.properties";
+ public static final String DEFAULTKEYSPACENAME = "TBD";
- private static int myId = 0;
- private static ArrayList<String> allIds = new ArrayList<>();
- private static String publicIp = "";
- private static ArrayList<String> allPublicIps = new ArrayList<>();
- private static String myZkHost = LOCALHOST;
private static String myCassaHost = LOCALHOST;
private static String defaultMusicIp = LOCALHOST;
private static int cassandraPort = 9042;
private static int notifytimeout = 30000;
private static int notifyinterval = 5000;
+ private static long defaultLockLeasePeriod = 6000;
+ private static int retryCount = 3;
private static int cacheObjectMaxLife = -1;
private static String lockUsing = MusicUtil.CASSANDRA;
private static boolean isCadi = false;
private static boolean isKeyspaceActive = false;
-
private static boolean debug = true;
private static String version = "0.0.0";
private static String build = "";
- private static String musicRestIp = LOCALHOST;
+
private static String musicPropertiesFilePath = PROPERTIES_FILE;
- private static long defaultLockLeasePeriod = 6000;
- private static int retryCount = 3;
private static final String[] propKeys = new String[] { "cassandra.host", "music.ip", "debug",
"version", "music.rest.ip", "music.properties", "lock.lease.period", "id", "all.ids",
"public.ip","all.pubic.ips", "cassandra.user", "cassandra.password", "aaf.endpoint.url",
"admin.username","admin.password","aaf.admin.url","music.namespace","admin.aaf.role",
- "cassandra.port","lock.using","retry.count"};
+ "cassandra.port","lock.using","retry.count","transId.header.required",
+ "conversation.header.required","clientId.header.required","messageId.header.required",
+ "transId.header.prefix","conversation.header.prefix","clientId.header.prefix",
+ "messageId.header.prefix"};
private static final String[] cosistencyLevel = new String[] {
"ALL","EACH_QUORUM","QUORUM","LOCAL_QUORUM","ONE","TWO",
"THREE","LOCAL_ONE","ANY","SERIAL","LOCAL_SERIAL"};
private static final Map<String,ConsistencyLevel> consistencyName = new HashMap<>();
-
static {
consistencyName.put("ONE",ConsistencyLevel.ONE);
consistencyName.put("TWO",ConsistencyLevel.TWO);
@@ -143,23 +143,27 @@ public class MusicUtil {
consistencyName.put("LOCAL_ONE",ConsistencyLevel.LOCAL_ONE);
consistencyName.put("LOCAL_SERIAL",ConsistencyLevel.LOCAL_SERIAL);
}
-
private static String cassName = "cassandra";
private static String cassPwd;
private static String aafEndpointUrl = null;
- public static ConcurrentMap<String, Long> zkNodeMap = new ConcurrentHashMap<>();
private static String adminId = "username";
private static String adminPass= "password";
private static String aafAdminUrl= null;
private static String musicNamespace= "org.onap.music.api";
private static String adminAafRole= "org.onap.music.api.admin_api";
-
- public static final long MusicEternityEpochMillis = 1533081600000L; // Wednesday, August 1, 2018 12:00:00 AM
+ public static final long MusicEternityEpochMillis = 1533081600000L; // Wednesday, August 1, 2018 12:00:00 AM
public static final long MaxLockReferenceTimePart = 1000000000000L; // millis after eternity (eq sometime in 2050)
-
public static final long MaxCriticalSectionDurationMillis = 1L * 24 * 60 * 60 * 1000; // 1 day
+ private static String transIdPrefix= "false";
+ private static String conversationIdPrefix= "false";
+ private static String clientIdPrefix= "false";
+ private static String messageIdPrefix= "false";
+ private static String transIdRequired= "false";
+ private static String conversationIdRequired= "false";
+ private static String clientIdRequired= "false";
+ private static String messageIdRequired= "false";
public static String getLockUsing() {
return lockUsing;
@@ -266,69 +270,6 @@ public class MusicUtil {
MusicUtil.aafEndpointUrl = aafEndpointUrl;
}
- /**
- *
- * @return
- */
- public static int getMyId() {
- return myId;
- }
-
- /**
- *
- * @param myId
- */
- public static void setMyId(int myId) {
- MusicUtil.myId = myId;
- }
-
- /**
- *
- * @return
- */
- public static List<String> getAllIds() {
- return allIds;
- }
-
- /**
- *
- * @param allIds
- */
- public static void setAllIds(List<String> allIds) {
- MusicUtil.allIds = (ArrayList<String>) allIds;
- }
-
- /**
- *
- * @return
- */
- public static String getPublicIp() {
- return publicIp;
- }
-
- /**
- *
- * @param publicIp
- */
- public static void setPublicIp(String publicIp) {
- MusicUtil.publicIp = publicIp;
- }
-
- /**
- *
- * @return
- */
- public static List<String> getAllPublicIps() {
- return allPublicIps;
- }
-
- /**
- *
- * @param allPublicIps
- */
- public static void setAllPublicIps(List<String> allPublicIps) {
- MusicUtil.allPublicIps = (ArrayList<String>) allPublicIps;
- }
/**
* Returns An array of property names that should be in the Properties
@@ -337,25 +278,7 @@ public class MusicUtil {
* @return
*/
public static String[] getPropkeys() {
- return propKeys;
- }
-
- /**
- * Get MusicRestIp - default = localhost property file value - music.rest.ip
- *
- * @return
- */
- public static String getMusicRestIp() {
- return musicRestIp;
- }
-
- /**
- * Set MusicRestIp
- *
- * @param musicRestIp
- */
- public static void setMusicRestIp(String musicRestIp) {
- MusicUtil.musicRestIp = musicRestIp;
+ return propKeys.clone();
}
/**
@@ -897,5 +820,134 @@ public class MusicUtil {
return uuid;
}
+ private static String checkPrefix(String prefix){
+ if (prefix == null || "".equals(prefix) || prefix.endsWith("-")) {
+ return prefix;
+ } else {
+ return prefix + "-";
+ }
+ }
+
+ /**
+ * @return the transIdPrefix
+ */
+ public static String getTransIdPrefix() {
+ return transIdPrefix;
+ }
+
+ /**
+ * @param transIdPrefix the transIdPrefix to set
+ */
+ public static void setTransIdPrefix(String transIdPrefix) {
+ MusicUtil.transIdPrefix = checkPrefix(transIdPrefix);
+ }
+
+ /**
+ * @return the conversationIdPrefix
+ */
+ public static String getConversationIdPrefix() {
+ return conversationIdPrefix;
+ }
+
+ /**
+ * @param conversationIdPrefix the conversationIdPrefix to set
+ */
+ public static void setConversationIdPrefix(String conversationIdPrefix) {
+ MusicUtil.conversationIdPrefix = checkPrefix(conversationIdPrefix);
+ }
+
+ /**
+ * @return the clientIdPrefix
+ */
+ public static String getClientIdPrefix() {
+ return clientIdPrefix;
+ }
+
+ /**
+ * @param clientIdPrefix the clientIdPrefix to set
+ */
+ public static void setClientIdPrefix(String clientIdPrefix) {
+ MusicUtil.clientIdPrefix = checkPrefix(clientIdPrefix);
+ }
+
+ /**
+ * @return the messageIdPrefix
+ */
+ public static String getMessageIdPrefix() {
+ return messageIdPrefix;
+ }
+
+ /**
+ * @param messageIdPrefix the messageIdPrefix to set
+ */
+ public static void setMessageIdPrefix(String messageIdPrefix) {
+ MusicUtil.messageIdPrefix = checkPrefix(messageIdPrefix);
+ }
+
+ /**
+ * @return the transIdRequired
+ */
+ public static String getTransIdRequired() {
+ return transIdRequired;
+ }
+
+
+ /**
+ * @param transIdRequired the transIdRequired to set
+ */
+ public static void setTransIdRequired(String transIdRequired) {
+ MusicUtil.transIdRequired = transIdRequired;
+ }
+
+
+ /**
+ * @return the conversationIdRequired
+ */
+ public static String getConversationIdRequired() {
+ return conversationIdRequired;
+ }
+
+
+ /**
+ * @param conversationIdRequired the conversationIdRequired to set
+ */
+ public static void setConversationIdRequired(String conversationIdRequired) {
+ MusicUtil.conversationIdRequired = conversationIdRequired;
+ }
+
+
+ /**
+ * @return the clientIdRequired
+ */
+ public static String getClientIdRequired() {
+ return clientIdRequired;
+ }
+
+
+ /**
+ * @param clientIdRequired the clientIdRequired to set
+ */
+ public static void setClientIdRequired(String clientIdRequired) {
+ MusicUtil.clientIdRequired = clientIdRequired;
+ }
+
+
+ /**
+ * @return the messageIdRequired
+ */
+ public static String getMessageIdRequired() {
+ return messageIdRequired;
+ }
+
+
+ /**
+ * @param messageIdRequired the messageIdRequired to set
+ */
+ public static void setMessageIdRequired(String messageIdRequired) {
+ MusicUtil.messageIdRequired = messageIdRequired;
+ }
+
+
+
}
diff --git a/src/main/java/org/onap/music/main/PropertiesLoader.java b/src/main/java/org/onap/music/main/PropertiesLoader.java
index af4e14e3..c20ce5c5 100644
--- a/src/main/java/org/onap/music/main/PropertiesLoader.java
+++ b/src/main/java/org/onap/music/main/PropertiesLoader.java
@@ -52,27 +52,12 @@ public class PropertiesLoader implements InitializingBean {
@Value("${build}")
public String build;
- @Value("${music.rest.ip}")
- public String musicRestIp;
-
@Value("${music.properties}")
public String musicProperties;
@Value("${lock.lease.period}")
public String lockLeasePeriod;
- @Value("${public.ip}")
- public String publicIp;
-
- @Value("${my.id}")
- public String myId;
-
- @Value("${all.ids}")
- public String allIds;
-
- @Value("${all.public.ips}")
- public String allPublicIps;
-
@Value("${cassandra.user}")
public String cassandraUser;
@@ -115,6 +100,30 @@ public class PropertiesLoader implements InitializingBean {
@Value("${retry.count}")
public String rertryCount;
+ @Value("${transId.header.prefix}")
+ private String transIdPrefix;
+
+ @Value("${conversation.header.prefix}")
+ private String conversationIdPrefix;
+
+ @Value("${clientId.header.prefix}")
+ private String clientIdPrefix;
+
+ @Value("${messageId.header.prefix}")
+ private String messageIdPrefix;
+
+ @Value("${transId.header.required}")
+ private String transIdRequired;
+
+ @Value("${conversation.header.required}")
+ private String conversationIdRequired;
+
+ @Value("${clientId.header.required}")
+ private String clientIdRequired;
+
+ @Value("${messageId.header.required}")
+ private String messageIdRequired;
+
private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PropertiesLoader.class);
@Bean
@@ -145,19 +154,6 @@ public class PropertiesLoader implements InitializingBean {
if (adminUsername != null && !adminUsername.equals("${admin.username}")) {
MusicUtil.setAdminId(adminUsername);
}
- if (allIds != null && !allIds.equals("${all.ids}")) {
- String[] ids = allIds.split(":");
- MusicUtil.setAllIds(new ArrayList<String>(Arrays.asList(ids)));
- }
- if (allPublicIps != null && !allPublicIps.equals("${all.public.ips}")) {
- String[] ips = allPublicIps.split(":");
- if (ips.length == 1) {
- // Future use
- } else if (ips.length > 1) {
- MusicUtil.setAllPublicIps(
- new ArrayList<String>(Arrays.asList(ips)));
- }
- }
if (cassandraPort != null && !cassandraPort.equals("${cassandra.port}")) {
MusicUtil.setCassandraPort(Integer.parseInt(cassandraPort));
}
@@ -182,24 +178,15 @@ public class PropertiesLoader implements InitializingBean {
if (musicProperties != null && !musicProperties.equals("${music.properties}")) {
MusicUtil.setMusicPropertiesFilePath(musicProperties);
}
- if (musicRestIp != null && !musicRestIp.equals("${music.rest.ip}")) {
- MusicUtil.setMusicRestIp(musicRestIp);
- }
if (cassandraHost != null && !cassandraHost.equals("${cassandra.host}")) {
MusicUtil.setMyCassaHost(cassandraHost);
}
- if (myId != null && !myId.equals("${my.id}")) {
- MusicUtil.setMyId(Integer.parseInt(myId));
- }
if (notifyInterval != null && !notifyInterval.equals("${notify.interval}")) {
MusicUtil.setNotifyInterval(Integer.parseInt(notifyInterval));
}
if (notifyTimeout != null && !notifyTimeout.equals("${notify.timeout}")) {
MusicUtil.setNotifyTimeOut(Integer.parseInt(notifyTimeout));
}
- if (allPublicIps != null && !allPublicIps.equals("${public.ip}")) {
- MusicUtil.setPublicIp(allPublicIps);
- }
if (version != null && !version.equals("${version}")) {
MusicUtil.setVersion(version);
}
@@ -215,6 +202,39 @@ public class PropertiesLoader implements InitializingBean {
if (isKeyspaceActive != null && !isKeyspaceActive.equals("${keyspace.active}")) {
MusicUtil.setKeyspaceActive(Boolean.parseBoolean(isKeyspaceActive));
}
+
+
+ if(transIdPrefix!=null) {
+ MusicUtil.setTransIdPrefix(transIdPrefix);
+ }
+
+ if(conversationIdPrefix!=null) {
+ MusicUtil.setConversationIdPrefix(conversationIdPrefix);
+ }
+
+ if(clientIdPrefix!=null) {
+ MusicUtil.setClientIdPrefix(clientIdPrefix);
+ }
+
+ if(messageIdPrefix!=null) {
+ MusicUtil.setMessageIdPrefix(messageIdPrefix);
+ }
+
+ if(transIdRequired!=null) {
+ MusicUtil.setTransIdRequired(transIdRequired);
+ }
+
+ if(conversationIdRequired!=null) {
+ MusicUtil.setConversationIdRequired(conversationIdRequired);
+ }
+
+ if(clientIdRequired!=null) {
+ MusicUtil.setClientIdRequired(clientIdRequired);
+ }
+
+ if(messageIdRequired!=null) {
+ MusicUtil.setMessageIdRequired(messageIdRequired);
+ }
}