diff options
Diffstat (limited to 'src/main/java/org/onap/music/main')
-rw-r--r-- | src/main/java/org/onap/music/main/MusicCore.java | 105 | ||||
-rwxr-xr-x | src/main/java/org/onap/music/main/MusicUtil.java | 256 | ||||
-rw-r--r-- | src/main/java/org/onap/music/main/PropertiesLoader.java | 94 |
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); + } } |