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 2010/04/17 17:57:33 UTC
svn commit: r935194 - in /roller/trunk: ./ planet-business/
weblogger-business/ weblogger-web/
weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/
weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/
Author: snoopdave
Date: Sat Apr 17 15:57:32 2010
New Revision: 935194
URL: http://svn.apache.org/viewvc?rev=935194&view=rev
Log:
Fixes ROL-1864 by moving to ROME Propono 0.9.13 which fixes the problem by returning the correct Location and Content-Location headers.
https://issues.apache.org/jira/browse/ROL-1864
"MarsEdit & Windows Live Writer will not work with Roller's AtomPub implementation"
Also, we now use ROME jars from the Sonatype Maven repo instead of the old Java.net repo.
Modified:
roller/trunk/planet-business/pom.xml
roller/trunk/pom.xml
roller/trunk/weblogger-business/pom.xml
roller/trunk/weblogger-web/pom.xml
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
Modified: roller/trunk/planet-business/pom.xml
URL: http://svn.apache.org/viewvc/roller/trunk/planet-business/pom.xml?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/planet-business/pom.xml (original)
+++ roller/trunk/planet-business/pom.xml Sat Apr 17 15:57:32 2010
@@ -22,7 +22,7 @@
<properties>
<testOutputDirectory>${project.build.testOutputDirectory}</testOutputDirectory>
- <testPlanetCache>${project.build.testOutputDirectory}${file.separator}planetcache</testPlanetCache>
+ <testPlanetCache>${project.build.testOutputDirectory}${file.separator}planetcache</testPlanetCache>
</properties>
<dependencies>
@@ -73,20 +73,22 @@
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
-
+
<dependency>
<groupId>com.google.code.guice</groupId>
<artifactId>guice</artifactId>
</dependency>
<dependency>
- <groupId>rome</groupId>
+ <groupId>net.java.dev.rome</groupId>
<artifactId>rome</artifactId>
+ <scope>compile</scope>
</dependency>
<dependency>
- <groupId>rome</groupId>
+ <groupId>net.java.dev.rome</groupId>
<artifactId>rome-fetcher</artifactId>
+ <scope>compile</scope>
</dependency>
<dependency>
@@ -151,7 +153,7 @@
<resources>
<resource>
<directory>${basedir}/src/main/resources/sql</directory>
- <filtering>false</filtering>
+ <filtering>false</filtering>
</resource>
</resources>
</configuration>
Modified: roller/trunk/pom.xml
URL: http://svn.apache.org/viewvc/roller/trunk/pom.xml?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/pom.xml (original)
+++ roller/trunk/pom.xml Sat Apr 17 15:57:32 2010
@@ -6,7 +6,7 @@
<groupId>org.apache.roller</groupId>
<artifactId>roller-project</artifactId>
-
+
<version>5.0-BETA2-SNAPSHOT</version>
<packaging>pom</packaging>
@@ -25,9 +25,9 @@
</scm>
<properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <!-- avoid CLOB/BLOB error in all later versions of Derby -->
- <derby.version>10.1.3.1</derby.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <!-- avoid CLOB/BLOB error in all later versions of Derby -->
+ <derby.version>10.1.3.1</derby.version>
</properties>
<modules>
@@ -80,6 +80,7 @@
</build>
<repositories>
+
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
@@ -89,28 +90,26 @@
<enabled>false</enabled>
</snapshots>
</repository>
- <repository>
- <id>ibiblio</id>
- <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
- </repository>
+
<repository>
<id>oauth</id>
<url>http://oauth.googlecode.com/svn/code/maven</url>
</repository>
+
<repository>
<id>guice</id>
<url>http://guice-maven.googlecode.com/svn/trunk/</url>
</repository>
- <!-- for jstl-1.2 for now.. -->
+
<repository>
<id>java.net</id>
- <url>http://download.java.net/maven/2/</url>
+ <url>http://oss.sonatype.org/content/groups/public</url>
</repository>
+
+ <!-- for jstl-1.2 for now.. -->
<repository>
- <id>snoopdave</id>
- <name>Temporary archive for ROME Propono 1.0rc1,
- TODO: replace with official ASAP</name>
- <url>http://people.apache.org/~snoopdave/repo/</url>
+ <id>java.net</id>
+ <url>http://download.java.net/maven/2/</url>
</repository>
</repositories>
@@ -171,21 +170,21 @@
</dependency>
<dependency>
- <groupId>rome</groupId>
+ <groupId>net.java.dev.rome</groupId>
<artifactId>rome</artifactId>
- <version>1.0</version>
+ <version>1.0.0</version>
</dependency>
<dependency>
- <groupId>rome</groupId>
+ <groupId>net.java.dev.rome</groupId>
<artifactId>rome-fetcher</artifactId>
- <version>1.0</version>
+ <version>1.0.0</version>
</dependency>
<dependency>
- <groupId>rome</groupId>
+ <groupId>net.java.dev.rome</groupId>
<artifactId>rome-propono</artifactId>
- <version>1.0rc1</version>
+ <version>0.9.13</version>
</dependency>
<dependency>
Modified: roller/trunk/weblogger-business/pom.xml
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-business/pom.xml?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-business/pom.xml (original)
+++ roller/trunk/weblogger-business/pom.xml Sat Apr 17 15:57:32 2010
@@ -1,6 +1,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -21,11 +21,11 @@
<properties>
<testOutputDirectory>${project.build.testOutputDirectory}</testOutputDirectory>
- <testMediaDir> ${project.build.testOutputDirectory}${file.separator}mediafiles</testMediaDir>
- <testUploadsDir>${project.build.testOutputDirectory}${file.separator}uploadsdir</testUploadsDir>
- <testThemesDir> ${project.build.testOutputDirectory}${file.separator}themes</testThemesDir>
- <testIndexDir> ${project.build.testOutputDirectory}${file.separator}index</testIndexDir>
- <testPlanetCache>${project.build.testOutputDirectory}${file.separator}planetcache</testPlanetCache>
+ <testMediaDir> ${project.build.testOutputDirectory}${file.separator}mediafiles</testMediaDir>
+ <testUploadsDir>${project.build.testOutputDirectory}${file.separator}uploadsdir</testUploadsDir>
+ <testThemesDir> ${project.build.testOutputDirectory}${file.separator}themes</testThemesDir>
+ <testIndexDir> ${project.build.testOutputDirectory}${file.separator}index</testIndexDir>
+ <testPlanetCache>${project.build.testOutputDirectory}${file.separator}planetcache</testPlanetCache>
</properties>
<dependencies>
@@ -100,24 +100,6 @@
</dependency>
<dependency>
- <groupId>rome</groupId>
- <artifactId>rome</artifactId>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>rome</groupId>
- <artifactId>rome-fetcher</artifactId>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>rome</groupId>
- <artifactId>rome-propono</artifactId>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</dependency>
@@ -199,13 +181,13 @@
<resources>
<resource>
<directory>${basedir}/src/main/resources/sql</directory>
- <filtering>false</filtering>
+ <filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
- </plugin>
+ </plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
@@ -226,7 +208,7 @@
</systemProperties>
<excludes>
<exclude>**/TestUtils.java</exclude>
- <exclude>**/TestTask.java</exclude>
+ <exclude>**/TestTask.java</exclude>
</excludes>
</configuration>
</plugin>
@@ -323,7 +305,7 @@
port="3219"
databaseScriptsDir="${project.build.directory}/dbscripts"
skip="${maven.test.skip}" ></stopdb>
- <delete dir="${project.build.directory}/derby-system" verbose="true" failonerror="false" />
+ <delete dir="${project.build.directory}/derby-system" verbose="true" failonerror="false" />
</tasks>
</configuration>
</execution>
@@ -359,8 +341,8 @@
</includes>
</testResource>
<testResource>
- <directory>${project.basedir}/src/test/resources</directory>
- <filtering>true</filtering>
+ <directory>${project.basedir}/src/test/resources</directory>
+ <filtering>true</filtering>
<includes>
<include>**/**</include>
</includes>
Modified: roller/trunk/weblogger-web/pom.xml
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/pom.xml?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-web/pom.xml (original)
+++ roller/trunk/weblogger-web/pom.xml Sat Apr 17 15:57:32 2010
@@ -112,6 +112,12 @@
<artifactId>string</artifactId>
</dependency>
+ <dependency>
+ <groupId>net.java.dev.rome</groupId>
+ <artifactId>rome-propono</artifactId>
+ <scope>compile</scope>
+ </dependency>
+
<!-- Spring Security deps -->
<dependency>
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java Sat Apr 17 15:57:32 2010
@@ -78,7 +78,7 @@ public class EntryCollection {
}
- public String postEntry(AtomRequest areq, Entry entry) throws AtomException {
+ public Entry postEntry(AtomRequest areq, Entry entry) throws AtomException {
log.debug("Entering");
String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
@@ -109,13 +109,14 @@ public class EntryCollection {
if (rollerEntry.isPublished()) {
roller.getIndexManager().addEntryReIndexOperation(rollerEntry);
}
-
+
+ rollerEntry = mgr.getWeblogEntry(rollerEntry.getId());
Entry newEntry = createAtomEntry(rollerEntry);
for (Iterator it = newEntry.getOtherLinks().iterator(); it.hasNext();) {
Link link = (Link)it.next();
if ("edit".equals(link.getRel())) {
log.debug("Exiting");
- return link.getHrefResolved();
+ return createAtomEntry(rollerEntry);
}
}
log.error("ERROR: no edit link found in saved media entry");
@@ -311,7 +312,7 @@ public class EntryCollection {
Entry atomEntry = new Entry();
String absUrl = WebloggerRuntimeConfig.getAbsoluteContextURL();
- atomEntry.setId( absUrl + entry.getPermaLink());
+ atomEntry.setId( entry.getPermalink());
atomEntry.setTitle( entry.getTitle());
atomEntry.setPublished( entry.getPubTime());
atomEntry.setUpdated( entry.getUpdateTime());
@@ -355,7 +356,7 @@ public class EntryCollection {
Link altlink = new Link();
altlink.setRel("alternate");
- altlink.setHref(absUrl + entry.getPermaLink());
+ altlink.setHref(entry.getPermalink());
List altlinks = new ArrayList();
altlinks.add(altlink);
atomEntry.setAlternateLinks(altlinks);
@@ -379,62 +380,6 @@ public class EntryCollection {
return atomEntry;
}
- private Entry createAtomResourceEntry(Weblog website, ThemeResource file) {
- String absUrl = WebloggerRuntimeConfig.getAbsoluteContextURL();
- String filePath =
- file.getPath().startsWith("/") ? file.getPath().substring(1) : file.getPath();
- String editURI =
- atomURL+"/"+website.getHandle()
- + "/resource/" + filePath + ".media-link";
- String editMediaURI =
- atomURL+"/"+ website.getHandle()
- + "/resource/" + filePath;
- URLStrategy urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
- String viewURI = urlStrategy.getWeblogResourceURL(website, filePath, true);
-
- 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.getName());
-
- Entry entry = new Entry();
- entry.setId(editMediaURI);
- entry.setTitle(file.getName());
- entry.setUpdated(new Date(file.getLastModified()));
-
- List otherlinks = new ArrayList();
- entry.setOtherLinks(otherlinks);
- Link editlink = new Link();
- editlink.setRel("edit");
- editlink.setHref(editURI);
- otherlinks.add(editlink);
- Link editMedialink = new Link();
- editMedialink.setRel("edit-media");
- editMedialink.setHref(editMediaURI);
- otherlinks.add(editMedialink);
-
- Content content = new Content();
- content.setSrc(viewURI);
- content.setType(contentType);
- List contents = new ArrayList();
- contents.add(content);
- entry.setContents(contents);
-
- List modules = new ArrayList();
- AppModule app = new AppModuleImpl();
- app.setDraft(false);
- app.setEdited(entry.getUpdated());
- modules.add(app);
- entry.setModules(modules);
-
- return entry;
- }
-
-
/**
* Copy fields from ROME entry to Weblogger entry.
*/
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java Sat Apr 17 15:57:32 2010
@@ -85,7 +85,7 @@ public class MediaCollection {
}
- public String postMedia(AtomRequest areq, Entry entry) throws AtomException {
+ public Entry postMedia(AtomRequest areq, Entry entry) throws AtomException {
log.debug("Entering");
String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
@@ -118,8 +118,12 @@ public class MediaCollection {
// Parse pathinfo to determine file path
String path = filePathFromPathInfo(pathInfo);
- String justPath = path.substring(path.lastIndexOf("/"));
- String justName = path.substring(0, path.lastIndexOf("/"));
+ String justPath = path;
+ int lastSlash = path.lastIndexOf("/");
+ if (lastSlash > -1) {
+ justPath = path.substring(lastSlash);
+ }
+
MediaFileDirectory mdir =
fileMgr.getMediaFileDirectoryByPath(website, justPath);
@@ -155,7 +159,7 @@ public class MediaCollection {
Link link = (Link)it.next();
if ("edit".equals(link.getRel())) {
log.debug("Exiting");
- return link.getHrefResolved();
+ return mediaEntry;
}
}
log.error("ERROR: no edit link found in saved media entry");
@@ -466,9 +470,9 @@ public class MediaCollection {
}
private Entry createAtomResourceEntry(Weblog website, MediaFile file) {
- String absUrl = WebloggerRuntimeConfig.getAbsoluteContextURL();
- String filePath =
- file.getPath().startsWith("/") ? file.getPath().substring(1) : file.getPath();
+ String filePath = file.getPath().endsWith("/")
+ ? file.getPath() + file.getName()
+ : file.getPath() + "/" + file.getName();
String editURI =
atomURL+"/"+website.getHandle()
+ "/resource/" + filePath + ".media-link";
@@ -476,7 +480,6 @@ public class MediaCollection {
atomURL+"/"+ website.getHandle()
+ "/resource/" + filePath;
URLStrategy urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
- String viewURI = urlStrategy.getWeblogResourceURL(website, filePath, true);
String contentType = Utilities.getContentTypeFromFileName(file.getName());
@@ -485,7 +488,14 @@ public class MediaCollection {
entry.setTitle(file.getName());
entry.setUpdated(new Date(file.getLastModified()));
- List otherlinks = new ArrayList();
+ Link altlink = new Link();
+ altlink.setRel("alternate");
+ altlink.setHref(file.getPermalink());
+ List altlinks = new ArrayList();
+ altlinks.add(altlink);
+ entry.setAlternateLinks(altlinks);
+
+ List otherlinks = new ArrayList();
entry.setOtherLinks(otherlinks);
Link editlink = new Link();
editlink.setRel("edit");
@@ -497,7 +507,7 @@ public class MediaCollection {
otherlinks.add(editMedialink);
Content content = new Content();
- content.setSrc(viewURI);
+ content.setSrc(file.getPermalink());
content.setType(contentType);
List contents = new ArrayList();
contents.add(content);
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java Sat Apr 17 15:57:32 2010
@@ -168,7 +168,7 @@ public class RollerAtomHandler implement
/**
* Create entry in the entry collection (a Weblogger blog has only one).
*/
- public String postEntry(AtomRequest areq, Entry entry) throws AtomException {
+ public Entry postEntry(AtomRequest areq, Entry entry) throws AtomException {
EntryCollection ecol = new EntryCollection(user, atomURL);
return ecol.postEntry(areq, entry);
}
@@ -180,7 +180,7 @@ public class RollerAtomHandler implement
* TODO: do we need to handle mutli-part MIME uploads?
* TODO: use Jakarta Commons File-upload?
*/
- public String postMedia(AtomRequest areq, Entry entry)
+ public Entry postMedia(AtomRequest areq, Entry entry)
throws AtomException {
MediaCollection mcol = new MediaCollection(user, atomURL);
return mcol.postMedia(areq, entry);
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java Sat Apr 17 15:57:32 2010
@@ -113,12 +113,7 @@ public class RollerAtomService extends A
throw new AtomException("Creating weblog entry collection for service doc", e);
}
- // Add media collection for upload dir
- Collection uploadCol = new Collection("Media Files", "text", atomURL + "/" + weblog.getHandle() + "/resources/");
- uploadCol.setAccepts(uploadAccepts);
- workspace.addCollection(uploadCol);
-
- // And add one media collection for each of weblog's upload sub-directories
+ // And add one media collection for each of weblog's upload directories
try {
MediaFileManager mgr = roller.getMediaFileManager();
List<MediaFileDirectory> dirs = mgr.getMediaFileDirectories(weblog);
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java?rev=935194&r1=935193&r2=935194&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java Sat Apr 17 15:57:32 2010
@@ -377,8 +377,7 @@ public class MetaWeblogAPIHandler extend
mf.setInputStream(new ByteArrayInputStream(bits));
mf.setLength(bits.length);
- String fileLink = WebloggerFactory.getWeblogger().getUrlStrategy()
- .getWeblogResourceURL(website, name, true);
+ String fileLink = mf.getPermalink();
Hashtable returnStruct = new Hashtable(1);
returnStruct.put("url", fileLink);