Search in sources :

Example 6 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperDAOTest method testUpdateMapper_serializade.

@Test
public void testUpdateMapper_serializade() {
    // create a mapper
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    PersistentMapper sMapper = new PersistentMapper("mapper-to-persist-bis");
    PersistedMapper pMapper = mapperDao.persistMapper(sessionId, mapperId, sMapper, -1);
    Assert.assertNotNull(pMapper);
    dbInstance.commitAndCloseSession();
    // load the mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    Object objReloaded = XStreamHelper.createXStreamInstance().fromXML(pMapper.getXmlConfiguration());
    Assert.assertTrue(objReloaded instanceof PersistentMapper);
    PersistentMapper sMapperReloaded = (PersistentMapper) objReloaded;
    Assert.assertEquals("mapper-to-persist-bis", sMapperReloaded.getKey());
    // update
    PersistentMapper sMapper2 = new PersistentMapper("mapper-to-update");
    boolean updated = mapperDao.updateConfiguration(mapperId, sMapper2, -1);
    Assert.assertTrue(updated);
    dbInstance.commitAndCloseSession();
    // load the updated mapper
    PersistedMapper loadedMapper2 = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper2);
    Object objReloaded2 = XStreamHelper.createXStreamInstance().fromXML(loadedMapper2.getXmlConfiguration());
    Assert.assertTrue(objReloaded2 instanceof PersistentMapper);
    PersistentMapper sMapperReloaded2 = (PersistentMapper) objReloaded2;
    Assert.assertEquals("mapper-to-update", sMapperReloaded2.getKey());
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 7 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperDAO method persistMapper.

/**
 * Persist a mapper on the database.
 *
 * @param sessionId The HTTP session id
 * @param mapperId The unique id of the mapper
 * @param mapper The mapper (serializable)
 * @param expirationTime The expiration time in seconds
 * @return
 */
public PersistedMapper persistMapper(String sessionId, String mapperId, Serializable mapper, int expirationTime) {
    PersistedMapper m = new PersistedMapper();
    m.setMapperId(mapperId);
    Date currentDate = new Date();
    m.setLastModified(currentDate);
    if (expirationTime > 0) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(currentDate);
        cal.add(Calendar.SECOND, expirationTime);
        m.setExpirationDate(cal.getTime());
    }
    m.setOriginalSessionId(sessionId);
    String configuration = XStreamHelper.createXStreamInstance().toXML(mapper);
    m.setXmlConfiguration(configuration);
    dbInstance.getCurrentEntityManager().persist(m);
    return m;
}
Also used : Calendar(java.util.Calendar) Date(java.util.Date) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper)

Example 8 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project OpenOLAT by OpenOLAT.

the class MapperDAOTest method testUpdateMapper_serializade_withExpirationDate.

@Test
public void testUpdateMapper_serializade_withExpirationDate() {
    // create a mapper
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    PersistentMapper sMapper = new PersistentMapper("mapper-to-persist-until");
    PersistedMapper pMapper = mapperDao.persistMapper(sessionId, mapperId, sMapper, 60000);
    Assert.assertNotNull(pMapper);
    dbInstance.commitAndCloseSession();
    // load the mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    Object objReloaded = XStreamHelper.createXStreamInstance().fromXML(pMapper.getXmlConfiguration());
    Assert.assertTrue(objReloaded instanceof PersistentMapper);
    PersistentMapper sMapperReloaded = (PersistentMapper) objReloaded;
    Assert.assertEquals("mapper-to-persist-until", sMapperReloaded.getKey());
    Assert.assertNotNull(loadedMapper.getExpirationDate());
    // update
    PersistentMapper sMapper2 = new PersistentMapper("mapper-to-update-until");
    boolean updated = mapperDao.updateConfiguration(mapperId, sMapper2, 120000);
    Assert.assertTrue(updated);
    dbInstance.commitAndCloseSession();
    // load the updated mapper
    PersistedMapper loadedMapper2 = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper2);
    Object objReloaded2 = XStreamHelper.createXStreamInstance().fromXML(loadedMapper2.getXmlConfiguration());
    Assert.assertTrue(objReloaded2 instanceof PersistentMapper);
    PersistentMapper sMapperReloaded2 = (PersistentMapper) objReloaded2;
    Assert.assertEquals("mapper-to-update-until", sMapperReloaded2.getKey());
    Assert.assertNotNull(loadedMapper2.getExpirationDate());
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 9 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project OpenOLAT by OpenOLAT.

