Skip to content
Snippets Groups Projects
Commit f463306b authored by juanf's avatar juanf
Browse files

SSDM-3597 : Missing Lucene reindexing, project and datasets

SVN: 36507
parent ef9b7c46
No related branches found
No related tags found
No related merge requests found
...@@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.IDataStoreServiceFactory ...@@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.IDataStoreServiceFactory
import ch.systemsx.cisd.openbis.generic.server.business.IRelationshipService; import ch.systemsx.cisd.openbis.generic.server.business.IRelationshipService;
import ch.systemsx.cisd.openbis.generic.server.business.bo.util.DataSetTypeWithoutExperimentChecker; import ch.systemsx.cisd.openbis.generic.server.business.bo.util.DataSetTypeWithoutExperimentChecker;
import ch.systemsx.cisd.openbis.generic.server.business.bo.util.SampleUtils; import ch.systemsx.cisd.openbis.generic.server.business.bo.util.SampleUtils;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.DynamicPropertyEvaluationOperation;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.EntityPropertiesConverter; import ch.systemsx.cisd.openbis.generic.server.dataaccess.EntityPropertiesConverter;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IAttachmentDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IAttachmentDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IAuthorizationGroupDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IAuthorizationGroupDAO;
...@@ -47,6 +48,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO; ...@@ -47,6 +48,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSetTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSetTypeDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDynamicPropertyEvaluationScheduler;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityHistoryDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityHistoryDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityOperationsLogDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityOperationsLogDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityPropertiesConverter; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityPropertiesConverter;
...@@ -82,6 +84,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ICodeSequenceDAO; ...@@ -82,6 +84,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ICodeSequenceDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.IPermIdDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.IPermIdDAO;
import ch.systemsx.cisd.openbis.generic.server.util.SpaceIdentifierHelper; import ch.systemsx.cisd.openbis.generic.server.util.SpaceIdentifierHelper;
import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService; import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService;
import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Identifier; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Identifier;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
...@@ -92,6 +95,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE; ...@@ -92,6 +95,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.EntityPropertyPE; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityPropertyPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityInformationWithPropertiesHolder;
import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityPropertiesHolder; import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityPropertiesHolder;
import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityWithMetaprojects; import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityWithMetaprojects;
import ch.systemsx.cisd.openbis.generic.shared.dto.IModifierAndModificationDateBean; import ch.systemsx.cisd.openbis.generic.shared.dto.IModifierAndModificationDateBean;
...@@ -833,5 +837,24 @@ abstract class AbstractBusinessObject implements IDAOFactory ...@@ -833,5 +837,24 @@ abstract class AbstractBusinessObject implements IDAOFactory
assignmentManager.assignDataSetAndRelatedComponents(data, newSample, experiment); assignmentManager.assignDataSetAndRelatedComponents(data, newSample, experiment);
assignmentManager.performAssignment(relationshipService, session); assignmentManager.performAssignment(relationshipService, session);
} }
protected <T extends IEntityInformationWithPropertiesHolder> void reindex(Class<T> objectClass, Collection<T> objects)
{
IDynamicPropertyEvaluationScheduler indexUpdater = daoFactory.getPersistencyResources().getDynamicPropertyEvaluationScheduler();
List<Long> objectIds = new ArrayList<Long>();
for (IIdHolder object : objects)
{
if (object != null && object.getId() != null)
{
objectIds.add(object.getId());
}
}
if (false == objectIds.isEmpty())
{
indexUpdater.scheduleUpdate(DynamicPropertyEvaluationOperation.evaluate(objectClass, objectIds));
}
}
} }
...@@ -334,6 +334,9 @@ public final class ProjectBO extends AbstractBusinessObject implements IProjectB ...@@ -334,6 +334,9 @@ public final class ProjectBO extends AbstractBusinessObject implements IProjectB
relationshipService.assignProjectToSpace(session, project, findGroup(groupCode)); relationshipService.assignProjectToSpace(session, project, findGroup(groupCode));
} }
dataChanged = true; dataChanged = true;
//Schedule projects experiments for index update, they require to update the Space on the index at least
reindex(ExperimentPE.class, project.getExperiments());
} }
private SpacePE findGroup(String groupCode) private SpacePE findGroup(String groupCode)
......
...@@ -1330,6 +1330,11 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple ...@@ -1330,6 +1330,11 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
flushWithSqlExceptionHandling(getHibernateTemplate()); flushWithSqlExceptionHandling(getHibernateTemplate());
scheduleDynamicPropertiesEvaluation(dataSets); scheduleDynamicPropertiesEvaluation(dataSets);
//Schedule contained datasets for index update, they also have the experiment and samples ids the index at least
for(DataPE dataSet:dataSets) {
scheduleDynamicPropertiesEvaluation(dataSet.getContainedDataSets());
}
// if session is not cleared registration of many samples slows down after each batch // if session is not cleared registration of many samples slows down after each batch
hibernateTemplate.clear(); hibernateTemplate.clear();
} }
...@@ -1340,6 +1345,9 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple ...@@ -1340,6 +1345,9 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
this.currentSession().flush(); this.currentSession().flush();
super.validateAndSaveUpdatedEntity(entity); super.validateAndSaveUpdatedEntity(entity);
scheduleDynamicPropertiesEvaluation(Arrays.asList(entity)); scheduleDynamicPropertiesEvaluation(Arrays.asList(entity));
//Schedule contained datasets for index update, they also have the experiment and samples ids the index at least
scheduleDynamicPropertiesEvaluation(entity.getContainedDataSets());
} }
@Override @Override
......
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