Search in sources :

Example 11 with PersistedMapper

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

the class MapperDAOTest method testCreateMapper.

@Test
public void testCreateMapper() {
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    PersistentMapper mapper = new PersistentMapper(mapperId);
    PersistedMapper pMapper = mapperDao.persistMapper(sessionId, mapperId, mapper, -1);
    Assert.assertNotNull(pMapper);
    Assert.assertNotNull(pMapper.getKey());
    Assert.assertNotNull(pMapper.getCreationDate());
    Assert.assertNotNull(pMapper.getXmlConfiguration());
    Assert.assertEquals(mapperId, pMapper.getMapperId());
    Assert.assertEquals(sessionId, pMapper.getOriginalSessionId());
    dbInstance.commit();
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 12 with PersistedMapper

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

the class MapperDAOTest method testDeleteMapperByMapper.

@Test
public void testDeleteMapperByMapper() throws Exception {
    // create mappers
    String mapperIdToDelete = null;
    for (int i = 0; i < 10; i++) {
        mapperIdToDelete = UUID.randomUUID().toString();
        String sessionId = UUID.randomUUID().toString().substring(0, 32);
        mapperDao.persistMapper(sessionId, mapperIdToDelete, null, -1);
    }
    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 >= 10);
    // load the last mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    // try to load a deleted mapper
    PersistedMapper deletedMapper = mapperDao.loadByMapperId(mapperIdToDelete);
    Assert.assertNull(deletedMapper);
}
Also used : Calendar(java.util.Calendar) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 13 with PersistedMapper

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

the class MapperDAOTest method testLoadMapper_serializade.

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

Example 14 with PersistedMapper

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

the class MapperServiceImpl method register.

@Override
public MapperKey register(UserSession session, String mapperId, Mapper mapper, int expirationTime) {
    String encryptedMapId = Encoder.md5hash(mapperId);
    MapperKey mapperKey = new MapperKey(session, encryptedMapId);
    boolean alreadyLoaded = mapperKeyToMapper.containsKey(mapperKey);
    if (mapper instanceof Serializable) {
        if (alreadyLoaded) {
            if (!mapperDao.updateConfiguration(encryptedMapId, (Serializable) mapper, expirationTime)) {
                mapperDao.persistMapper(null, encryptedMapId, (Serializable) mapper, expirationTime);
            }
        } else {
            PersistedMapper persistedMapper = mapperDao.loadByMapperId(encryptedMapId);
            if (persistedMapper == null) {
                mapperDao.persistMapper(null, encryptedMapId, (Serializable) mapper, expirationTime);
            } else {
                mapperDao.updateConfiguration(encryptedMapId, (Serializable) mapper, expirationTime);
            }
        }
    }
    mapperKeyToMapper.put(mapperKey, mapper);
    mapperKey.setUrl(WebappHelper.getServletContextPath() + DispatcherModule.PATH_MAPPED + encryptedMapId);
    return mapperKey;
}
Also used : Serializable(java.io.Serializable) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper)

Example 15 with PersistedMapper

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

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)

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