diff --git a/adoption-metrics-datastore-common-test/.gitignore b/adoption-metrics-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-datastore-inmemory/.gitignore b/adoption-metrics-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-datastore-interface/.gitignore b/adoption-metrics-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-datastore-rdbms/.gitignore b/adoption-metrics-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-models/.gitignore b/adoption-metrics-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-service-interface/.gitignore b/adoption-metrics-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-service-local/.gitignore b/adoption-metrics-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-service-remote/.gitignore b/adoption-metrics-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-service/.gitignore b/adoption-metrics-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/adoption-metrics-sp/.gitignore b/adoption-metrics-sp/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/adoption-metrics-sp/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-datastore-cassandra/.gitignore b/alarm-datastore-cassandra/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-datastore-cassandra/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-datastore-common-test/.gitignore b/alarm-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-datastore-inmemory/.gitignore b/alarm-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-datastore-interface/.gitignore b/alarm-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-datastore-rdbms/.gitignore b/alarm-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-models/.gitignore b/alarm-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-service-interface/.gitignore b/alarm-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-service-local/.gitignore b/alarm-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-service-remote/.gitignore b/alarm-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/alarm-service/.gitignore b/alarm-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/alarm-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/all-cloud-and-opensync-gw-in-one-process/.gitignore b/all-cloud-and-opensync-gw-in-one-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/all-cloud-and-opensync-gw-in-one-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/all-cloud-in-one-process-with-persistence/.gitignore b/all-cloud-in-one-process-with-persistence/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/all-cloud-in-one-process-with-persistence/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/all-cloud-in-one-process-with-persistence/pom.xml b/all-cloud-in-one-process-with-persistence/pom.xml index 597c9b3c..70254bc0 100644 --- a/all-cloud-in-one-process-with-persistence/pom.xml +++ b/all-cloud-in-one-process-with-persistence/pom.xml @@ -278,18 +278,6 @@ com.telecominfraproject.wlan 1.1.0-SNAPSHOT - - - client-service - com.telecominfraproject.wlan - 1.1.0-SNAPSHOT - - - - client-datastore-rdbms - com.telecominfraproject.wlan - 1.1.0-SNAPSHOT - routing-service diff --git a/all-cloud-in-one-process/.gitignore b/all-cloud-in-one-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/all-cloud-in-one-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-datastore-cassandra/.gitignore b/client-datastore-cassandra/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-datastore-cassandra/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-datastore-cassandra/src/main/resources/schema-cassandra.cql b/client-datastore-cassandra/src/main/resources/schema-cassandra.cql index ef125653..631ecd2a 100644 --- a/client-datastore-cassandra/src/main/resources/schema-cassandra.cql +++ b/client-datastore-cassandra/src/main/resources/schema-cassandra.cql @@ -42,8 +42,8 @@ CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session ( details blob, PRIMARY KEY ((customerId, macAddress), equipmentId) -) WITH comment='Wireless client sessions used by TIP WLAN CloudSDK. Records automatically expire after 30 days' - AND default_time_to_live = 2592000; +) WITH comment='Wireless client sessions used by TIP WLAN CloudSDK. Records automatically expire after 24 hours' + AND default_time_to_live = 86400; CREATE INDEX IF NOT EXISTS idx_client_session_customerId ON tip_wlan_keyspace.client_session (customerId); @@ -53,8 +53,8 @@ CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_equipment ( macAddress bigint , PRIMARY KEY ((customerId, equipmentId), macAddress) -) WITH comment='Index Table to look up wireless client sessions by equipmentId used by TIP WLAN CloudSDK. Records automatically expire after 30 days' - AND default_time_to_live = 2592000; +) WITH comment='Index Table to look up wireless client sessions by equipmentId used by TIP WLAN CloudSDK. Records automatically expire after 24 hours' + AND default_time_to_live = 86400; CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_location ( customerId int, @@ -63,8 +63,8 @@ CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_location ( macAddress bigint, PRIMARY KEY ((locationId), equipmentId, macAddress) -) WITH comment='Index Table to look up wireless client sessions by location and equipment used by TIP WLAN CloudSDK. Records automatically expire after 30 days' - AND default_time_to_live = 2592000; +) WITH comment='Index Table to look up wireless client sessions by location and equipment used by TIP WLAN CloudSDK. Records automatically expire after 24 hours' + AND default_time_to_live = 86400; CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_mac ( customerId int, @@ -74,8 +74,8 @@ CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_mac ( macAddressString text, PRIMARY KEY ((macAddress), locationId, equipmentId, macAddressString) -) WITH comment='Index Table to look up wireless client sessions by macAddressString, location, and equipment by TIP WLAN CloudSDK. Records automatically expire after 30 days' - AND default_time_to_live = 2592000; +) WITH comment='Index Table to look up wireless client sessions by macAddressString, location, and equipment by TIP WLAN CloudSDK. Records automatically expire after 24 hours' + AND default_time_to_live = 86400; CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_mac_and_equipment ( customerId int, @@ -85,8 +85,8 @@ CREATE TABLE IF NOT EXISTS tip_wlan_keyspace.client_session_by_mac_and_equipment macAddressString text, PRIMARY KEY ((macAddress), equipmentId, locationId, macAddressString) -) WITH comment='Index Table to look up wireless client sessions by macAddressString, location, and equipment by TIP WLAN CloudSDK. Records automatically expire after 30 days' - AND default_time_to_live = 2592000; +) WITH comment='Index Table to look up wireless client sessions by macAddressString, location, and equipment by TIP WLAN CloudSDK. Records automatically expire after 24 hours' + AND default_time_to_live = 86400; DROP INDEX IF EXISTS tip_wlan_keyspace.idx_client_session_by_mac_macAddressString; DROP INDEX IF EXISTS tip_wlan_keyspace.idx_client_session_by_mac_and_equipment_macAddressString; diff --git a/client-datastore-common-test/.gitignore b/client-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-datastore-inmemory/.gitignore b/client-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-datastore-interface/.gitignore b/client-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-datastore-rdbms/pom.xml b/client-datastore-rdbms/pom.xml deleted file mode 100644 index 9ab1df41..00000000 --- a/client-datastore-rdbms/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - 4.0.0 - - com.telecominfraproject.wlan - tip-wlan-cloud-root-pom - 1.1.0-SNAPSHOT - ../../wlan-cloud-root - - - client-datastore-rdbms - client-datastore-rdbms - SQL implementation of the data store - - - - com.telecominfraproject.wlan - base-jdbc - 1.1.0-SNAPSHOT - - - - com.telecominfraproject.wlan - client-datastore-interface - 1.1.0-SNAPSHOT - - - - com.telecominfraproject.wlan - base-jdbc-tests - 1.1.0-SNAPSHOT - test - - - - com.telecominfraproject.wlan - client-datastore-common-test - 1.1.0-SNAPSHOT - test - - - - - diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDAO.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDAO.java deleted file mode 100644 index 6e7aab1f..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDAO.java +++ /dev/null @@ -1,493 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.sql.DataSource; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DuplicateKeyException; -import org.springframework.dao.EmptyResultDataAccessException; -import org.springframework.jdbc.core.PreparedStatementCreator; -import org.springframework.jdbc.core.RowMapper; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - -import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails; -import com.telecominfraproject.wlan.client.models.Client; -import com.telecominfraproject.wlan.core.model.equipment.MacAddress; -import com.telecominfraproject.wlan.core.model.pagination.ColumnAndSort; -import com.telecominfraproject.wlan.core.model.pagination.PaginationContext; -import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse; -import com.telecominfraproject.wlan.core.model.pagination.SortOrder; -import com.telecominfraproject.wlan.core.server.jdbc.BaseJdbcDao; -import com.telecominfraproject.wlan.datastore.exceptions.DsConcurrentModificationException; -import com.telecominfraproject.wlan.datastore.exceptions.DsDuplicateEntityException; -import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException; - -/** - * @author dtoptygin - * - */ -@Repository -@Transactional(propagation = Propagation.MANDATORY) -public class ClientDAO extends BaseJdbcDao { - - private static final Logger LOG = LoggerFactory.getLogger(ClientDatastoreRdbms.class); - - private static final String COL_ID = "macAddress"; - - private static final String[] GENERATED_KEY_COLS = { }; - - private static final String[] ALL_COLUMNS_LIST = { - COL_ID, - "macAddressString", - - //TODO: add colums from properties Client in here - "customerId", - "details", - //make sure the order of properties matches this list and list in ClientRowMapper and list in create/update methods - - "createdTimestamp", - "lastModifiedTimestamp" - }; - - private static final Set columnsToSkipForInsert = new HashSet<>(Arrays.asList()); - private static final Set columnsToSkipForUpdate = new HashSet<>(Arrays.asList(COL_ID, "macAddressString", "createdTimestamp", "customerId")); - - private static final String TABLE_NAME = "client"; - private static final String TABLE_PREFIX = "c."; - private static final String ALL_COLUMNS; - - private static final Set ALL_COLUMNS_LOWERCASE = new HashSet<>(); - - @SuppressWarnings("unused") - //use this for queries where multiple tables are involved - private static final String ALL_COLUMNS_WITH_PREFIX; - - private static final String ALL_COLUMNS_FOR_INSERT; - private static final String BIND_VARS_FOR_INSERT; - private static final String ALL_COLUMNS_UPDATE; - - static{ - StringBuilder strbAllColumns = new StringBuilder(1024); - StringBuilder strbAllColumnsWithPrefix = new StringBuilder(1024); - StringBuilder strbAllColumnsForInsert = new StringBuilder(1024); - StringBuilder strbBindVarsForInsert = new StringBuilder(128); - StringBuilder strbColumnsForUpdate = new StringBuilder(512); - for(String colName: ALL_COLUMNS_LIST){ - - ALL_COLUMNS_LOWERCASE.add(colName.toLowerCase()); - - strbAllColumns.append(colName).append(","); - strbAllColumnsWithPrefix.append(TABLE_PREFIX).append(colName).append(","); - - if(!columnsToSkipForInsert.contains(colName)){ - strbAllColumnsForInsert.append(colName).append(","); - strbBindVarsForInsert.append("?,"); - } - - if(!columnsToSkipForUpdate.contains(colName)){ - strbColumnsForUpdate.append(colName).append("=?,"); - } - } - - // remove trailing ',' - strbAllColumns.deleteCharAt(strbAllColumns.length() - 1); - strbAllColumnsWithPrefix.deleteCharAt(strbAllColumnsWithPrefix.length() - 1); - strbAllColumnsForInsert.deleteCharAt(strbAllColumnsForInsert.length() - 1); - strbBindVarsForInsert.deleteCharAt(strbBindVarsForInsert.length() - 1); - strbColumnsForUpdate.deleteCharAt(strbColumnsForUpdate.length() - 1); - - ALL_COLUMNS = strbAllColumns.toString(); - ALL_COLUMNS_WITH_PREFIX = strbAllColumnsWithPrefix.toString(); - ALL_COLUMNS_FOR_INSERT = strbAllColumnsForInsert.toString(); - BIND_VARS_FOR_INSERT = strbBindVarsForInsert.toString(); - ALL_COLUMNS_UPDATE = strbColumnsForUpdate.toString(); - - } - - - private static final String SQL_GET_BY_ID = - "select " + ALL_COLUMNS + - " from "+TABLE_NAME+" " + - " where customerId = ? and " + COL_ID + " = ?"; - - private static final String SQL_GET_BY_CUSTOMER_ID = - "select " + ALL_COLUMNS + - " from " + TABLE_NAME + " " + - " where customerId = ? "; - - private static final String SQL_GET_BLOCKED_CLIENTS = "select " + ALL_COLUMNS_WITH_PREFIX + - " from " + TABLE_NAME + " c , client_blocklist cb " + - " where cb.customerId = ? and c.customerId = cb.customerId and c.macAddress = cb.macAddress "; - - - private static final String SQL_GET_LASTMOD_BY_ID = - "select lastModifiedTimestamp " + - " from "+TABLE_NAME+" " + - " where customerId = ? and " + COL_ID + " = ?"; - - private static final String SQL_INSERT = - "insert into "+TABLE_NAME+" ( " - + ALL_COLUMNS_FOR_INSERT - + " ) values ( "+BIND_VARS_FOR_INSERT+" ) "; - - private static final String SQL_DELETE = - "delete from "+TABLE_NAME+" where customerId = ? and " + COL_ID + " = ? "; - - private static final String SQL_UPDATE = - "update "+TABLE_NAME+" set " - + ALL_COLUMNS_UPDATE + - " where customerId = ? and " + COL_ID + " = ? " - + " and ( lastModifiedTimestamp = ? or ? = true) " //last parameter will allow us to skip check for concurrent modification, if necessary - ; - - private static final String SQL_GET_ALL_IN_SET = "select " + ALL_COLUMNS + " from "+TABLE_NAME + " where customerId = ? and "+ COL_ID +" in "; - - private static final String SQL_APPEND_SEARCH_MAC_SUBSTRING = - "and macAddressString like ? "; - - private static final String SQL_PAGING_SUFFIX = " LIMIT ? OFFSET ? "; - private static final String SORT_SUFFIX = ""; - - private static final String SQL_INSERT_BLOCK_LIST = "insert into client_blocklist (customerId, macAddress) values (?, ?) "; - private static final String SQL_DELETE_BLOCK_LIST = "delete from client_blocklist where customerId = ? and macAddress = ? "; - - - private static final RowMapper clientRowMapper = new ClientRowMapper(); - - - @Autowired(required=false) - public void setDataSource(ClientDataSourceInterface dataSource) { - setDataSource((DataSource)dataSource); - } - - - public Client create(final Client client) { - - final long ts = System.currentTimeMillis(); - - try{ - jdbcTemplate.update( - new PreparedStatementCreator() { - public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { - PreparedStatement ps = connection.prepareStatement(SQL_INSERT ); - int colIdx = 1; - - //TODO: add remaining properties from Client here - ps.setLong(colIdx++, client.getMacAddress().getAddressAsLong()); - ps.setString(colIdx++, client.getMacAddress().getAddressAsString()); - ps.setInt(colIdx++, client.getCustomerId()); - ps.setBytes(colIdx++, (client.getDetails()!=null)?client.getDetails().toZippedBytes():null); - - ps.setLong(colIdx++, ts); - ps.setLong(colIdx++, ts); - - return ps; - } - }); - }catch (DuplicateKeyException e) { - throw new DsDuplicateEntityException(e); - } - - //update blocked_client table, if needed - if((client.getDetails() instanceof ClientInfoDetails) - && ((ClientInfoDetails)client.getDetails()).getBlocklistDetails()!=null - && ((ClientInfoDetails)client.getDetails()).getBlocklistDetails().isEnabled() - ) { - - this.jdbcTemplate.update( SQL_INSERT_BLOCK_LIST, - client.getCustomerId(), client.getMacAddress().getAddressAsLong()); - - client.setNeedToUpdateBlocklist(true); - } - - - client.setCreatedTimestamp(ts); - client.setLastModifiedTimestamp(ts); - - - LOG.debug("Stored Client {}", client); - - return client.clone(); - } - - - @Transactional(noRollbackFor = { EmptyResultDataAccessException.class }) - public Client getOrNull(int customerId, MacAddress clientMac) { - LOG.debug("Looking up Client for id {} {}", customerId, clientMac); - - try{ - Client client = this.jdbcTemplate.queryForObject( - SQL_GET_BY_ID, - clientRowMapper, customerId, clientMac.getAddressAsLong()); - - LOG.debug("Found Client {}", client); - - return client; - }catch (EmptyResultDataAccessException e) { - LOG.debug("Could not find Client for id {} {}", customerId, clientMac); - return null; - } - } - - public Client update(Client client) { - - long newLastModifiedTs = System.currentTimeMillis(); - long incomingLastModifiedTs = client.getLastModifiedTimestamp(); - - Client existingClient = getOrNull(client.getCustomerId(), client.getMacAddress()); - - if(existingClient==null) { - LOG.debug("Cannot find Client for {} {}", client.getCustomerId(), client.getMacAddress()); - throw new DsEntityNotFoundException("Client not found " + client.getCustomerId() + " " + client.getMacAddress()); - } - - int updateCount = this.jdbcTemplate.update(SQL_UPDATE, new Object[]{ - //TODO: add remaining properties from Client here - (client.getDetails()!=null)?client.getDetails().toZippedBytes():null , - - //client.getCreatedTimestamp(), - not updating this one - newLastModifiedTs, - - // use id for update operation - client.getCustomerId(), - client.getMacAddress().getAddressAsLong(), - // use lastModifiedTimestamp for data protection against concurrent modifications - incomingLastModifiedTs, - isSkipCheckForConcurrentUpdates() - }); - - if(updateCount==0){ - - if(isSkipCheckForConcurrentUpdates()){ - //in this case we did not request protection against concurrent updates, - //so the updateCount is 0 because record in db was not found - throw new EmptyResultDataAccessException(1); - } - - long recordTimestamp = existingClient.getLastModifiedTimestamp(); - - LOG.debug("Concurrent modification detected for Client with id {} {} expected version is {} but version in db was {}", - client.getCustomerId(), - client.getMacAddress().getAddressAsLong(), - incomingLastModifiedTs, - recordTimestamp - ); - throw new DsConcurrentModificationException("Concurrent modification detected for Client with id " - + client.getCustomerId() + " " + client.getMacAddress() - +" expected version is " + incomingLastModifiedTs - +" but version in db was " + recordTimestamp - ); - - } - - //update client_blocklist table, if the blocking state of the client has changed - boolean existingClientBlocked = (existingClient.getDetails() instanceof ClientInfoDetails) - && ((ClientInfoDetails)existingClient.getDetails()).getBlocklistDetails()!=null - && ((ClientInfoDetails)existingClient.getDetails()).getBlocklistDetails().isEnabled(); - - boolean updatedClientBlocked = (client.getDetails() instanceof ClientInfoDetails) - && ((ClientInfoDetails)client.getDetails()).getBlocklistDetails()!=null - && ((ClientInfoDetails)client.getDetails()).getBlocklistDetails().isEnabled(); - - if(existingClientBlocked != updatedClientBlocked) { - if(updatedClientBlocked) { - //insert record into client_blocklist table - this.jdbcTemplate.update( SQL_INSERT_BLOCK_LIST, - client.getCustomerId(), client.getMacAddress().getAddressAsLong()); - } else { - //delete record from client_blocklist table - this.jdbcTemplate.update( SQL_DELETE_BLOCK_LIST, - client.getCustomerId(), client.getMacAddress().getAddressAsLong()); - } - - //notify the caller that block list needs to be updated - client.setNeedToUpdateBlocklist(true); - - } - - - //make a copy so that we don't accidentally update caller's version by reference - Client clientCopy = client.clone(); - clientCopy.setLastModifiedTimestamp(newLastModifiedTs); - - LOG.debug("Updated Client {}", clientCopy); - - return clientCopy; - } - - - public Client delete(int customerId, MacAddress clientMac) { - Client client = getOrNull(customerId, clientMac); - if(client!=null) { - this.jdbcTemplate.update(SQL_DELETE, customerId, clientMac.getAddressAsLong()); - } else { - throw new DsEntityNotFoundException("Cannot find Client for id " + customerId + " " + clientMac); - } - - //delete from client_blocklist table happens by foreign key cascade - //but we still need to tell the caller if the blocklist need to be updated - if((client.getDetails() instanceof ClientInfoDetails) - && ((ClientInfoDetails)client.getDetails()).getBlocklistDetails()!=null - && ((ClientInfoDetails)client.getDetails()).getBlocklistDetails().isEnabled() - ) { - client.setNeedToUpdateBlocklist(true); - } - - LOG.debug("Deleted Client {} {}", customerId, clientMac); - - return client; - } - - public List getAllForCustomer(int customerId) { - LOG.debug("Looking up Clients for customer {}", customerId); - - List ret = this.jdbcTemplate.query(SQL_GET_BY_CUSTOMER_ID, - clientRowMapper, customerId); - - LOG.debug("Found Clients for customer {} : {}", customerId, ret); - - return ret; - } - - public List get(int customerId, Set clientMacSet) { - LOG.debug("calling get({}, {})", customerId, clientMacSet); - - if (clientMacSet == null || clientMacSet.isEmpty()) { - return Collections.emptyList(); - } - - StringBuilder set = new StringBuilder(256); - set.append("("); - for(int i =0; i< clientMacSet.size(); i++) { - set.append("?,"); - } - //remove last comma - set.deleteCharAt(set.length()-1); - set.append(")"); - - String query = SQL_GET_ALL_IN_SET + set; - ArrayList bindVars = new ArrayList<>(); - bindVars.add(customerId); - clientMacSet.forEach(m -> bindVars.add(m.getAddressAsLong()) ); - - List results = this.jdbcTemplate.query(query, bindVars.toArray(), clientRowMapper); - - LOG.debug("get({}, {}) returns {} record(s)", customerId, clientMacSet, results.size()); - return results; - } - - public PaginationResponse getForCustomer(int customerId, String macSubstring, - List sortBy, PaginationContext context) { - - PaginationResponse ret = new PaginationResponse<>(); - ret.setContext(context.clone()); - - if (ret.getContext().isLastPage()) { - // no more pages available according to the context - LOG.debug( - "No more pages available when looking up Clients for customer {} macSubstring {} with last returned page number {}", - customerId, macSubstring, context.getLastReturnedPageNumber()); - return ret; - } - - LOG.debug("Looking up Clients for customer {} macSubstring {} with last returned page number {}", - customerId, macSubstring, context.getLastReturnedPageNumber()); - - String query = SQL_GET_BY_CUSTOMER_ID; - - // add filters for the query - ArrayList queryArgs = new ArrayList<>(); - queryArgs.add(customerId); - - if (macSubstring != null) { - query += SQL_APPEND_SEARCH_MAC_SUBSTRING; - - queryArgs.add("%" + macSubstring.toLowerCase() + "%"); - } - - // add sorting options for the query - StringBuilder strbSort = new StringBuilder(100); - strbSort.append(" order by "); - - if (sortBy != null && !sortBy.isEmpty()) { - - // use supplied sorting options - for (ColumnAndSort column : sortBy) { - if (!ALL_COLUMNS_LOWERCASE.contains(column.getColumnName().toLowerCase())) { - // unknown column, skip it - continue; - } - - strbSort.append(column.getColumnName()); - - if (column.getSortOrder() == SortOrder.desc) { - strbSort.append(" desc"); - } - - strbSort.append(","); - } - - // remove last ',' - strbSort.deleteCharAt(strbSort.length() - 1); - - } else { - // no sort order was specified - sort by id to have consistent - // paging - strbSort.append(COL_ID); - } - - query += strbSort.toString(); - - // add pagination parameters for the query - query += SQL_PAGING_SUFFIX ; - - queryArgs.add(context.getMaxItemsPerPage()); - queryArgs.add(context.getTotalItemsReturned()); - - /* - * https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/ - * Choosing offset=1000 makes cost about 19 and has a 0.609 ms execution - * time. Once offset=5,000,000 the cost goes up to 92734 and execution - * time is 758.484 ms. - DT: still acceptable for our use case - */ - List pageItems = this.jdbcTemplate.query(query, queryArgs.toArray(), - clientRowMapper); - - LOG.debug("Found {} Clients for customer {} macSubstring {} with last returned page number {}", - pageItems.size(), customerId, macSubstring, context.getLastReturnedPageNumber()); - - ret.setItems(pageItems); - - // adjust context for the next page - ret.prepareForNextPage(); - - // startAfterItem is not used in RDBMS datastores, set it to null - ret.getContext().setStartAfterItem(null); - - return ret; - } - - - public List getBlockedClients(int customerId) { - LOG.debug("calling getBlockedClients({})", customerId); - - List results = this.jdbcTemplate.query(SQL_GET_BLOCKED_CLIENTS, clientRowMapper, customerId); - - LOG.debug("getBlockedClients({}) returns {} record(s)", customerId, results.size()); - return results; - } - -} diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceConfig.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceConfig.java deleted file mode 100644 index d1105753..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceConfig.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Profile; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Component; - -import com.telecominfraproject.wlan.core.server.jdbc.BaseDataSourceConfig; - -/** - * @author dtoptygin - * - */ -@Component -@Profile("!use_single_ds") -@PropertySource({ "${client-ds.props:classpath:client-ds.properties}" }) -public class ClientDataSourceConfig extends BaseDataSourceConfig { - - - @Bean - public ClientDataSourceInterface clientDataSourceInterface(){ - - ClientDataSourceInterface ret = new ClientDataSourceImpl(getDataSource(), getKeyColumnConverter()); - return ret; - } - - @Override - public String getDataSourceName() { - return "client-ds"; - } -} diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceImpl.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceImpl.java deleted file mode 100644 index 0b8978fe..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceImpl.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import javax.sql.DataSource; - -import com.telecominfraproject.wlan.core.server.jdbc.BaseJDbcDataSource; -import com.telecominfraproject.wlan.core.server.jdbc.BaseKeyColumnConverter; - -/** - * @author dtoptygin - * SQL DataSource that is used by Client Service - */ -public class ClientDataSourceImpl extends BaseJDbcDataSource implements ClientDataSourceInterface { - - public ClientDataSourceImpl(DataSource targetDataSource, BaseKeyColumnConverter keyColumnConverter){ - super(targetDataSource, keyColumnConverter); - } - -} diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceInterface.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceInterface.java deleted file mode 100644 index f0a9945c..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDataSourceInterface.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import javax.sql.DataSource; - -/** - * @author dtoptygin - * Marker interface to distinguish SQL DataSource that is used by Client Service - */ -public interface ClientDataSourceInterface extends DataSource { - -} diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbms.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbms.java deleted file mode 100644 index d99490d2..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbms.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import java.util.List; -import java.util.Set; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; - -import com.telecominfraproject.wlan.core.model.equipment.MacAddress; -import com.telecominfraproject.wlan.core.model.pagination.ColumnAndSort; -import com.telecominfraproject.wlan.core.model.pagination.PaginationContext; -import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse; - -import com.telecominfraproject.wlan.client.datastore.ClientDatastore; -import com.telecominfraproject.wlan.client.models.Client; -import com.telecominfraproject.wlan.client.session.models.ClientSession; - -/** - * @author dtoptygin - * - */ -@Configuration -public class ClientDatastoreRdbms implements ClientDatastore { - - @Autowired ClientDAO clientDAO; - @Autowired ClientSessionDAO clientSessionDAO; - - @Override - public Client create(Client client) { - return clientDAO.create(client); - } - - @Override - public Client getOrNull(int customerId, MacAddress clientMac) { - return clientDAO.getOrNull(customerId, clientMac); - } - - @Override - public Client update(Client client) { - return clientDAO.update(client); - } - - @Override - public Client delete(int customerId, MacAddress clientMac) { - return clientDAO.delete(customerId, clientMac); - } - - @Override - public List get(int customerId, Set clientMacSet) { - return clientDAO.get(customerId, clientMacSet); - } - - @Override - public List getBlockedClients(int customerId) { - return clientDAO.getBlockedClients(customerId); - } - - @Override - public PaginationResponse getForCustomer(int customerId, String macSubstring, - List sortBy, PaginationContext context) { - - if(context == null) { - context = new PaginationContext<>(); - } - - return clientDAO.getForCustomer(customerId, macSubstring, sortBy, context); - } - - @Override - public ClientSession getSessionOrNull(int customerId, long equipmentId, MacAddress clientMac) { - return clientSessionDAO.getSessionOrNull(customerId, equipmentId, clientMac); - } - - @Override - public ClientSession updateSession(ClientSession clientSession) { - return clientSessionDAO.updateSession(clientSession); - } - - @Override - public ClientSession deleteSession(int customerId, long equipmentId, MacAddress clientMac) { - return clientSessionDAO.deleteSession(customerId, equipmentId, clientMac); - } - - @Override - public List getSessions(int customerId, Set clientMacSet) { - return clientSessionDAO.getSessions(customerId, clientMacSet); - } - - @Override - public PaginationResponse getSessionsForCustomer(int customerId, Set equipmentIds, Set locationIds, - String macSubstring, List sortBy, PaginationContext context) { - - if(context == null) { - context = new PaginationContext<>(); - } - - return clientSessionDAO.getSessionsForCustomer(customerId, equipmentIds, locationIds, macSubstring, sortBy, context); - } - - -} diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientRowMapper.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientRowMapper.java deleted file mode 100644 index dce60c79..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientRowMapper.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.jdbc.core.RowMapper; - -import com.telecominfraproject.wlan.core.model.equipment.MacAddress; -import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; - -import com.telecominfraproject.wlan.client.models.Client; -import com.telecominfraproject.wlan.client.models.ClientDetails; - -/** - * @author dtoptygin - * - */ - -public class ClientRowMapper implements RowMapper { - - private static final Logger LOG = LoggerFactory.getLogger(ClientRowMapper.class); - - public Client mapRow(ResultSet rs, int rowNum) throws SQLException { - Client client = new Client(); - int colIdx=1; - client.setMacAddress(new MacAddress(rs.getLong(colIdx++))); - // macAddressString here does not need to map again to Client Object - colIdx++; - - //TODO: add columns from properties Client in here. - //make sure order of fields is the same as defined in Client - client.setCustomerId(rs.getInt(colIdx++)); - - byte[] zippedBytes = rs.getBytes(colIdx++); - if (zippedBytes !=null) { - try { - ClientDetails details = BaseJsonModel.fromZippedBytes(zippedBytes, ClientDetails.class); - client.setDetails(details); - } catch (RuntimeException exp) { - LOG.error("Failed to decode ClientDetails from database for id {} {}", client.getCustomerId(), client.getMacAddress()); - } - } - - client.setCreatedTimestamp(rs.getLong(colIdx++)); - client.setLastModifiedTimestamp(rs.getLong(colIdx++)); - - return client; - } -} \ No newline at end of file diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientSessionDAO.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientSessionDAO.java deleted file mode 100644 index bd8fd07f..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientSessionDAO.java +++ /dev/null @@ -1,470 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.annotation.PostConstruct; -import javax.sql.DataSource; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DuplicateKeyException; -import org.springframework.dao.EmptyResultDataAccessException; -import org.springframework.jdbc.core.PreparedStatementCreator; -import org.springframework.jdbc.core.RowMapper; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - -import com.telecominfraproject.wlan.client.session.models.ClientSession; -import com.telecominfraproject.wlan.core.model.equipment.MacAddress; -import com.telecominfraproject.wlan.core.model.pagination.ColumnAndSort; -import com.telecominfraproject.wlan.core.model.pagination.PaginationContext; -import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse; -import com.telecominfraproject.wlan.core.model.pagination.SortOrder; -import com.telecominfraproject.wlan.core.server.jdbc.BaseJdbcDao; -import com.telecominfraproject.wlan.datastore.exceptions.DsConcurrentModificationException; -import com.telecominfraproject.wlan.datastore.exceptions.DsDuplicateEntityException; -import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException; - -/** - * @author dtoptygin - * - */ -@Repository -@Transactional(propagation = Propagation.MANDATORY) -public class ClientSessionDAO extends BaseJdbcDao { - - private static final Logger LOG = LoggerFactory.getLogger(ClientDatastoreRdbms.class); - - private static final String COL_ID = "macAddress"; - - private static final String[] GENERATED_KEY_COLS = { }; - - private static final String[] ALL_COLUMNS_LIST = { - COL_ID, - "macAddressString", - - //TODO: add colums from properties ClientSession in here - "customerId", - "equipmentId", - "locationId", - "details", - //make sure the order of properties matches this list and list in ClientSessionRowMapper and list in create/update methods - - "lastModifiedTimestamp" - }; - - private static final Set columnsToSkipForInsert = new HashSet<>(Arrays.asList()); - private static final Set columnsToSkipForUpdate = new HashSet<>(Arrays.asList(COL_ID, "macAddressString", "customerId", "equipmentId")); - - private static final String TABLE_NAME = "client_session"; - private static final String TABLE_PREFIX = "s."; - private static final String ALL_COLUMNS; - - private static final Set ALL_COLUMNS_LOWERCASE = new HashSet<>(); - - @SuppressWarnings("unused") - //use this for queries where multiple tables are involved - private static final String ALL_COLUMNS_WITH_PREFIX; - - private static final String ALL_COLUMNS_FOR_INSERT; - private static final String BIND_VARS_FOR_INSERT; - private static final String ALL_COLUMNS_UPDATE; - - static{ - StringBuilder strbAllColumns = new StringBuilder(1024); - StringBuilder strbAllColumnsWithPrefix = new StringBuilder(1024); - StringBuilder strbAllColumnsForInsert = new StringBuilder(1024); - StringBuilder strbBindVarsForInsert = new StringBuilder(128); - StringBuilder strbColumnsForUpdate = new StringBuilder(512); - for(String colName: ALL_COLUMNS_LIST){ - - ALL_COLUMNS_LOWERCASE.add(colName.toLowerCase()); - - strbAllColumns.append(colName).append(","); - strbAllColumnsWithPrefix.append(TABLE_PREFIX).append(colName).append(","); - - if(!columnsToSkipForInsert.contains(colName)){ - strbAllColumnsForInsert.append(colName).append(","); - strbBindVarsForInsert.append("?,"); - } - - if(!columnsToSkipForUpdate.contains(colName)){ - strbColumnsForUpdate.append(colName).append("=?,"); - } - } - - // remove trailing ',' - strbAllColumns.deleteCharAt(strbAllColumns.length() - 1); - strbAllColumnsWithPrefix.deleteCharAt(strbAllColumnsWithPrefix.length() - 1); - strbAllColumnsForInsert.deleteCharAt(strbAllColumnsForInsert.length() - 1); - strbBindVarsForInsert.deleteCharAt(strbBindVarsForInsert.length() - 1); - strbColumnsForUpdate.deleteCharAt(strbColumnsForUpdate.length() - 1); - - ALL_COLUMNS = strbAllColumns.toString(); - ALL_COLUMNS_WITH_PREFIX = strbAllColumnsWithPrefix.toString(); - ALL_COLUMNS_FOR_INSERT = strbAllColumnsForInsert.toString(); - BIND_VARS_FOR_INSERT = strbBindVarsForInsert.toString(); - ALL_COLUMNS_UPDATE = strbColumnsForUpdate.toString(); - - } - - - private static final String SQL_GET_BY_ID = - "select " + ALL_COLUMNS + - " from "+TABLE_NAME+" " + - " where customerId = ? and equipmentId = ? and " + COL_ID + " = ?"; - - private static final String SQL_GET_BY_CUSTOMER_ID = - "select " + ALL_COLUMNS + - " from " + TABLE_NAME + " " + - " where customerId = ? "; - - private static final String SQL_GET_LASTMOD_BY_ID = - "select lastModifiedTimestamp " + - " from "+TABLE_NAME+" " + - " where customerId = ? and equipmentId = ? and " + COL_ID + " = ?"; - - private static final String SQL_INSERT = - "insert into "+TABLE_NAME+" ( " - + ALL_COLUMNS_FOR_INSERT - + " ) values ( "+BIND_VARS_FOR_INSERT+" ) "; - - private static final String SQL_DELETE = - "delete from "+TABLE_NAME+" where customerId = ? and equipmentId = ? and " + COL_ID + " = ? "; - - private static final String SQL_UPDATE = - "update "+TABLE_NAME+" set " - + ALL_COLUMNS_UPDATE + - " where customerId = ? and equipmentId = ? and " + COL_ID + " = ? " - + " and ( lastModifiedTimestamp = ? or ? = true) " //last parameter will allow us to skip check for concurrent modification, if necessary - ; - - private static final String SQL_GET_ALL_IN_SET = "select " + ALL_COLUMNS + " from "+TABLE_NAME + " where customerId = ? and "+ COL_ID +" in "; - - private static final String SQL_APPEND_SEARCH_MAC_SUBSTRING = - "and macAddressString like ? "; - - private static final String SQL_PAGING_SUFFIX = " LIMIT ? OFFSET ? "; - private static final String SORT_SUFFIX = ""; - - - private static final RowMapper clientSessionRowMapper = new ClientSessionRowMapper(); - - - @Autowired(required=false) - public void setDataSource(ClientDataSourceInterface dataSource) { - setDataSource((DataSource)dataSource); - } - - - @PostConstruct - void afterPropertiesSet(){ - setSkipCheckForConcurrentUpdates(true); - } - - public ClientSession create(final ClientSession clientSession) { - - final long ts = System.currentTimeMillis(); - - try{ - jdbcTemplate.update( - new PreparedStatementCreator() { - public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { - PreparedStatement ps = connection.prepareStatement(SQL_INSERT ); - int colIdx = 1; - - //TODO: add remaining properties from Client here - ps.setLong(colIdx++, clientSession.getMacAddress().getAddressAsLong()); - ps.setString(colIdx++, clientSession.getMacAddress().getAddressAsString()); - ps.setInt(colIdx++, clientSession.getCustomerId()); - ps.setLong(colIdx++, clientSession.getEquipmentId()); - ps.setLong(colIdx++, clientSession.getLocationId()); - ps.setBytes(colIdx++, (clientSession.getDetails()!=null)?clientSession.getDetails().toZippedBytes():null); - - ps.setLong(colIdx++, ts); - - return ps; - } - }); - }catch (DuplicateKeyException e) { - throw new DsDuplicateEntityException(e); - } - - clientSession.setLastModifiedTimestamp(ts); - - - LOG.debug("Stored Client session {}", clientSession); - - return clientSession.clone(); - } - - - @Transactional(noRollbackFor = { EmptyResultDataAccessException.class }) - public ClientSession getSessionOrNull(int customerId, long equipmentId, MacAddress clientMac) { - LOG.debug("Looking up Client session for id {} {} {}", customerId, equipmentId, clientMac); - - try{ - ClientSession client = this.jdbcTemplate.queryForObject( - SQL_GET_BY_ID, - clientSessionRowMapper, customerId, equipmentId, clientMac.getAddressAsLong()); - - LOG.debug("Found Client session {}", client); - - return client; - }catch (EmptyResultDataAccessException e) { - LOG.debug("Could not find Client for id {} {}", customerId, clientMac); - return null; - } - } - - public ClientSession updateSession(ClientSession clientSession) { - - long newLastModifiedTs = System.currentTimeMillis(); - long incomingLastModifiedTs = clientSession.getLastModifiedTimestamp(); - - int updateCount = this.jdbcTemplate.update(SQL_UPDATE, new Object[]{ - //TODO: add remaining properties from Client session here - clientSession.getLocationId(), - (clientSession.getDetails()!=null)?clientSession.getDetails().toZippedBytes():null , - newLastModifiedTs, - - // use id for update operation - clientSession.getCustomerId(), - clientSession.getEquipmentId(), - clientSession.getMacAddress().getAddressAsLong(), - // use lastModifiedTimestamp for data protection against concurrent modifications - incomingLastModifiedTs, - isSkipCheckForConcurrentUpdates() - }); - - if(updateCount==0){ - - try{ - - //find out if record could not be updated because it does not exist or because it was modified concurrently - long recordTimestamp = this.jdbcTemplate.queryForObject( - SQL_GET_LASTMOD_BY_ID, - Long.class, - clientSession.getCustomerId(), clientSession.getEquipmentId(), clientSession.getMacAddress().getAddressAsLong() - ); - - if(!isSkipCheckForConcurrentUpdates()){ - LOG.debug("Concurrent modification detected for Client session with id {}:{}:{} expected version is {} but version in db was {}", - clientSession.getCustomerId(), clientSession.getEquipmentId(), clientSession.getMacAddress(), - incomingLastModifiedTs, - recordTimestamp - ); - throw new DsConcurrentModificationException("Concurrent modification detected for Client session with id " - + clientSession.getCustomerId() + ":" + clientSession.getEquipmentId() + ":" + clientSession.getMacAddress() - +" expected version is " + incomingLastModifiedTs - +" but version in db was " + recordTimestamp - ); - } - - }catch (EmptyResultDataAccessException e) { - LOG.debug("Could not find Client for id {}:{}:{}", clientSession.getCustomerId(), clientSession.getEquipmentId(), clientSession.getMacAddress()); - - if(isSkipCheckForConcurrentUpdates()){ - //in this case we did not request protection against concurrent updates, - //so the updateCount is 0 because record in db was not found - //we'll create a new record - return create(clientSession); - } else { - throw new DsEntityNotFoundException("Client session not found " + clientSession.getCustomerId() + ":" - + clientSession.getEquipmentId() + ":" + clientSession.getMacAddress()); - } - } - } - - //make a copy so that we don't accidentally update caller's version by reference - ClientSession clientSessionCopy = clientSession.clone(); - clientSessionCopy.setLastModifiedTimestamp(newLastModifiedTs); - - LOG.debug("Updated Client session {}", clientSessionCopy); - - return clientSessionCopy; - } - - - public ClientSession deleteSession(int customerId, long equipmentId, MacAddress clientMac) { - ClientSession client = getSessionOrNull(customerId, equipmentId, clientMac); - if(client!=null) { - this.jdbcTemplate.update(SQL_DELETE, customerId, equipmentId, clientMac.getAddressAsLong()); - } else { - throw new DsEntityNotFoundException("Cannot find Client for id " + customerId + " " + equipmentId+ " " + clientMac); - } - - LOG.debug("Deleted Client session {} {} {}", customerId, equipmentId, clientMac); - - return client; - } - - public List getSessions(int customerId, Set clientMacSet) { - LOG.debug("calling getSessions({}, {})", customerId, clientMacSet); - - if (clientMacSet == null || clientMacSet.isEmpty()) { - return Collections.emptyList(); - } - - StringBuilder set = new StringBuilder(256); - set.append("("); - for(int i =0; i< clientMacSet.size(); i++) { - set.append("?,"); - } - //remove last comma - set.deleteCharAt(set.length()-1); - set.append(")"); - - String query = SQL_GET_ALL_IN_SET + set; - ArrayList bindVars = new ArrayList<>(); - bindVars.add(customerId); - clientMacSet.forEach(m -> bindVars.add(m.getAddressAsLong()) ); - - List results = this.jdbcTemplate.query(query, bindVars.toArray(), clientSessionRowMapper); - - LOG.debug("getSessions({}, {}) returns {} record(s)", customerId, clientMacSet, results.size()); - return results; - } - - - public PaginationResponse getSessionsForCustomer(int customerId, Set equipmentIds, Set locationIds, - String macSubstring, List sortBy, PaginationContext context) { - - PaginationResponse ret = new PaginationResponse<>(); - ret.setContext(context.clone()); - - if (ret.getContext().isLastPage()) { - // no more pages available according to the context - LOG.debug( - "No more pages available when looking up Client sessions for customer {} with last returned page number {}", - customerId, context.getLastReturnedPageNumber()); - return ret; - } - - LOG.debug("Looking up Client sessions for customer {} with last returned page number {}", - customerId, context.getLastReturnedPageNumber()); - - String query = SQL_GET_BY_CUSTOMER_ID; - - // add filters for the query - ArrayList queryArgs = new ArrayList<>(); - queryArgs.add(customerId); - - //add equipmentId filters - if (equipmentIds != null && !equipmentIds.isEmpty()) { - queryArgs.addAll(equipmentIds); - - StringBuilder strb = new StringBuilder(100); - strb.append("and equipmentId in ("); - for (int i = 0; i < equipmentIds.size(); i++) { - strb.append("?"); - if (i < equipmentIds.size() - 1) { - strb.append(","); - } - } - strb.append(") "); - - query += strb.toString(); - } - - //add locationId filters - if (locationIds != null && !locationIds.isEmpty()) { - queryArgs.addAll(locationIds); - - StringBuilder strb = new StringBuilder(100); - strb.append("and locationId in ("); - for (int i = 0; i < locationIds.size(); i++) { - strb.append("?"); - if (i < locationIds.size() - 1) { - strb.append(","); - } - } - strb.append(") "); - - query += strb.toString(); - } - - //add macSubstring filter - if (macSubstring != null && !macSubstring.isEmpty()) { - query += SQL_APPEND_SEARCH_MAC_SUBSTRING; - - queryArgs.add("%" + macSubstring.toLowerCase() + "%"); - } - - // add sorting options for the query - StringBuilder strbSort = new StringBuilder(100); - strbSort.append(" order by "); - - if (sortBy != null && !sortBy.isEmpty()) { - - // use supplied sorting options - for (ColumnAndSort column : sortBy) { - if (!ALL_COLUMNS_LOWERCASE.contains(column.getColumnName().toLowerCase())) { - // unknown column, skip it - continue; - } - - strbSort.append(column.getColumnName()); - - if (column.getSortOrder() == SortOrder.desc) { - strbSort.append(" desc"); - } - - strbSort.append(","); - } - - // remove last ',' - strbSort.deleteCharAt(strbSort.length() - 1); - - } else { - // no sort order was specified - sort by id to have consistent - // paging - strbSort.append(COL_ID); - } - - query += strbSort.toString(); - - // add pagination parameters for the query - query += SQL_PAGING_SUFFIX ; - - queryArgs.add(context.getMaxItemsPerPage()); - queryArgs.add(context.getTotalItemsReturned()); - - /* - * https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/ - * Choosing offset=1000 makes cost about 19 and has a 0.609 ms execution - * time. Once offset=5,000,000 the cost goes up to 92734 and execution - * time is 758.484 ms. - DT: still acceptable for our use case - */ - List pageItems = this.jdbcTemplate.query(query, queryArgs.toArray(), - clientSessionRowMapper); - - if (pageItems == null) { - LOG.debug("Cannot find Client sessions for customer {} with last returned page number {}", - customerId, context.getLastReturnedPageNumber()); - } else { - LOG.debug("Found {} Client sessions for customer {} with last returned page number {}", - pageItems.size(), customerId, context.getLastReturnedPageNumber()); - } - - ret.setItems(pageItems); - - // adjust context for the next page - ret.prepareForNextPage(); - - // startAfterItem is not used in RDBMS datastores, set it to null - ret.getContext().setStartAfterItem(null); - - return ret; - } -} diff --git a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientSessionRowMapper.java b/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientSessionRowMapper.java deleted file mode 100644 index a45cdc89..00000000 --- a/client-datastore-rdbms/src/main/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientSessionRowMapper.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.jdbc.core.RowMapper; - -import com.telecominfraproject.wlan.core.model.equipment.MacAddress; -import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; - -import com.telecominfraproject.wlan.client.models.Client; -import com.telecominfraproject.wlan.client.models.ClientDetails; -import com.telecominfraproject.wlan.client.session.models.ClientSession; -import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails; - -/** - * @author dtoptygin - * - */ - -public class ClientSessionRowMapper implements RowMapper { - - private static final Logger LOG = LoggerFactory.getLogger(ClientSessionRowMapper.class); - - public ClientSession mapRow(ResultSet rs, int rowNum) throws SQLException { - ClientSession clientSession = new ClientSession(); - int colIdx=1; - clientSession.setMacAddress(new MacAddress(rs.getLong(colIdx++))); - // macAddressString here does not need to map again to ClientSession Object - colIdx++; - - //TODO: add columns from properties ClientSession in here. - //make sure order of fields is the same as defined in ClientSession - clientSession.setCustomerId(rs.getInt(colIdx++)); - clientSession.setEquipmentId(rs.getLong(colIdx++)); - clientSession.setLocationId(rs.getLong(colIdx++)); - - byte[] zippedBytes = rs.getBytes(colIdx++); - if (zippedBytes !=null) { - try { - ClientSessionDetails details = BaseJsonModel.fromZippedBytes(zippedBytes, ClientSessionDetails.class); - clientSession.setDetails(details); - } catch (RuntimeException exp) { - LOG.error("Failed to decode ClientSessionDetails from database for id {} {} {}", clientSession.getCustomerId(), clientSession.getEquipmentId(), clientSession.getMacAddress()); - } - } - - clientSession.setLastModifiedTimestamp(rs.getLong(colIdx++)); - - return clientSession; - } -} \ No newline at end of file diff --git a/client-datastore-rdbms/src/main/resources/client-ds.properties b/client-datastore-rdbms/src/main/resources/client-ds.properties deleted file mode 100644 index e69de29b..00000000 diff --git a/client-datastore-rdbms/src/main/resources/schema-postgresql.sql b/client-datastore-rdbms/src/main/resources/schema-postgresql.sql deleted file mode 100644 index ddd7d49a..00000000 --- a/client-datastore-rdbms/src/main/resources/schema-postgresql.sql +++ /dev/null @@ -1,50 +0,0 @@ -create table if not exists client ( - -- postgresql - macAddress bigint , - macAddressString varchar(100) , - - customerId int, - details bytea, - - createdTimestamp bigint not null, - lastModifiedTimestamp bigint not null, - - primary key (customerId, macAddress) -); - -alter table client add column if not exists macAddressString varchar(100); - -create index if not exists idx_client_customerId on client (customerId); -create index if not exists idx_client_customerId_macAddressString on client (customerId, macAddressString); - -create table if not exists client_blocklist ( - -- postgresql - customerId int, - macAddress bigint , - - primary key (customerId, macAddress), - FOREIGN KEY (customerId, macAddress) REFERENCES client(customerId, macAddress) ON DELETE CASCADE -); - -create table if not exists client_session ( - -- postgresql - macAddress bigint , - macAddressString varchar(100) , - - customerId int, - equipmentId bigint, - locationId bigint, - details bytea, - - lastModifiedTimestamp bigint not null, - - primary key (customerId, equipmentId, macAddress) -); - -alter table client_session add column if not exists macAddressString varchar(100); - -create index if not exists idx_clientSession_customerId on client_session (customerId); -create index if not exists idx_clientSession_locationId on client_session (customerId, locationId); -create index if not exists idx_clientSession_customerId_macAddressString on client_session (customerId, macAddressString); - - diff --git a/client-datastore-rdbms/src/test/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbmsPlumbingTests.java b/client-datastore-rdbms/src/test/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbmsPlumbingTests.java deleted file mode 100644 index e22157e2..00000000 --- a/client-datastore-rdbms/src/test/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbmsPlumbingTests.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Import; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; - -import com.telecominfraproject.wlan.client.models.Client; -import com.telecominfraproject.wlan.core.model.equipment.MacAddress; -import com.telecominfraproject.wlan.core.server.jdbc.test.BaseJdbcTest; -import com.telecominfraproject.wlan.core.server.jdbc.test.TestWithEmbeddedDB; - -/** - * @author dtoptygin - * - */ -@Import(value = { - ClientDatastoreRdbms.class, - ClientDataSourceConfig.class, - ClientDAO.class, - ClientSessionDAO.class, - BaseJdbcTest.Config.class - }) -@TestWithEmbeddedDB -public class ClientDatastoreRdbmsPlumbingTests extends BaseJdbcTest { - - @Autowired(required=false) private EmbeddedDatabase db; - @Autowired private ClientDatastoreRdbms clientDatastore; - @Autowired private ClientDAO clientDAO; - - - @Before - public void setUp() { - } - - @Test - public void testDataAccess() { - if(db!=null){ - //this is a simple test to see if embedded db is working in test environment - JdbcTemplate jdbcTemplate = new JdbcTemplate(db); - Long ret = jdbcTemplate.queryForObject( - "select macAddress from client where customerId = ? and macAddress = ?", - Long.class, 1, 1); - - assertEquals((Long)1L, ret); - } - } - - - @Test - public void testCreateUpdateDeleteClient() { - - //GET by Id test - Client ret = clientDatastore.getOrNull(1, new MacAddress(1L)); - - //DELETE Test - clientDAO.delete(ret.getCustomerId(), ret.getMacAddress()); - - assertNull(clientDatastore.getOrNull(ret.getCustomerId(), ret.getMacAddress())); - - } - -} diff --git a/client-datastore-rdbms/src/test/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbmsTests.java b/client-datastore-rdbms/src/test/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbmsTests.java deleted file mode 100644 index 2ac2906f..00000000 --- a/client-datastore-rdbms/src/test/java/com/telecominfraproject/wlan/client/datastore/rdbms/ClientDatastoreRdbmsTests.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.telecominfraproject.wlan.client.datastore.rdbms; - -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.context.annotation.Import; -import org.springframework.test.annotation.Rollback; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.transaction.annotation.Transactional; - -import com.telecominfraproject.wlan.core.server.jdbc.test.BaseJdbcTest; -import com.telecominfraproject.wlan.core.server.jdbc.test.TestWithEmbeddedDB; - -import com.telecominfraproject.wlan.client.datastore.BaseClientDatastoreTest; - -/** - * @author dtoptygin - * - */ -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = BaseJdbcTest.Config.class) -@Rollback(value = true) -@Transactional -@Import(value = { ClientDatastoreRdbms.class, ClientDataSourceConfig.class, - ClientDAO.class, ClientSessionDAO.class, BaseJdbcTest.Config.class }) -@TestWithEmbeddedDB -public class ClientDatastoreRdbmsTests extends BaseClientDatastoreTest { - -} diff --git a/client-datastore-rdbms/src/test/resources/logback-test.xml b/client-datastore-rdbms/src/test/resources/logback-test.xml deleted file mode 100644 index 362e63a9..00000000 --- a/client-datastore-rdbms/src/test/resources/logback-test.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%filteredStack%nopex - - - - - - - - - - - - - - - - - - - - - diff --git a/client-datastore-rdbms/src/test/resources/schema-hsqldb-test.sql b/client-datastore-rdbms/src/test/resources/schema-hsqldb-test.sql deleted file mode 100644 index f5d98d21..00000000 --- a/client-datastore-rdbms/src/test/resources/schema-hsqldb-test.sql +++ /dev/null @@ -1,49 +0,0 @@ -drop table client if exists; -drop table client_session if exists; - -create table client ( - -- hsqldb - macAddress bigint, - macAddressString varchar(100), - - customerId int, - details varbinary(65535), - - createdTimestamp bigint not null, - lastModifiedTimestamp bigint not null, - - primary key (customerId, macAddress) -); - -create index idx_client_customerId on client (customerId); -create index if not exists idx_client_customerId_macAddressString on client (customerId, macAddressString); - -create table if not exists client_blocklist ( - -- hsqldb - customerId int, - macAddress bigint , - - primary key (customerId, macAddress), - FOREIGN KEY (customerId, macAddress) REFERENCES client(customerId, macAddress) ON DELETE CASCADE -); - -create table client_session ( - -- postgresql - macAddress bigint , - macAddressString varchar(100), - - customerId int, - equipmentId bigint, - locationId bigint, - details varbinary(65535), - - lastModifiedTimestamp bigint not null, - - primary key (customerId, equipmentId, macAddress) -); - -create index idx_clientSession_customerId on client_session (customerId); -create index idx_clientSession_locationId on client_session (customerId, locationId); -create index if not exists idx_clientSession_customerId_macAddressString on client_session (customerId, macAddressString); - - diff --git a/client-datastore-rdbms/src/test/resources/test-data.sql b/client-datastore-rdbms/src/test/resources/test-data.sql deleted file mode 100644 index becc6ac6..00000000 --- a/client-datastore-rdbms/src/test/resources/test-data.sql +++ /dev/null @@ -1,14 +0,0 @@ -insert into client ( - macAddress, - macAddressString, - customerId, - details, - createdTimestamp, - lastModifiedTimestamp -) values ( - 1, - '1', - 1, - null, - 0,0 -); diff --git a/client-models/.gitignore b/client-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-service-interface/.gitignore b/client-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-service-local/.gitignore b/client-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-service-remote/.gitignore b/client-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/client-service/.gitignore b/client-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/client-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/cloud-event-dispatcher-empty/.gitignore b/cloud-event-dispatcher-empty/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/cloud-event-dispatcher-empty/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/cloud-event-dispatcher-interface/.gitignore b/cloud-event-dispatcher-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/cloud-event-dispatcher-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/cloud-event-dispatcher-local/.gitignore b/cloud-event-dispatcher-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/cloud-event-dispatcher-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/cloud-event-dispatcher-remote/.gitignore b/cloud-event-dispatcher-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/cloud-event-dispatcher-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/cloud-event-dispatcher/.gitignore b/cloud-event-dispatcher/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/cloud-event-dispatcher/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/cloud-services-build/pom.xml b/cloud-services-build/pom.xml index 7429a124..fc39adc2 100644 --- a/cloud-services-build/pom.xml +++ b/cloud-services-build/pom.xml @@ -136,7 +136,6 @@ ../client-datastore-common-test ../client-datastore-inmemory ../client-datastore-interface - ../client-datastore-rdbms ../client-datastore-cassandra ../client-models ../client-service diff --git a/customer-datastore-common-test/.gitignore b/customer-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-datastore-inmemory/.gitignore b/customer-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-datastore-interface/.gitignore b/customer-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-datastore-rdbms/.gitignore b/customer-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-models/.gitignore b/customer-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-service-interface/.gitignore b/customer-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-service-local/.gitignore b/customer-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-service-remote/.gitignore b/customer-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/customer-service/.gitignore b/customer-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/customer-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/dashboard-sp/.gitignore b/dashboard-sp/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/dashboard-sp/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-alarms-sp/.gitignore b/equipment-alarms-sp/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-alarms-sp/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-datastore-common-test/.gitignore b/equipment-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-datastore-inmemory/.gitignore b/equipment-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-datastore-interface/.gitignore b/equipment-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-datastore-rdbms/.gitignore b/equipment-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-gateway-models/.gitignore b/equipment-gateway-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-gateway-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-gateway-service-empty/.gitignore b/equipment-gateway-service-empty/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-gateway-service-empty/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-gateway-service-interface/.gitignore b/equipment-gateway-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-gateway-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-gateway-service-local/.gitignore b/equipment-gateway-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-gateway-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-gateway-service-remote/.gitignore b/equipment-gateway-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-gateway-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-models/.gitignore b/equipment-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-service-interface/.gitignore b/equipment-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-service-local/.gitignore b/equipment-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-service-remote/.gitignore b/equipment-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/equipment-service/.gitignore b/equipment-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/equipment-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/filestore-service/.gitignore b/filestore-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/filestore-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-datastore-common-test/.gitignore b/firmware-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-datastore-inmemory/.gitignore b/firmware-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-datastore-interface/.gitignore b/firmware-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-datastore-rdbms/.gitignore b/firmware-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-models/.gitignore b/firmware-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-service-interface/.gitignore b/firmware-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-service-local/.gitignore b/firmware-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-service-remote/.gitignore b/firmware-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/firmware-service/.gitignore b/firmware-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/firmware-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/kafka-streams-consumer/.gitignore b/kafka-streams-consumer/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/kafka-streams-consumer/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/kafka-streams/.gitignore b/kafka-streams/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/kafka-streams/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-datastore-common-test/.gitignore b/location-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-datastore-inmemory/.gitignore b/location-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-datastore-interface/.gitignore b/location-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-datastore-rdbms/.gitignore b/location-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-models/.gitignore b/location-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-service-interface/.gitignore b/location-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-service-local/.gitignore b/location-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-service-remote/.gitignore b/location-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/location-service/.gitignore b/location-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/location-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-datastore-common-test/.gitignore b/manufacturer-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-datastore-inmemory/.gitignore b/manufacturer-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-datastore-interface/.gitignore b/manufacturer-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-datastore-rdbms/.gitignore b/manufacturer-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-models/.gitignore b/manufacturer-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-service-interface/.gitignore b/manufacturer-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-service-local/.gitignore b/manufacturer-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-service-remote/.gitignore b/manufacturer-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/manufacturer-service/.gitignore b/manufacturer-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/manufacturer-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/port-forwarding-gateway-interface/.gitignore b/port-forwarding-gateway-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/port-forwarding-gateway-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/port-forwarding-gateway-local/.gitignore b/port-forwarding-gateway-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/port-forwarding-gateway-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/port-forwarding-gateway-process/.gitignore b/port-forwarding-gateway-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/port-forwarding-gateway-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/port-forwarding-gateway-remote/.gitignore b/port-forwarding-gateway-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/port-forwarding-gateway-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/port-forwarding-gateway/.gitignore b/port-forwarding-gateway/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/port-forwarding-gateway/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-process/.gitignore b/portal-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-services/.gitignore b/portal-services/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-services/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-datastore-common-test/.gitignore b/portal-user-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-datastore-inmemory/.gitignore b/portal-user-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-datastore-interface/.gitignore b/portal-user-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-datastore-rdbms/.gitignore b/portal-user-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-models/.gitignore b/portal-user-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-service-interface/.gitignore b/portal-user-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-service-local/.gitignore b/portal-user-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-service-remote/.gitignore b/portal-user-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/portal-user-service/.gitignore b/portal-user-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/portal-user-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-datastore-common-test/.gitignore b/profile-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-datastore-inmemory/.gitignore b/profile-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-datastore-interface/.gitignore b/profile-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-datastore-rdbms/.gitignore b/profile-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-models/.gitignore b/profile-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-service-interface/.gitignore b/profile-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-service-local/.gitignore b/profile-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-service-remote/.gitignore b/profile-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/profile-service/.gitignore b/profile-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/profile-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/prov-process/.gitignore b/prov-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/prov-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/provisioning-sp/.gitignore b/provisioning-sp/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/provisioning-sp/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-datastore-cassandra/.gitignore b/routing-datastore-cassandra/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-datastore-cassandra/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-datastore-common-test/.gitignore b/routing-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-datastore-inmemory/.gitignore b/routing-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-datastore-interface/.gitignore b/routing-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-datastore-rdbms/.gitignore b/routing-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-models/.gitignore b/routing-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-service-interface/.gitignore b/routing-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-service-local/.gitignore b/routing-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-service-remote/.gitignore b/routing-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/routing-service/.gitignore b/routing-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/routing-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/schema-generator/.gitignore b/schema-generator/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/schema-generator/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-datastore-cassandra/.gitignore b/service-metric-datastore-cassandra/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-datastore-cassandra/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-datastore-common-test/.gitignore b/service-metric-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-datastore-inmemory/.gitignore b/service-metric-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-datastore-interface/.gitignore b/service-metric-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-datastore-rdbms/.gitignore b/service-metric-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-models/.gitignore b/service-metric-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-service-interface/.gitignore b/service-metric-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-service-local/.gitignore b/service-metric-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-service-remote/.gitignore b/service-metric-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/service-metric-service/.gitignore b/service-metric-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/service-metric-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/single-process-streams/.gitignore b/single-process-streams/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/single-process-streams/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/spc-process/.gitignore b/spc-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/spc-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/ssc-process/.gitignore b/ssc-process/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/ssc-process/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-datastore-cassandra/.gitignore b/status-datastore-cassandra/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-datastore-cassandra/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-datastore-common-test/.gitignore b/status-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-datastore-inmemory/.gitignore b/status-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-datastore-interface/.gitignore b/status-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-datastore-rdbms/.gitignore b/status-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-models/.gitignore b/status-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-service-interface/.gitignore b/status-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-service-local/.gitignore b/status-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-service-remote/.gitignore b/status-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/status-service/.gitignore b/status-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/status-service/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-datastore-cassandra/.gitignore b/system-event-datastore-cassandra/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-datastore-cassandra/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-datastore-common-test/.gitignore b/system-event-datastore-common-test/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-datastore-common-test/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-datastore-inmemory/.gitignore b/system-event-datastore-inmemory/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-datastore-inmemory/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-datastore-interface/.gitignore b/system-event-datastore-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-datastore-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-datastore-rdbms/.gitignore b/system-event-datastore-rdbms/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-datastore-rdbms/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-models/.gitignore b/system-event-models/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-models/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-service-interface/.gitignore b/system-event-service-interface/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-service-interface/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-service-local/.gitignore b/system-event-service-local/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-service-local/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-service-remote/.gitignore b/system-event-service-remote/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-service-remote/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/system-event-service/.gitignore b/system-event-service/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/system-event-service/.gitignore @@ -0,0 +1 @@ +/target/