Skip to content
Snippets Groups Projects
Commit 1b4825a5 authored by cramakri's avatar cramakri
Browse files

BIS-146 SP-232 : Added support for * as a wildcard

SVN: 26353
parent 16fe55af
No related branches found
No related tags found
No related merge requests found
......@@ -421,28 +421,39 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements
return services;
}
private Set<DataSetTypePE> extractDatasetTypes(String[] datasetTypeCodes,
/**
* Find the data set type objects specified by the dataSetTypeCodes.
*
* @return A set of DataSetTypePE objects or null if all data set types are explicitly
* specified.
*/
private Set<DataSetTypePE> extractDatasetTypes(String[] dataSetTypeCodes,
DatastoreServiceDescription serviceDescription)
{
Set<DataSetTypePE> datasetTypes = new HashSet<DataSetTypePE>();
// "*" means accept all data set types
if (dataSetTypeCodes.length == 1 && "*".equals(dataSetTypeCodes[0]))
{
return null;
}
Set<DataSetTypePE> dataSetTypes = new HashSet<DataSetTypePE>();
Set<String> missingCodes = new HashSet<String>();
IDataSetTypeDAO dataSetTypeDAO = daoFactory.getDataSetTypeDAO();
for (String datasetTypeCode : datasetTypeCodes)
for (String dataSetTypeCode : dataSetTypeCodes)
{
DataSetTypePE datasetType = dataSetTypeDAO.tryToFindDataSetTypeByCode(datasetTypeCode);
DataSetTypePE datasetType = dataSetTypeDAO.tryToFindDataSetTypeByCode(dataSetTypeCode);
if (datasetType == null)
{
missingCodes.add(datasetTypeCode);
missingCodes.add(dataSetTypeCode);
} else
{
datasetTypes.add(datasetType);
dataSetTypes.add(datasetType);
}
}
if (missingCodes.size() > 0)
{
notifyDataStoreServerMisconfiguration(missingCodes, serviceDescription);
}
return datasetTypes;
return dataSetTypes;
}
private void notifyDataStoreServerMisconfiguration(Set<String> missingCodes,
......
......@@ -46,13 +46,9 @@ public final class DataStoreDAOTest extends AbstractDAOTest
public void testCreate()
{
DataStorePE dataStore = new DataStorePE();
dataStore.setDatabaseInstance(daoFactory.getHomeDatabaseInstance());
String code = DATA_STORE_CODE;
dataStore.setCode(code);
dataStore.setDownloadUrl(code);
dataStore.setRemoteUrl(code);
dataStore.setSessionToken(code);
dataStore.setServices(createDataStoreServices(code));
initializeDataStore(dataStore);
String code = dataStore.getCode();
dataStore.setServices(createDataStoreServices(code, getDataSetTypes()));
daoFactory.getDataStoreDAO().createOrUpdateDataStore(dataStore);
assertNotNull(dataStore.getId());
......@@ -60,25 +56,49 @@ public final class DataStoreDAOTest extends AbstractDAOTest
AssertJUnit.assertEquals(dataStore, store);
// check if changing the registered services does not fail when the result of this test
// method will be commited
dataStore.setServices(createDataStoreServices("another"));
dataStore.setServices(createDataStoreServices("another", getDataSetTypes()));
daoFactory.getDataStoreDAO().createOrUpdateDataStore(dataStore);
dataStore.setServices(new HashSet<DataStoreServicePE>()); // delete all services
daoFactory.getDataStoreDAO().createOrUpdateDataStore(dataStore);
}
private Set<DataStoreServicePE> createDataStoreServices(String prefix)
protected void initializeDataStore(DataStorePE dataStore)
{
dataStore.setDatabaseInstance(daoFactory.getHomeDatabaseInstance());
String code = DATA_STORE_CODE;
dataStore.setCode(code);
dataStore.setDownloadUrl(code);
dataStore.setRemoteUrl(code);
dataStore.setSessionToken(code);
}
@Test
public void testCreateFotAllDataSetTypes()
{
DataStorePE dataStore = new DataStorePE();
initializeDataStore(dataStore);
String code = dataStore.getCode();
dataStore.setServices(createDataStoreServices(code, null));
daoFactory.getDataStoreDAO().createOrUpdateDataStore(dataStore);
assertNotNull(dataStore.getId());
DataStorePE store = daoFactory.getDataStoreDAO().tryToFindDataStoreByCode(code);
AssertJUnit.assertEquals(dataStore, store);
}
private Set<DataStoreServicePE> createDataStoreServices(String prefix,
Set<DataSetTypePE> dataSetTypes)
{
Set<DataStoreServicePE> services = new HashSet<DataStoreServicePE>();
DataStoreServicePE service;
for (int i = 0; i < 3; i++)
{
service = new DataStoreServicePE();
service.setKey(prefix + "_key_" + i);
service.setLabel("label");
service.setKind(DataStoreServiceKind.PROCESSING);
service.setDatasetTypes(getDataSetTypes());
service.setDatasetTypes(dataSetTypes);
service.setReportingPluginTypeOrNull(null);
services.add(service);
}
......@@ -89,7 +109,7 @@ public final class DataStoreDAOTest extends AbstractDAOTest
service.setKey(prefix + "_key_" + i++);
service.setLabel("label");
service.setKind(DataStoreServiceKind.QUERIES);
service.setDatasetTypes(getDataSetTypes());
service.setDatasetTypes(dataSetTypes);
service.setReportingPluginTypeOrNull(ReportingPluginType.TABLE_MODEL);
services.add(service);
......@@ -98,7 +118,7 @@ public final class DataStoreDAOTest extends AbstractDAOTest
service.setKey(prefix + "_key_" + i++);
service.setLabel("label");
service.setKind(DataStoreServiceKind.QUERIES);
service.setDatasetTypes(getDataSetTypes());
service.setDatasetTypes(dataSetTypes);
service.setReportingPluginTypeOrNull(ReportingPluginType.DSS_LINK);
services.add(service);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment