List of usage examples for org.apache.commons.lang LocaleUtils toLocale
public static Locale toLocale(String str)
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.
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); }