Author: snoopdave Date: Sat Jun 30 20:36:41 2007 New Revision: 552240 URL: http://svn.apache.org/viewvc?view=rev&rev=552240 Log: Couple of APP fixes found while doing 3.1 fixes
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java?view=diff&rev=552240&r1=552239&r2=552240 ============================================================================== --- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java (original) +++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java Sat Jun 30 20:36:41 2007 @@ -28,7 +28,7 @@ /** * This class models an Atom Publishing Protocol AtomService Document. - * Based on: draft-ietf-atompub-protocol-10.txt. + * Based on: draft-ietf-atompub-protocol-15.txt. * Designed to be Roller independent. */ public class AtomService { Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java?view=diff&rev=552240&r1=552239&r2=552240 ============================================================================== --- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java (original) +++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java Sat Jun 30 20:36:41 2007 @@ -508,11 +508,18 @@ mgr.saveWeblogEntry(rollerEntry); roller.flush(); - // Throttle one entry per second - try { Thread.sleep(1000); } catch (Exception ignored) {} + // Throttle one entry per second per weblog because time- + // stamp in MySQL and other DBs has only 1 sec resolution + try { + synchronized (getClass()) { + Thread.sleep(1000); + } + } catch (Exception ignored) {} CacheManager.invalidate(website); - reindexEntry(rollerEntry); + if (rollerEntry.isPublished()) { + roller.getIndexManager().addEntryReIndexOperation(rollerEntry); + } log.debug("Exiting"); return createAtomEntry(rollerEntry); @@ -580,8 +587,18 @@ mgr.saveWeblogEntry(rollerEntry); roller.flush(); + // Throttle one entry per second per weblog because time- + // stamp in MySQL and other DBs has only 1 sec resolution + try { + synchronized (getClass()) { + Thread.sleep(1000); + } + } catch (Exception ignored) {} + CacheManager.invalidate(rollerEntry.getWebsite()); - reindexEntry(rollerEntry); + if (rollerEntry.isPublished()) { + roller.getIndexManager().addEntryReIndexOperation(rollerEntry); + } log.debug("Exiting"); return createAtomEntry(rollerEntry); } @@ -670,7 +687,8 @@ } if (pathInfo.length > 1) { // Save to temp file - String fileName = createFileName(website, (slug != null) ? slug : title, contentType); + String fileName = createFileName(website, + (slug != null) ? slug : Utilities.replaceNonAlphanumeric(title,' '), contentType); try { tempFile = File.createTempFile(fileName, "tmp"); FileOutputStream fos = new FileOutputStream(tempFile); @@ -687,11 +705,6 @@ ThemeResource resource = fmgr.getFile(website, path + fileName); - // Throttle one entry per second because blog entry dates - // are represented by timpstamps in MySQL and therefore - // have only have 1 second resolution - try { Thread.sleep(1000); } catch (Exception ignored) {} - log.debug("Exiting"); return createAtomResourceEntry(website, resource); @@ -741,7 +754,7 @@ * content-type = "image/jpg" * Might result in daveblog-200608201034.jpg */ - private String createFileName(Weblog weblog, String title, String contentType) { + private String createFileName(Weblog weblog, String slug, String contentType) { if (weblog == null) throw new IllegalArgumentException("weblog cannot be null"); if (contentType == null) throw new IllegalArgumentException("contentType cannot be null"); @@ -755,10 +768,9 @@ String[] typeTokens = contentType.split("/"); String ext = typeTokens[1]; - if (title != null && !title.trim().equals("")) { + if (slug != null && !slug.trim().equals("")) { // We've got a title, so use it to build file name - String base = Utilities.replaceNonAlphanumeric(title, ' '); - StringTokenizer toker = new StringTokenizer(base); + StringTokenizer toker = new StringTokenizer(slug); String tmp = null; int count = 0; while (toker.hasMoreTokens() && count < 5) { @@ -975,23 +987,26 @@ private Entry createAtomEntry(WeblogEntry entry) { Entry atomEntry = new Entry(); + String absUrl = WebloggerRuntimeConfig.getAbsoluteContextURL(); + atomEntry.setId( absUrl + entry.getPermaLink()); + atomEntry.setTitle( entry.getTitle()); + atomEntry.setPublished( entry.getPubTime()); + atomEntry.setUpdated( entry.getUpdateTime()); + Content content = new Content(); content.setType(Content.HTML); content.setValue(entry.getText()); List contents = new ArrayList(); contents.add(content); - Content summary = new Content(); - summary.setType(Content.HTML); - summary.setValue(entry.getSummary()); + atomEntry.setContents(contents); - String absUrl = WebloggerRuntimeConfig.getAbsoluteContextURL(); - atomEntry.setId( absUrl + entry.getPermaLink()); - atomEntry.setTitle( entry.getTitle()); - atomEntry.setContents( contents); - atomEntry.setSummary( summary); - atomEntry.setPublished( entry.getPubTime()); - atomEntry.setUpdated( entry.getUpdateTime()); + if (StringUtils.isNotEmpty(entry.getSummary())) { + Content summary = new Content(); + summary.setType(Content.HTML); + summary.setValue(entry.getSummary()); + atomEntry.setSummary(summary); + } User creator = entry.getCreator(); Person author = new Person(); @@ -1121,7 +1136,7 @@ rollerEntry.setUpdateTime(updateTime); AppModule control = - (AppModule)entry.getModule("http://purl.org/atom/app#"); + (AppModule)entry.getModule(AppModule.URI); if (control!=null && control.getDraft()) { rollerEntry.setStatus(WeblogEntry.DRAFT); } else {