Example usage for org.apache.commons.lang LocaleUtils toLocale

List of usage examples for org.apache.commons.lang LocaleUtils toLocale

Introduction

In this page you can find the example usage for org.apache.commons.lang LocaleUtils toLocale.

Prototype

public static Locale toLocale(String str) 

Source Link

Document

Converts a String to a Locale.

This method takes the string format of a locale and creates the locale object from it.

 LocaleUtils.toLocale("en")         = new Locale("en", "") LocaleUtils.toLocale("en_GB")      = new Locale("en", "GB") LocaleUtils.toLocale("en_GB_xxx")  = new Locale("en", "GB", "xxx")   (#) 

(#) The behaviour of the JDK variant constructor changed between JDK1.3 and JDK1.4.

Usage

From source file:org.apereo.portal.portlet.container.PortletResourceResponseContextImpl.java

/**
 * Handles resource response specific headers. Returns true if the header was consumed by this method and requires no further processing
 * /*from w  w w.  ja v a2s . c  o  m*/
 * @return
 */
protected boolean handleResourceHeader(String key, String value) {
    if (ResourceResponse.HTTP_STATUS_CODE.equals(key)) {
        this.portletResourceOutputHandler.setStatus(Integer.parseInt(value));
        return true;
    }
    if ("Content-Type".equals(key)) {
        final ContentType contentType = ContentType.parse(value);
        final Charset charset = contentType.getCharset();
        if (charset != null) {
            this.portletResourceOutputHandler.setCharacterEncoding(charset.name());
        }
        this.portletResourceOutputHandler.setContentType(contentType.getMimeType());
        return true;
    }
    if ("Content-Length".equals(key)) {
        this.portletResourceOutputHandler.setContentLength(Integer.parseInt(value));
        return true;
    }
    if ("Content-Language".equals(key)) {
        final HeaderElement[] parts = BasicHeaderValueParser.parseElements(value, null);
        if (parts.length > 0) {
            final String localeStr = parts[0].getValue();
            final Locale locale = LocaleUtils.toLocale(localeStr);
            this.portletResourceOutputHandler.setLocale(locale);
            return true;
        }
    }

    return false;
}

From source file:org.atomserver.core.dbstore.dao.BatchEntriesDAOTest.java

public void testSelectBatch() throws Exception {
    // COUNT//  w  ww.  jav a2s  .c om
    BaseServiceDescriptor serviceDescriptor = new BaseServiceDescriptor(workspace);
    int startCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("startCount = " + startCount);

    String workspace = "widgets";
    String sysId = "acme";
    int propIdSeed = 72910;
    Locale locale = LocaleUtils.toLocale("en_US");

    // INSERT 
    List<EntryDescriptor> entryQueriesAll = new ArrayList<EntryDescriptor>();
    List<EntryDescriptor> entryQueriesSome = new ArrayList<EntryDescriptor>();
    int numRecs = 12;
    int knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        EntryMetaData entryIn = new EntryMetaData();
        entryIn.setWorkspace(workspace);
        entryIn.setCollection(sysId);
        entryIn.setLocale(locale);

        knt++;
        String propId = "" + (propIdSeed + knt);
        entryIn.setEntryId(propId);

        IRI iri = IRI.create(
                "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

        entryQueriesAll.add(entryTarget);
        if ((ii % 2) == 0)
            entryQueriesSome.add(entryTarget);

        entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
        entriesDAO.insertEntry(entryIn);
    }

    // Batch SELECTs
    List selectList = entriesDAO.selectEntryBatch(entryQueriesAll);
    log.debug("selectList = " + selectList);
    assertNotNull(selectList);
    assertEquals(numRecs, selectList.size());

    selectList = entriesDAO.selectEntryBatch(entryQueriesSome);
    log.debug("selectList = " + selectList);
    assertNotNull(selectList);
    assertEquals(entryQueriesSome.size(), selectList.size());

    // Let's add some unknown entries (as if they were INSERT candidates)        
    knt = 0;
    List<EntryDescriptor> entryQueriesWithMissing = new ArrayList<EntryDescriptor>();
    for (int ii = 0; ii < numRecs; ii++) {
        EntryMetaData entryIn = new EntryMetaData();
        entryIn.setWorkspace(workspace);
        entryIn.setCollection(sysId);
        entryIn.setLocale(locale);

        knt++;
        int ipropId = propIdSeed + knt;
        if ((ii % 2) == 0)
            ipropId += 100;
        String propId = "" + ipropId;

        entryIn.setEntryId(propId);

        IRI iri = IRI.create(
                "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

        entryQueriesWithMissing.add(entryTarget);
    }
    selectList = entriesDAO.selectEntryBatch(entryQueriesWithMissing);
    log.debug("selectList = " + selectList);
    assertNotNull(selectList);
    assertEquals(numRecs / 2, selectList.size());

    // DELETE them all for real
    knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        knt++;
        String propId = "" + (propIdSeed + knt);
        IRI iri = IRI.create(
                "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
        entriesDAO.obliterateEntry(entryTarget);
    }

    // COUNT
    Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up
    int finalCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("finalCount = " + finalCount);
    assertEquals(startCount, finalCount);
}

From source file:org.atomserver.core.dbstore.dao.BatchEntriesDAOTest.java

public void testCRUDBatch() throws Exception {
    // COUNT//w w w .  j  a va  2  s . c om
    BaseServiceDescriptor serviceDescriptor = new BaseServiceDescriptor(workspace);
    int startCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("startCount = " + startCount);

    String workspace = "widgets";
    String sysId = "acme";
    int propIdSeed = 12540;
    Locale locale = LocaleUtils.toLocale("en_US");

    // INSERT 
    List<EntryDescriptor> entryURIDatas = new ArrayList<EntryDescriptor>();
    int numRecs = 12;
    int knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        knt++;
        String propId = "" + (propIdSeed + knt);

        IRI iri = IRI.create(
                "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
        entryURIDatas.add(entryTarget);
    }

    // Batch INSERT
    int numOpOn = entriesDAO.insertEntryBatch(workspace, entryURIDatas);
    assertEquals(numRecs, numOpOn);

    // Batch SELECT
    List selectList = entriesDAO.selectEntryBatch(entryURIDatas);
    log.debug("selectList = " + selectList);
    assertNotNull(selectList);
    assertEquals(numRecs, selectList.size());

    Date lastModified = null;
    Date published = null;
    long seqNum = 0L;
    entryURIDatas = new ArrayList<EntryDescriptor>();
    for (Object obj : selectList) {
        EntryMetaData entryOut = (EntryMetaData) obj;
        assertEquals(entryOut.getWorkspace(), workspace);
        assertEquals(entryOut.getCollection(), sysId);
        assertEquals(entryOut.getLocale(), locale);
        int id = Integer.valueOf(entryOut.getEntryId());
        assertTrue(id >= (propIdSeed + 1) && id <= (propIdSeed + numRecs));
        assertEquals(entryOut.getRevision(), 0);
        assertEquals(entryOut.getDeleted(), false);

        if (lastModified != null) {
            assertTrue(lastModified.compareTo(entryOut.getUpdatedDate()) <= 0);
        }
        lastModified = entryOut.getUpdatedDate();

        if (published != null) {
            assertTrue(published.compareTo(entryOut.getPublishedDate()) <= 0);
        }
        published = entryOut.getPublishedDate();

        log.debug("seqNum= " + seqNum + " entryOut.getUpdateTimestamp()= " + entryOut.getUpdateTimestamp());

        assertTrue(seqNum < entryOut.getUpdateTimestamp());
        seqNum = entryOut.getUpdateTimestamp();

        IRI iri = IRI.create("http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId,
                entryOut.getEntryId(), locale, (entryOut.getRevision() + 1)));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
        entryURIDatas.add(entryTarget);
    }

    // Batch UPDATE
    numOpOn = entriesDAO.updateEntryBatch(workspace, entryURIDatas);
    assertEquals(numRecs, numOpOn);

    // Batch SELECT
    selectList = entriesDAO.selectEntryBatch(entryURIDatas);
    log.debug("selectList = " + selectList);
    assertNotNull(selectList);
    assertEquals(numRecs, selectList.size());

    seqNum = 0L;
    lastModified = null;
    published = null;
    entryURIDatas = new ArrayList<EntryDescriptor>();
    for (Object obj : selectList) {
        EntryMetaData entryOut = (EntryMetaData) obj;
        assertEquals(entryOut.getWorkspace(), workspace);
        assertEquals(entryOut.getCollection(), sysId);
        assertEquals(entryOut.getLocale(), locale);
        int id = Integer.valueOf(entryOut.getEntryId());
        assertTrue(id >= (propIdSeed + 1) && id <= (propIdSeed + numRecs));
        assertEquals(entryOut.getRevision(), 1);
        assertEquals(entryOut.getDeleted(), false);

        if (lastModified != null) {
            assertTrue(lastModified.compareTo(entryOut.getUpdatedDate()) <= 0);
        }
        lastModified = entryOut.getUpdatedDate();

        if (published != null) {
            assertTrue(published.compareTo(entryOut.getPublishedDate()) <= 0);
        }
        published = entryOut.getPublishedDate();

        assertTrue(seqNum < entryOut.getUpdateTimestamp());
        seqNum = entryOut.getUpdateTimestamp();

        IRI iri = IRI.create("http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId,
                entryOut.getEntryId(), locale, (entryOut.getRevision() + 1)));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
        entryURIDatas.add(entryTarget);
    }

    // Batch DELETE
    numOpOn = entriesDAO.deleteEntryBatch(workspace, entryURIDatas);
    assertEquals(numRecs, numOpOn);

    // Batch SELECT
    selectList = entriesDAO.selectEntryBatch(entryURIDatas);
    log.debug("selectList = " + selectList);
    assertNotNull(selectList);
    assertEquals(numRecs, selectList.size());

    seqNum = 0L;
    lastModified = null;
    published = null;
    for (Object obj : selectList) {
        EntryMetaData entryOut = (EntryMetaData) obj;
        assertEquals(entryOut.getWorkspace(), workspace);
        assertEquals(entryOut.getCollection(), sysId);
        assertEquals(entryOut.getLocale(), locale);
        int id = Integer.valueOf(entryOut.getEntryId());
        assertTrue(id >= (propIdSeed + 1) && id <= (propIdSeed + numRecs));
        assertEquals(entryOut.getRevision(), 2);
        assertEquals(entryOut.getDeleted(), true);

        if (lastModified != null) {
            assertTrue(lastModified.compareTo(entryOut.getUpdatedDate()) <= 0);
        }
        lastModified = entryOut.getUpdatedDate();

        if (published != null) {
            assertTrue(published.compareTo(entryOut.getPublishedDate()) <= 0);
        }
        published = entryOut.getPublishedDate();

        assertTrue(seqNum < entryOut.getUpdateTimestamp());
        seqNum = entryOut.getUpdateTimestamp();
    }

    // DELETE them all for real
    knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        knt++;
        String propId = "" + (propIdSeed + knt);
        IRI iri = IRI.create(
                "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
        EntryTarget entryTarget = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
        entriesDAO.obliterateEntry(entryTarget);
    }

    // COUNT
    Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up
    int finalCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("finalCount = " + finalCount);
    assertEquals(startCount, finalCount);
}

From source file:org.atomserver.core.dbstore.dao.EntriesDAOTest.java

public void testSelectEntryByLocale() throws Exception {

    String sysId = "acme";
    String propId = "88888";
    Locale locale = LocaleUtils.toLocale("en_GB");

    // INSERT "en_GB"
    EntryMetaData entryIn = new EntryMetaData();
    entryIn.setWorkspace("widgets");
    entryIn.setCollection(sysId);/*from  ww w  . ja va 2  s  . co m*/
    entryIn.setLocale(locale);
    entryIn.setEntryId(propId);

    entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
    entriesDAO.insertEntry(entryIn);

    IRI iri = IRI.create(
            "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
    EntryTarget entryQueryEnGB = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    // INSERT "en"
    locale = LocaleUtils.toLocale("en");

    entryIn = new EntryMetaData();
    entryIn.setWorkspace("widgets");
    entryIn.setCollection(sysId);
    entryIn.setLocale(locale);
    entryIn.setEntryId(propId);

    entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
    entriesDAO.insertEntry(entryIn);
    iri = IRI.create(
            "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
    EntryTarget entryQueryEn = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    // INSERT "fr"
    locale = LocaleUtils.toLocale("fr");

    entryIn = new EntryMetaData();
    entryIn.setWorkspace("widgets");
    entryIn.setCollection(sysId);
    entryIn.setLocale(locale);
    entryIn.setEntryId(propId);

    entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
    entriesDAO.insertEntry(entryIn);
    iri = IRI.create(
            "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
    EntryTarget entryQueryFr = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    // SELECT BY LOCALE -- using "fr"     
    EntryMetaData entry = entriesDAO.selectEntry(entryQueryFr);

    log.debug("entry = " + entry);
    assertNotNull(entry);
    assertEquals(entry.getLocale(), LocaleUtils.toLocale("fr"));
    assertEquals(entry.getCollection(), sysId);
    assertEquals(entry.getEntryId(), propId);

    // SELECT BY LOCALE -- using "en_GB"      
    entry = entriesDAO.selectEntry(entryQueryEnGB);

    log.debug("entry = " + entry);
    assertNotNull(entry);
    assertEquals(entry.getLocale(), LocaleUtils.toLocale("en_GB"));
    assertEquals(entry.getCollection(), sysId);
    assertEquals(entry.getEntryId(), propId);

    // SELECT BY LOCALE -- using "en"    
    entry = entriesDAO.selectEntry(entryQueryEn);

    log.debug("entry = " + entry);
    assertNotNull(entry);
    assertEquals(entry.getLocale(), LocaleUtils.toLocale("en"));
    assertEquals(entry.getCollection(), sysId);
    assertEquals(entry.getEntryId(), propId);

    // DELETE "en_GB"
    entriesDAO.obliterateEntry(entryQueryEnGB);

    // SELECT BY LOCALE -- using "en_GB" -- but it's gone now     
    entry = entriesDAO.selectEntry(entryQueryEnGB);

    log.debug("entry = " + entry);
    assertNull(entry);

    // DELETE "en"
    entriesDAO.obliterateEntry(entryQueryEn);

    // DELETE "fr"
    entriesDAO.obliterateEntry(entryQueryFr);
}

From source file:org.atomserver.core.dbstore.dao.EntriesDAOTest.java

public void testSelectEntryByLocaleWithLotsPresent() throws Exception {

    // Note: we use several because
    //   1) this matches a bug in Staging ;-)
    //   2) if the query is wrong the ResultSet might contain more items than 1....

    // COUNT/*  ww  w .ja v  a 2s  .  com*/
    BaseServiceDescriptor serviceDescriptor = new BaseServiceDescriptor(workspace);
    int startCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("startCount = " + startCount);

    String sysId = "acme";
    int propIdSeed = 88800;
    Locale locale = LocaleUtils.toLocale("en_US");

    // INSERT 
    int numRecs = 12;
    int knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        EntryMetaData entryIn = new EntryMetaData();
        entryIn.setWorkspace("widgets");
        entryIn.setCollection(sysId);
        entryIn.setLocale(locale);

        knt++;
        String propId = "" + (propIdSeed + knt);

        entryIn.setEntryId(propId);

        entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
        entriesDAO.insertEntry(entryIn);
    }

    String propId = "88807";
    IRI iri = IRI.create(
            "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
    EntryTarget entryQuery1 = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    // SELECT BY LOCALE -- using "en_US" 
    EntryMetaData entry = entriesDAO.selectEntry(entryQuery1);

    log.debug("entry = " + entry);
    assertNotNull(entry);
    assertEquals(entry.getLocale(), LocaleUtils.toLocale("en_US"));
    assertEquals(entry.getCollection(), sysId);
    assertEquals(entry.getEntryId(), propId);

    // SELECT BY LOCALE -- using "en"  -- THIS ONE SHOULD FAIL  
    Locale localeEN = LocaleUtils.toLocale("en");
    iri = IRI.create(
            "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, localeEN));
    EntryTarget entryQuery2 = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    entry = entriesDAO.selectEntry(entryQuery2);

    log.debug("entry = " + entry);
    assertNull(entry);

    // DELETE them all for real
    knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        knt++;
        propId = "" + (propIdSeed + knt);
        iri = IRI.create(
                "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
        EntryTarget entryQuery = entryURIHelper
                .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

        entriesDAO.obliterateEntry(entryQuery);
    }

    // COUNT
    Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up
    int finalCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("finalCount = " + finalCount);
    assertEquals(startCount, finalCount);
}

From source file:org.atomserver.core.dbstore.dao.EntriesDAOTest.java

public void testCRUD() throws Exception {
    // COUNT/*from www  .  j a  va2  s. c  om*/
    BaseServiceDescriptor serviceDescriptor = new BaseServiceDescriptor(workspace);
    int startCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("startCount = " + startCount);

    String sysId = "acme";
    String propId = "7782";
    Locale locale = LocaleUtils.toLocale("en");

    // INSERT
    EntryMetaData entryIn = new EntryMetaData();
    entryIn.setWorkspace("widgets");
    entryIn.setCollection(sysId);
    entryIn.setLocale(locale);
    entryIn.setEntryId(propId);

    Date lnow = entriesDAO.selectSysDate();

    Thread.sleep(1000);

    entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
    entriesDAO.insertEntry(entryIn);

    int count = entriesDAO.getTotalCount(serviceDescriptor);
    assertEquals((startCount + 1), count);

    // SELECT
    IRI iri = IRI.create(
            "http://localhost:8080/" + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
    EntryTarget entryQuery = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    EntryMetaData entryOut = entriesDAO.selectEntry(entryQuery);
    log.debug("====> entryOut = " + entryOut);

    assertEquals(entryOut.getCollection(), entryIn.getCollection());
    assertEquals(entryOut.getLocale(), entryIn.getLocale());
    assertEquals(entryOut.getEntryId(), entryIn.getEntryId());

    ContentStorage contentStorage = (ContentStorage) springFactory.getBean("org.atomserver-contentStorage");

    if (contentStorage instanceof FileBasedContentStorage) {
        FileBasedContentStorage fileBasedContentStorage = (FileBasedContentStorage) contentStorage;
        assertEquals(
                fileBasedContentStorage.getPhysicalRepresentation(entryOut.getWorkspace(),
                        entryOut.getCollection(), entryOut.getEntryId(), entryOut.getLocale(), 0),
                fileBasedContentStorage.getPhysicalRepresentation(entryIn.getWorkspace(),
                        entryIn.getCollection(), entryIn.getEntryId(), entryIn.getLocale(), 0));
    }

    assertTrue(entryOut.getUpdatedDate().after(lnow));
    assertEquals(entryOut.getPublishedDate(), entryOut.getUpdatedDate());
    Date published = entryOut.getPublishedDate();
    Thread.sleep(1000);

    assertEquals(0, entryOut.getRevision());

    // UPDATE
    entryQuery = entryQuery.cloneWithNewRevision(entryOut.getRevision() + 1);

    entriesDAO.ensureCollectionExists(entryQuery.getWorkspace(), entryQuery.getCollection());
    int numRows = entriesDAO.updateEntry(entryQuery, false);
    assertTrue(numRows > 0);

    // SELECT
    entryOut = entriesDAO.selectEntry(entryQuery);
    log.debug("====> entryOut = " + entryOut);

    assertEquals(entryOut.getCollection(), entryIn.getCollection());
    assertEquals(entryOut.getLocale(), entryIn.getLocale());
    assertEquals(entryOut.getEntryId(), entryIn.getEntryId());
    assertEquals(entryOut.getDeleted(), false);

    assertTrue(entryIn.getUpdateTimestamp() < entryOut.getUpdateTimestamp());

    assertTrue(entryOut.getUpdatedDate().after(published));
    assertEquals(entryOut.getPublishedDate(), published);
    Date lastMod = entryOut.getUpdatedDate();
    Thread.sleep(1000);

    long seqNumIn = entryIn.getUpdateTimestamp();
    assertEquals(1, entryOut.getRevision());

    // UPDATE
    entryQuery = entryQuery.cloneWithNewRevision(entryOut.getRevision() + 1);

    entriesDAO.updateEntry(entryQuery, false);

    // SELECT
    entryOut = entriesDAO.selectEntry(entryQuery);
    log.debug("====> entryOut = " + entryOut);

    assertEquals(entryOut.getCollection(), entryIn.getCollection());
    assertEquals(entryOut.getLocale(), entryIn.getLocale());
    assertEquals(entryOut.getEntryId(), entryIn.getEntryId());
    assertEquals(entryOut.getDeleted(), false);

    assertTrue(seqNumIn < entryOut.getUpdateTimestamp());

    assertTrue(entryOut.getUpdatedDate().after(lastMod));
    assertEquals(entryOut.getPublishedDate(), published);

    assertEquals(2, entryOut.getRevision());

    // UPDATE -- using a previous revision -- should fail (return -1)
    entryQuery = entryQuery.cloneWithNewRevision(1);
    numRows = entriesDAO.updateEntry(entryQuery, false);
    assertEquals(0, numRows);

    // DELETE -- using a previous revision -- should fail (return -1)
    numRows = entriesDAO.deleteEntry(entryQuery);
    assertEquals(0, numRows);

    // DELETE -- this one only updates the "deleted" flag
    entryQuery = entryQuery.cloneWithNewRevision(entryOut.getRevision() + 1);
    entriesDAO.deleteEntry(entryQuery);

    // SELECT
    entryOut = entriesDAO.selectEntry(entryQuery);
    log.debug("====> entryOut = " + entryOut);

    assertEquals(entryOut.getCollection(), entryIn.getCollection());
    assertEquals(entryOut.getLocale(), entryIn.getLocale());
    assertEquals(entryOut.getEntryId(), entryIn.getEntryId());

    assertEquals(entryOut.getDeleted(), true);

    assertTrue(entryIn.getUpdateTimestamp() < entryOut.getUpdateTimestamp());

    // DELETE
    entriesDAO.obliterateEntry(entryQuery);

    // SELECT again
    EntryMetaData entryOut2 = entriesDAO.selectEntry(entryQuery);
    log.debug("====> entryOut2 = " + entryOut2);
    assertNull(entryOut2);

    // COUNT
    Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up
    int finalCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("finalCount = " + finalCount);
    assertEquals(startCount, finalCount);
}

From source file:org.atomserver.core.dbstore.dao.EntriesDAOTest.java

public void testSort() throws Exception {
    // COUNT//from   w  w w .j  a v a  2  s.c  o m
    BaseServiceDescriptor serviceDescriptor = new BaseServiceDescriptor(workspace);
    int startCount = entriesDAO.getTotalCount(serviceDescriptor);
    log.debug("startCount = " + startCount);

    String sysId = "acme";
    int propIdSeed = 34300;
    Locale locale = LocaleUtils.toLocale("en");

    Date[] lastMod = new Date[3];
    long lnow = (entriesDAO.selectSysDate()).getTime();

    lastMod[0] = new Date(lnow);
    lastMod[1] = new Date(lnow - 100000L);
    lastMod[2] = new Date(lnow - 200000L);
    log.debug("lastMod:: " + lastMod[0] + " " + lastMod[1] + " " + lastMod[2]);

    // INSERT
    int numRecs = 20;
    Date zeroDate = new Date(0L);

    try {

        for (int ii = 0; ii < numRecs; ii++) {
            EntryMetaData entryIn = new EntryMetaData();
            entryIn.setWorkspace("widgets");
            entryIn.setCollection(sysId);
            entryIn.setLocale(locale);
            String propId = "" + (propIdSeed + ii);
            entryIn.setEntryId(propId);

            entryIn.setUpdatedDate(lastMod[(ii % 3)]);
            entryIn.setPublishedDate(lastMod[(ii % 3)]);

            entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
            entriesDAO.insertEntry(entryIn, true, lastMod[(ii % 3)], lastMod[(ii % 3)]);
        }

        // COUNT
        int count = entriesDAO.getTotalCount(serviceDescriptor);
        assertEquals((startCount + numRecs), count);

        count = entriesDAO.getCountByLastModified(serviceDescriptor, lastMod[0]);
        log.debug("+++++++++++++++++++> getCountByLastModified= " + count);
        assertEquals(7, count);

        // SORT -- From the begining of time            
        List sortedList = entriesDAO.selectEntriesByLastModified(workspace, null, zeroDate);

        log.debug("List= " + sortedList);

        Date lastVal = zeroDate;
        for (Object obj : sortedList) {
            EntryMetaData entry = (EntryMetaData) obj;
            assertTrue(lastVal.compareTo(entry.getUpdatedDate()) <= 0);
            lastVal = entry.getUpdatedDate();
        }

        // SORT -- from now -- so the List should be empty
        Thread.sleep(1000);
        long lnow2 = (entriesDAO.selectSysDate()).getTime();

        sortedList = entriesDAO.selectEntriesByLastModified(workspace, null, (new Date(lnow2)));

        log.debug("List= " + sortedList);
        assertEquals(0, sortedList.size());

        // ==============
        entriesDAO.updateLastModifiedSeqNumForAllEntries(serviceDescriptor);

        sortedList = entriesDAO.selectEntriesByLastModified(workspace, null, zeroDate);
        log.debug("List= " + sortedList);

        lastVal = zeroDate;
        for (Object obj : sortedList) {
            EntryMetaData entry = (EntryMetaData) obj;
            assertTrue(lastVal.compareTo(entry.getUpdatedDate()) <= 0);
            lastVal = entry.getUpdatedDate();

            // FIXME -- this Should work but does not.
            //          AFAICt there may be something wrong with the updateLastModifiedSeqNumForAllEntries
            //          BUT this code is NOT actually used anywhere in PRD
            //          So I am going to ignore it for now.
            //assertTrue("[seqNum= " + seqNum + "] !< [entrySeq= " + entry.getUpdateTimestamp(),
            //           seqNum < entry.getUpdateTimestamp());
            entry.getUpdateTimestamp();
        }
    } finally {

        // DELETE some 
        for (int ii = 0; ii < numRecs / 2; ii++) {
            String propId = "" + (propIdSeed + ii);
            IRI iri = IRI.create("http://localhost:8080/"
                    + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
            EntryTarget entryTarget = entryURIHelper
                    .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
            entriesDAO.obliterateEntry(entryTarget);
        }

        // SORT -- From the begining of time
        List sortedList = entriesDAO.selectEntriesByLastModifiedSeqNum(new BaseFeedDescriptor(workspace, null),
                zeroDate);
        log.debug("List= " + sortedList);

        Date lastVal = zeroDate;
        for (Object obj : sortedList) {
            EntryMetaData entry = (EntryMetaData) obj;

            log.debug("&&&&&COMPARE DATES:: " + lastVal + " " + entry.getUpdatedDate());

            assertTrue(lastVal.compareTo(entry.getUpdatedDate()) <= 0);
            lastVal = entry.getUpdatedDate();
        }

        // DELETE the rest 
        for (int ii = (numRecs / 2 - 1); ii < numRecs; ii++) {
            String propId = "" + (propIdSeed + ii);
            IRI iri = IRI.create("http://localhost:8080/"
                    + entryURIHelper.constructURIString(workspace, sysId, propId, locale));
            EntryTarget entryTarget = entryURIHelper
                    .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);
            entriesDAO.obliterateEntry(entryTarget);
        }

        // COUNT
        Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up
        int finalCount = entriesDAO.getTotalCount(serviceDescriptor);
        log.debug("finalCount = " + finalCount);
        assertEquals(startCount, finalCount);
    }

}

From source file:org.atomserver.core.dbstore.dao.EntriesDAOTest.java

public void testDeleteAll() throws Exception {

    // COUNT/*from w ww. ja  v  a2 s  .c om*/
    String[] workspace = { "reptiles", "amphibeans" };
    String[] sysId = { "snakes", "lizards", "frogs", "toads" };

    BaseServiceDescriptor serviceDescriptor0 = new BaseServiceDescriptor(workspace[0]);
    BaseServiceDescriptor serviceDescriptor1 = new BaseServiceDescriptor(workspace[1]);
    int startCountR = entriesDAO.getTotalCount(serviceDescriptor0);
    log.debug("startCountR = " + startCountR);
    int startCountA = entriesDAO.getTotalCount(serviceDescriptor1);
    log.debug("startCountA = " + startCountA);

    int propIdSeed = 88800;
    Locale locale = LocaleUtils.toLocale("en_US");

    // INSERT 
    int numRecs = 12;
    int knt = 0;
    for (int ii = 0; ii < numRecs; ii++) {
        EntryMetaData entryIn = new EntryMetaData();

        entryIn.setWorkspace(workspace[ii % 2]);
        entryIn.setCollection(sysId[ii % 4]);
        entryIn.setLocale(locale);

        knt++;
        String propId = "" + (propIdSeed + knt);
        entryIn.setEntryId(propId);

        entriesDAO.ensureCollectionExists(entryIn.getWorkspace(), entryIn.getCollection());
        entriesDAO.insertEntry(entryIn);
    }

    LatencyUtil.updateLastWrote();
    LatencyUtil.accountForLatency();

    List sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("reptiles", null), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(6, sortedList.size());

    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", null), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(6, sortedList.size());

    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", "lizards"), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(3, sortedList.size());

    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", "toads"), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(3, sortedList.size());

    entriesDAO.deleteAllEntries(new BaseFeedDescriptor("reptiles", null));

    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("reptiles", null), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(0, sortedList.size());

    entriesDAO.deleteAllEntries(new BaseFeedDescriptor("amphibeans", "lizards"));

    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", "lizards"), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(0, sortedList.size());
    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", null), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(3, sortedList.size());

    entriesDAO.deleteAllEntries(new BaseFeedDescriptor("amphibeans", "toads"));

    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", "toads"), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(0, sortedList.size());
    sortedList = entriesDAO.selectFeedPage(ZERO_DATE, AtomServerConstants.FAR_FUTURE_DATE, 0, -1, 0, false,
            null, new BaseFeedDescriptor("amphibeans", "toads"), null);
    log.debug("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    log.debug("List= " + sortedList);
    assertEquals(0, sortedList.size());

    // COUNT
    Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up

    int finalCountR = entriesDAO.getTotalCount(serviceDescriptor0);
    log.debug("finalCountR = " + finalCountR);
    assertEquals(startCountR, finalCountR);

    int finalCountA = entriesDAO.getTotalCount(serviceDescriptor1);
    log.debug("finalCountA = " + finalCountA);
    assertEquals(startCountA, finalCountA);
}

From source file:org.atomserver.core.dbstore.dao.EntryCategoriesDAOTest.java

public void testBatch() throws Exception {
    // COUNT/*from w w  w.jav  a  2s. c o  m*/
    int startCount = categoriesDAO.getTotalCount(workspace);
    log.debug("startCount = " + startCount);

    //String workspace = "widgets";
    String sysId = "acme";
    String propId = "31300";
    String scheme = "urn:ha/widgets";
    String term = "foobar";

    EntryDescriptor descriptor = new BaseEntryDescriptor(workspace, sysId, propId, null, 0);
    entriesDAO.ensureCollectionExists(descriptor.getWorkspace(), descriptor.getCollection());
    entriesDAO.insertEntry(descriptor);
    EntryMetaData metaData = entriesDAO.selectEntry(descriptor);

    // INSERT
    int numTags = 5;
    List<EntryCategory> ecList = new ArrayList();

    for (int ii = 0; ii < numTags; ii++) {
        EntryCategory entryIn = new EntryCategory();
        entryIn.setEntryStoreId(metaData.getEntryStoreId());
        entryIn.setScheme(scheme);
        entryIn.setTerm(term + ii);

        ecList.add(entryIn);
    }

    categoriesDAO.insertEntryCategoryBatch(ecList);

    int count = categoriesDAO.getTotalCount(workspace);
    assertEquals((startCount + numTags), count);

    // SELECT 
    IRI iri = IRI.create("http://localhost:8080/"
            + entryURIHelper.constructURIString(workspace, sysId, propId, LocaleUtils.toLocale("en")));
    EntryTarget entryTarget = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    List tags = categoriesDAO.selectEntryCategories(entryTarget);
    log.debug("====> tags = " + tags);
    assertNotNull(tags);

    int jj = 0;
    for (Object obj : tags) {
        EntryCategory tag = (EntryCategory) obj;
        String ttt = term + jj;

        assertEquals(tag.getWorkspace(), workspace);
        assertEquals(tag.getCollection(), sysId);
        assertEquals(tag.getEntryId(), propId);
        assertEquals(tag.getScheme(), scheme);
        assertEquals(tag.getTerm(), ttt);
        jj++;
    }

    // DELETE
    ecList = new ArrayList();
    for (int ii = 0; ii < numTags; ii++) {
        EntryCategory entryIn = new EntryCategory();
        entryIn.setWorkspace(workspace);
        entryIn.setCollection(sysId);
        entryIn.setEntryId(propId);
        // TODO: locale "en"?
        entryIn.setScheme(scheme);
        entryIn.setTerm(term + ii);

        ecList.add(entryIn);
    }

    categoriesDAO.deleteEntryCategoryBatch(ecList);
    entriesDAO.obliterateEntry(descriptor);

    // COUNT
    Thread.sleep(DB_CATCHUP_SLEEP); // give the DB a chance to catch up
    int finalCount = categoriesDAO.getTotalCount(workspace);
    log.debug("finalCount = " + finalCount);
    assertEquals(startCount, finalCount);
}

From source file:org.atomserver.core.dbstore.dao.EntryCategoriesDAOTest.java

public void testSelectEntryCategories() throws Exception {
    // COUNT/*  w ww.ja v  a 2 s  . c  o  m*/
    int startCount = categoriesDAO.getTotalCount(workspace);
    log.debug("startCount = " + startCount);

    //String workspace = "widgets";
    String sysId = "acme";
    String propId = "31300";
    String scheme = "urn:ha/widgets";
    String term = "foobar";

    EntryDescriptor descriptor = new BaseEntryDescriptor(workspace, sysId, propId, null, 0);
    entriesDAO.ensureCollectionExists(descriptor.getWorkspace(), descriptor.getCollection());
    entriesDAO.insertEntry(descriptor);
    EntryMetaData metaData = entriesDAO.selectEntry(descriptor);

    // INSERT
    int numTags = 5;
    for (int ii = 0; ii < numTags; ii++) {
        EntryCategory entryIn = new EntryCategory();
        entryIn.setEntryStoreId(metaData.getEntryStoreId());
        entryIn.setScheme(scheme);
        entryIn.setTerm(term + ii);

        int numRows = categoriesDAO.insertEntryCategory(entryIn);
        assertTrue(numRows > 0);
    }

    int count = categoriesDAO.getTotalCount(workspace);
    assertEquals((startCount + numTags), count);

    // SELECT 
    IRI iri = IRI.create("http://localhost:8080/"
            + entryURIHelper.constructURIString(workspace, sysId, propId, LocaleUtils.toLocale("en")));
    EntryTarget entryTarget = entryURIHelper
            .getEntryTarget(new MockRequestContext(serviceContext, "GET", iri.toString()), true);

    List tags = categoriesDAO.selectEntryCategories(entryTarget);
    log.debug("====> tags = " + tags);
    assertNotNull(tags);

    int jj = 0;
    for (Object obj : tags) {
        EntryCategory tag = (EntryCategory) obj;
        String ttt = term + jj;

        assertEquals(tag.getWorkspace(), workspace);
        assertEquals(tag.getCollection(), sysId);
        assertEquals(tag.getEntryId(), propId);
        assertEquals(tag.getScheme(), scheme);
        assertEquals(tag.getTerm(), ttt);
        jj++;
    }

    // DELETE
    for (int ii = 0; ii < numTags; ii++) {
        EntryCategory entryIn = new EntryCategory();
        entryIn.setWorkspace(workspace);
        entryIn.setCollection(sysId);
        entryIn.setEntryId(propId);
        // TODO: locale "en"?
        entryIn.setScheme(scheme);
        entryIn.setTerm(term + ii);
        categoriesDAO.deleteEntryCategory(entryIn);
    }
    entriesDAO.deleteEntry(descriptor);

    // COUNT
    Thread.sleep(500); // give the DB a chance to catch up
    int finalCount = categoriesDAO.getTotalCount(workspace);
    log.debug("finalCount = " + finalCount);
    assertEquals(startCount, finalCount);
}