You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/07/23 20:39:06 UTC
svn commit: r424776 -
/incubator/roller/branches/roller_2.4_appd9/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java
Author: snoopdave
Date: Sun Jul 23 11:39:06 2006
New Revision: 424776
URL: http://svn.apache.org/viewvc?rev=424776&view=rev
Log:
Oops, put .media-link on wrong URI and forgot to strip it off in requested filenames
Modified:
incubator/roller/branches/roller_2.4_appd9/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java
Modified: incubator/roller/branches/roller_2.4_appd9/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_2.4_appd9/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java?rev=424776&r1=424775&r2=424776&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.4_appd9/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java (original)
+++ incubator/roller/branches/roller_2.4_appd9/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java Sun Jul 23 11:39:06 2006
@@ -27,6 +27,7 @@
import java.util.List;
import java.util.StringTokenizer;
import java.util.Collections;
+import javax.activation.MimetypesFileTypeMap;
import javax.servlet.http.HttpServletRequest;
@@ -53,7 +54,11 @@
import com.sun.syndication.feed.atom.Link;
import com.sun.syndication.feed.atom.Person;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
import javax.activation.FileTypeMap;
import org.apache.commons.lang.StringUtils;
import org.apache.roller.RollerException;
@@ -326,21 +331,38 @@
}
FileManager fmgr = mRoller.getFileManager();
File[] files = fmgr.getFiles(website.getHandle());
+
if (canView(website)) {
Feed feed = new Feed();
feed.setId(absUrl + "/app/" +website.getHandle() + "/entries/" + start);
+ SortedSet sortedSet = new TreeSet(new Comparator() {
+ public int compare(Object o1, Object o2) {
+ File f1 = (File)o1;
+ File f2 = (File)o2;
+ if (f1.lastModified() < f2.lastModified()) return 1;
+ else if (f1.lastModified() == f2.lastModified()) return 0;
+ else return -1;
+ }
+ public boolean equals(Object obj) {
+ return false;
+ }
+ });
List atomEntries = new ArrayList();
- int count = 0;
if (files != null && start < files.length) {
- for (int i=start; i<(start + max) && i<(files.length); i++) {
- Entry entry = createAtomResourceEntry(website, files[i]);
- atomEntries.add(entry);
- if (count == 0) {
- // first entry is most recent
- feed.setUpdated(entry.getUpdated());
- }
- count++;
+ for (int i=0; i<files.length; i++) {
+ sortedSet.add(files[i]);
+ }
+ }
+ int count = 0;
+ File[] sortedArray = (File[])sortedSet.toArray(new File[sortedSet.size()]);
+ for (int i=start; i<(start + max) && i<(sortedArray.length); i++) {
+ Entry entry = createAtomResourceEntry(website, sortedArray[i]);
+ atomEntries.add(entry);
+ if (count == 0) {
+ // first entry is most recent
+ feed.setUpdated(entry.getUpdated());
}
+ count++;
}
if (start + count < files.length) { // add next link
int nextOffset = start + max;
@@ -436,13 +458,15 @@
return createAtomEntry(entry);
}
} else if (pathInfo[1].equals("resource") && pathInfo[2].endsWith(".media-link")) {
+ String fileName =
+ pathInfo[2].substring(0, pathInfo[2].length() - ".media-link".length());
String handle = pathInfo[0];
WebsiteData website =
mRoller.getUserManager().getWebsiteByHandle(handle);
String uploadPath =
RollerFactory.getRoller().getFileManager().getUploadUrl();
File resource =
- new File(uploadPath + File.separator + pathInfo[2]);
+ new File(uploadPath + File.separator + fileName);
return createAtomResourceEntry(website, resource);
}
}
@@ -523,8 +547,10 @@
}
if (canEdit(website) && pathInfo.length > 1) {
try {
+ String fileName =
+ pathInfo[2].substring(0, pathInfo[2].length() - ".media-link".length());
FileManager fmgr = mRoller.getFileManager();
- fmgr.deleteFile(website.getHandle(), pathInfo[2]);
+ fmgr.deleteFile(website.getHandle(), fileName);
} catch (Exception e) {
String msg = "ERROR in atom.deleteResource";
mLogger.error(msg,e);
@@ -855,18 +881,25 @@
String absUrl = mRollerContext.getAbsoluteContextUrl(mRequest);
String editURI = absUrl
+ "/app/" + website.getHandle()
- + "/resource/" + file.getName();
+ + "/resource/" + file.getName() + ".media-link";
String editMediaURI = absUrl
+ "/app/" + website.getHandle()
- + "/resource/" + file.getName() + ".media-link";
+ + "/resource/" + file.getName();
String viewURI = absUrl
+ "/resources/" + website.getHandle()
+ "/" + file.getName();
+
FileTypeMap map = FileTypeMap.getDefaultFileTypeMap();
+ // TODO: figure out why PNG is missing from Java MIME types
+ if (map instanceof MimetypesFileTypeMap) {
+ try {
+ ((MimetypesFileTypeMap)map).addMimeTypes("image/png png PNG");
+ } catch (Exception ignored) {}
+ }
String contentType = map.getContentType(file);
Entry entry = new Entry();
- entry.setId(viewURI);
+ entry.setId(editMediaURI);
entry.setTitle(file.getName());
entry.setUpdated(new Date(file.lastModified()));