the class MapperDAOTest method testUpdateMapper_serializade.

@Test
public void testUpdateMapper_serializade() {
    // create a mapper
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    PersistentMapper sMapper = new PersistentMapper("mapper-to-persist-bis");
    PersistedMapper pMapper = mapperDao.persistMapper(sessionId, mapperId, sMapper, -1);
    Assert.assertNotNull(pMapper);
    dbInstance.commitAndCloseSession();
    // load the mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    Object objReloaded = XStreamHelper.createXStreamInstance().fromXML(pMapper.getXmlConfiguration());
    Assert.assertTrue(objReloaded instanceof PersistentMapper);
    PersistentMapper sMapperReloaded = (PersistentMapper) objReloaded;
    Assert.assertEquals("mapper-to-persist-bis", sMapperReloaded.getKey());
    // update
    PersistentMapper sMapper2 = new PersistentMapper("mapper-to-update");
    boolean updated = mapperDao.updateConfiguration(mapperId, sMapper2, -1);
    Assert.assertTrue(updated);
    dbInstance.commitAndCloseSession();
    // load the updated mapper
    PersistedMapper loadedMapper2 = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper2);
    Object objReloaded2 = XStreamHelper.createXStreamInstance().fromXML(loadedMapper2.getXmlConfiguration());
    Assert.assertTrue(objReloaded2 instanceof PersistentMapper);
    PersistentMapper sMapperReloaded2 = (PersistentMapper) objReloaded2;
    Assert.assertEquals("mapper-to-update", sMapperReloaded2.getKey());
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 10 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project OpenOLAT by OpenOLAT.

the class MapperDAOTest method testDeleteMapperByMapper_expirationDate.

@Test
public void testDeleteMapperByMapper_expirationDate() throws Exception {
    // create mappers
    String mapperIdToDeleteShortLived = UUID.randomUUID().toString();
    String sessionId1 = UUID.randomUUID().toString().substring(0, 32);
    mapperDao.persistMapper(sessionId1, mapperIdToDeleteShortLived, null, 1);
    String mapperIdToDeleteLongLived = UUID.randomUUID().toString();
    String sessionId2 = UUID.randomUUID().toString().substring(0, 32);
    mapperDao.persistMapper(sessionId2, mapperIdToDeleteLongLived, null, 10000);
    dbInstance.commitAndCloseSession();
    Calendar cal = Calendar.getInstance();
    Thread.sleep(5000);
    // create a new mapper
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    mapperDao.persistMapper(sessionId, mapperId, null, -1);
    dbInstance.commitAndCloseSession();
    // delete old mappers
    cal.add(Calendar.SECOND, 3);
    int numOfDeletedRow = mapperDao.deleteMapperByDate(cal.getTime());
    Assert.assertTrue(numOfDeletedRow >= 1);
    // load the last mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    // try to load the short lived mapper
    PersistedMapper deletedMapper = mapperDao.loadByMapperId(mapperIdToDeleteShortLived);
    Assert.assertNull(deletedMapper);
    // try to load the long lived mapper
    PersistedMapper survivorMapper = mapperDao.loadByMapperId(mapperIdToDeleteLongLived);
    Assert.assertNotNull(survivorMapper);
}
Also used : Calendar(java.util.Calendar) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Aggregations

PersistedMapper (org.olat.core.dispatcher.mapper.model.PersistedMapper)20 Test (org.junit.Test)14 Calendar (java.util.Calendar)6 Serializable (java.io.Serializable)2 Date (java.util.Date)2 Mapper (org.olat.core.dispatcher.mapper.Mapper)2