Author: snoopdave
Date: Wed Oct 10 13:05:03 2007
New Revision: 583599
URL: http://svn.apache.org/viewvc?rev=583599&view=rev
Log:
Replacing copy of Propopo classes with direct use of Propono.
Tested against latest Ape from Tim Bray.
http://opensource.atlassian.com/projects/roller/browse/ROL-1535
Added:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandlerFactory.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/propono.properties
roller/branches/roller_4.1_dev/tools/lib/rome-0.9.1-dev.jar (with props)
roller/branches/roller_4.1_dev/tools/lib/rome-propono-0.7.jar (with props)
Removed:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModule.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleGenerator.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleImpl.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleParser.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomException.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomHandler.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomMediaResource.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomNotAuthorizedException.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomNotFoundException.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomServlet.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/Categories.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/Collection.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/Workspace.java
roller/branches/roller_4.1_dev/sandbox/scripting/groovy/examples/adminprotocol/rap
roller/branches/roller_4.1_dev/tools/lib/rome-0.9.jar
Modified:
roller/branches/roller_4.1_dev/apps/planet/build.xml
roller/branches/roller_4.1_dev/apps/weblogger/nbproject/project.xml
roller/branches/roller_4.1_dev/apps/weblogger/properties.xmlf
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/rome.properties
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/sun-web.xml
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/web.xml
Modified: roller/branches/roller_4.1_dev/apps/planet/build.xml
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/planet/build.xml?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/planet/build.xml (original)
+++ roller/branches/roller_4.1_dev/apps/planet/build.xml Wed Oct 10 13:05:03
2007
@@ -85,7 +85,7 @@
<include name="toplink-essentials-9.1/toplink-essentials.jar"/> -->
<!-- needed for ROME -->
- <include name="lib/rome-0.9.jar"/>
+ <include name="lib/rome-0.9.1-dev.jar"/>
<include name="lib/rome-fetcher-0.9.jar"/>
<include name="lib/jdom.jar"/>
Modified: roller/branches/roller_4.1_dev/apps/weblogger/nbproject/project.xml
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/nbproject/project.xml?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/nbproject/project.xml
(original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/nbproject/project.xml Wed Oct
10 13:05:03 2007
@@ -10,6 +10,16 @@
</properties>
<folders>
<source-folder>
+ <label>web</label>
+ <type>doc_root</type>
+ <location>web</location>
+ </source-folder>
+ <source-folder>
+ <label>WEB-INF</label>
+ <type>web_inf</type>
+ <location>web/WEB-INF</location>
+ </source-folder>
+ <source-folder>
<label>src/sql</label>
<type>java</type>
<location>src/sql</location>
@@ -24,16 +34,6 @@
<type>java</type>
<location>test/java</location>
</source-folder>
- <source-folder>
- <label>web</label>
- <type>doc_root</type>
- <location>web</location>
- </source-folder>
- <source-folder>
- <label>WEB-INF</label>
- <type>web_inf</type>
- <location>web/WEB-INF</location>
- </source-folder>
</folders>
<ide-actions>
<action name="build">
@@ -122,7 +122,7 @@
<package-root>src/java</package-root>
<package-root>test/java</package-root>
<package-root>src/sql</package-root>
- <classpath
mode="compile">../../tools/lib/commons-betwixt-1.0-beta-1.jar:../../tools/lib/commons-codec-1.3.jar:../../tools/lib/commons-collections-3.2.jar:../../tools/lib/commons-digester-1.6.jar:../../tools/lib/commons-id-0.1-SNAPSHOT.jar:../../tools/lib/commons-lang-2.1.jar:../../tools/lib/commons-logging-1.0.4.jar:../../tools/lib/concurrent-1.3.2.jar:../../tools/lib/guice-1.0.jar:../../tools/lib/jaxen-full.jar:../../tools/lib/jdom.jar:../../tools/lib/log4j-1.2.11.jar:../../tools/lib/lucene-1.4.3.jar:../../tools/lib/rome-0.9.jar:../../tools/lib/rome-fetcher-0.9.jar:../../tools/lib/saxpath.jar:../../tools/lib/taglibs-string.jar:../../tools/lib/velocity-1.5.jar:../../tools/hibernate-3.1/hibernate3.jar:../../tools/openjpa-0.9.7/geronimo-j2ee-connector_1.5_spec-1.0.1.jar:../../tools/openjpa-0.9.7/geronimo-jpa_3.0_spec-1.0.jar:../../tools/openjpa-0.9.7/geronimo-jta_1.0.1B_spec-1.0.1.jar:../../tools/openjpa-0.9.7/openjpa-0.9.7-incubating.jar:../../tools/openjpa-0
.9.7/serp-1.11.0.jar:../../tools/xmlrpc-3.0/lib/ws-commons-util-1.0.1.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-client-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-common-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-server-3.0.jar:../../tools/spring-1.2/acegi-security-1.0.3.jar:../../tools/spring-1.2/spring.jar:../../tools/roller-core/roller-core.jar:../../tools/roller-planet/roller-planet-business.jar:../../tools/struts-1.2.4/lib/antlr.jar:../../tools/struts-1.2.4/lib/commons-beanutils.jar:../../tools/struts-1.2.4/lib/commons-digester.jar:../../tools/struts-1.2.4/lib/commons-validator.jar:../../tools/struts-1.2.4/lib/jakarta-oro.jar:../../tools/struts-1.2.4/lib/struts-el.jar:../../tools/struts-1.2.4/lib/struts.jar:../../tools/buildtime/tomcat-5.0.28/jsp-api.jar:../../tools/buildtime/tomcat-5.0.28/servlet-api.jar:../../tools/buildtime/activation.jar:../../tools/buildtime/mail.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/jstl.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/ser
ializer.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/standard.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/xalan.jar:../../tools/buildtime/junit-4.1.jar:../../tools/buildtime/ant-1.7.0/ant.jar:../../tools/buildtime/derbyclient.jar:../../tools/buildtime/derby.jar:../../tools/buildtime/derbyclient.jar:../../tools/buildtime/derbynet.jar:../../tools/buildtime/mockrunner-0.35/lib/mockrunner-servlet.jar:../../tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:../../tools/buildtime/mockrunner-0.35/lib/mockrunner.jar:../../tools/buildtime/mockrunner-0.35/lib/nekohtml.jar:../../tools/struts-2.0.9/lib/antlr-2.7.2.jar:../../tools/struts-2.0.9/lib/commons-beanutils-1.6.jar:../../tools/struts-2.0.9/lib/commons-chain-1.1.jar:../../tools/struts-2.0.9/lib/commons-fileupload-1.2.jar:../../tools/struts-2.0.9/lib/commons-io-1.3.1.jar:../../tools/struts-2.0.9/lib/commons-validator-1.3.0.jar:../../tools/struts-2.0.9/lib/freemarker-2.3.8.jar:../../tools/struts-2.0.9/lib/ognl-2.
6.11.jar:../../tools/struts-2.0.9/lib/oro-2.0.8.jar:../../tools/struts-2.0.9/lib/struts2-core-2.0.9.jar:../../tools/struts-2.0.9/lib/struts2-spring-plugin-2.0.9.jar:../../tools/struts-2.0.9/lib/struts2-tiles-plugin-2.0.9.jar:../../tools/struts-2.0.9/lib/tiles-api-2.0.4.jar:../../tools/struts-2.0.9/lib/tiles-core-2.0.4.jar:../../tools/struts-2.0.9/lib/tiles-jsp-2.0.4.jar:../../tools/struts-2.0.9/lib/xwork-2.0.4.jar:../../tools/lib/commons-httpclient-3.0.1.jar</classpath>
+ <classpath
mode="compile">../../tools/lib/commons-betwixt-1.0-beta-1.jar:../../tools/lib/commons-codec-1.3.jar:../../tools/lib/commons-collections-3.2.jar:../../tools/lib/commons-digester-1.6.jar:../../tools/lib/commons-id-0.1-SNAPSHOT.jar:../../tools/lib/commons-lang-2.1.jar:../../tools/lib/commons-logging-1.0.4.jar:../../tools/lib/concurrent-1.3.2.jar:../../tools/lib/guice-1.0.jar:../../tools/lib/jaxen-full.jar:../../tools/lib/jdom.jar:../../tools/lib/log4j-1.2.11.jar:../../tools/lib/lucene-1.4.3.jar:../../tools/lib/rome-fetcher-0.9.jar:../../tools/lib/saxpath.jar:../../tools/lib/taglibs-string.jar:../../tools/lib/velocity-1.5.jar:../../tools/hibernate-3.1/hibernate3.jar:../../tools/openjpa-0.9.7/geronimo-j2ee-connector_1.5_spec-1.0.1.jar:../../tools/openjpa-0.9.7/geronimo-jpa_3.0_spec-1.0.jar:../../tools/openjpa-0.9.7/geronimo-jta_1.0.1B_spec-1.0.1.jar:../../tools/openjpa-0.9.7/openjpa-0.9.7-incubating.jar:../../tools/openjpa-0.9.7/serp-1.11.0.jar:../../to
ols/xmlrpc-3.0/lib/ws-commons-util-1.0.1.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-client-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-common-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-server-3.0.jar:../../tools/spring-1.2/acegi-security-1.0.3.jar:../../tools/spring-1.2/spring.jar:../../tools/roller-core/roller-core.jar:../../tools/roller-planet/roller-planet-business.jar:../../tools/struts-1.2.4/lib/antlr.jar:../../tools/struts-1.2.4/lib/commons-beanutils.jar:../../tools/struts-1.2.4/lib/commons-digester.jar:../../tools/struts-1.2.4/lib/commons-validator.jar:../../tools/struts-1.2.4/lib/jakarta-oro.jar:../../tools/struts-1.2.4/lib/struts-el.jar:../../tools/struts-1.2.4/lib/struts.jar:../../tools/buildtime/tomcat-5.0.28/jsp-api.jar:../../tools/buildtime/tomcat-5.0.28/servlet-api.jar:../../tools/buildtime/activation.jar:../../tools/buildtime/mail.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/jstl.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/serializer.jar:../../tools/jakar
ta-taglibs-standard-1.1.2/lib/standard.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/xalan.jar:../../tools/buildtime/junit-4.1.jar:../../tools/buildtime/ant-1.7.0/ant.jar:../../tools/buildtime/derbyclient.jar:../../tools/buildtime/derby.jar:../../tools/buildtime/derbyclient.jar:../../tools/buildtime/derbynet.jar:../../tools/buildtime/mockrunner-0.35/lib/mockrunner-servlet.jar:../../tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:../../tools/buildtime/mockrunner-0.35/lib/mockrunner.jar:../../tools/buildtime/mockrunner-0.35/lib/nekohtml.jar:../../tools/struts-2.0.9/lib/antlr-2.7.2.jar:../../tools/struts-2.0.9/lib/commons-beanutils-1.6.jar:../../tools/struts-2.0.9/lib/commons-chain-1.1.jar:../../tools/struts-2.0.9/lib/commons-fileupload-1.2.jar:../../tools/struts-2.0.9/lib/commons-io-1.3.1.jar:../../tools/struts-2.0.9/lib/commons-validator-1.3.0.jar:../../tools/struts-2.0.9/lib/freemarker-2.3.8.jar:../../tools/struts-2.0.9/lib/ognl-2.6.11.jar:../../tools/struts-2
.0.9/lib/oro-2.0.8.jar:../../tools/struts-2.0.9/lib/struts2-core-2.0.9.jar:../../tools/struts-2.0.9/lib/struts2-spring-plugin-2.0.9.jar:../../tools/struts-2.0.9/lib/struts2-tiles-plugin-2.0.9.jar:../../tools/struts-2.0.9/lib/tiles-api-2.0.4.jar:../../tools/struts-2.0.9/lib/tiles-core-2.0.4.jar:../../tools/struts-2.0.9/lib/tiles-jsp-2.0.4.jar:../../tools/struts-2.0.9/lib/xwork-2.0.4.jar:../../tools/lib/commons-httpclient-3.0.1.jar:../../tools/lib/rome-0.9.1-dev.jar:../../tools/lib/rome-propono-0.7.jar</classpath>
<source-level>1.5</source-level>
</compilation-unit>
</java-data>
Modified: roller/branches/roller_4.1_dev/apps/weblogger/properties.xmlf
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/properties.xmlf?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/properties.xmlf (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/properties.xmlf Wed Oct 10
13:05:03 2007
@@ -97,7 +97,8 @@
<include name="jdom.jar"/>
<include name="lucene-1.4.3.jar"/>
<include name="log4j-1.2.11.jar"/>
- <include name="rome-0.9.jar"/>
+ <include name="rome-0.9.1-dev.jar"/>
+ <include name="rome-propono-0.7.jar"/>
<include name="rome-fetcher-0.9.jar"/>
<include name="velocity-1.5.jar"/>
<include name="guice-1.0.jar"/>
Modified:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
(original)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
Wed Oct 10 13:05:03 2007
@@ -16,10 +16,10 @@
* directory of this distribution.
*/
package org.apache.roller.weblogger.webservices.atomprotocol;
+import com.sun.syndication.propono.atom.server.AtomRequest;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.InputStream;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
@@ -27,6 +27,8 @@
import java.util.List;
import java.util.StringTokenizer;
import java.util.Collections;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.activation.MimetypesFileTypeMap;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.codec.binary.Base64;
@@ -49,7 +51,20 @@
import com.sun.syndication.feed.atom.Feed;
import com.sun.syndication.feed.atom.Link;
import com.sun.syndication.feed.atom.Person;
+import com.sun.syndication.propono.atom.common.AtomService;
+import com.sun.syndication.propono.atom.common.Categories;
+import com.sun.syndication.propono.atom.common.Workspace;
+import com.sun.syndication.propono.atom.common.rome.AppModule;
+import com.sun.syndication.propono.atom.common.rome.AppModuleImpl;
+import com.sun.syndication.propono.atom.server.AtomException;
+import com.sun.syndication.propono.atom.server.AtomHandler;
+import com.sun.syndication.propono.atom.server.AtomMediaResource;
+import com.sun.syndication.propono.atom.server.AtomNotAuthorizedException;
+import com.sun.syndication.propono.atom.server.AtomNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
import java.text.SimpleDateFormat;
+import java.util.Collection;
import java.util.Comparator;
import java.util.Map;
import java.util.SortedSet;
@@ -60,7 +75,6 @@
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.FileIOException;
import org.apache.roller.weblogger.business.URLStrategy;
-import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.config.WebloggerConfig;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.business.WeblogEntryManager;
@@ -73,7 +87,7 @@
import org.apache.roller.weblogger.util.cache.CacheManager;
/**
- * Weblogger's ROME-based Atom Protocol implementation.
+ * Weblogger's ROME Propono-based Atom Protocol implementation.
*
* Each Weblogger workspace has two collections, one that accepts entries and
* that accepts everything. The entries collection represents the weblog
@@ -108,7 +122,6 @@
* Individual resource data (i.e. media-edit URI)
*
* </pre>
- *
* @author David M Johnson
*/
public class RollerAtomHandler implements AtomHandler {
@@ -169,112 +182,15 @@
* Return Atom service document for site, getting blog-name from pathInfo.
* The workspace will contain collections for entries, categories and
resources.
*/
- public AtomService getIntrospection() throws AtomException {
- log.debug("Entering");
- AtomService service = new AtomService();
- List perms = null;
+ public AtomService getAtomService(AtomRequest areq) throws AtomException {
try {
- perms = roller.getUserManager().getWeblogPermissions(user);
- } catch (WebloggerException re) {
- throw new AtomException("Getting user's weblogs", re);
- }
- List uploadAccepts = new ArrayList();
- try {
- uploadAccepts = getAcceptedContentTypeRange();
- } catch (WebloggerException re) {
- throw new AtomException("Getting site's accept range", re);
+ return new RollerAtomService(user, atomURL);
+ } catch (WebloggerException ex) {
+ log.error("Unable to create Service Document", ex);
+ throw new AtomException("ERROR creating Service Document", ex);
}
- if (perms != null) {
- for (Iterator iter=perms.iterator(); iter.hasNext();) {
- WeblogPermission perm = (WeblogPermission)iter.next();
- Weblog weblog = null;
- Workspace workspace = null;
- try {
-
- // Create workspace to represent weblog
- workspace = new Workspace(
- Utilities.removeHTML(perm.getWeblog().getName()),
"text");
- service.addWorkspace(workspace);
-
- // Create collection for entries within that workspace
- Collection entryCol = new Collection("Weblog Entries",
"text",
- atomURL+"/"+weblog.getHandle()+"/entries");
- entryCol.addAccept("application/atom+xml;type=entry");
-
- // Add fixed categories using scheme that points to
- // weblog because categories are weblog specific
- weblog = perm.getWeblog();
- Categories cats = new Categories();
- cats.setFixed(true);
- cats.setScheme(getWeblogCategoryScheme(weblog));
- List rollerCats =
roller.getWeblogEntryManager().getWeblogCategories(weblog, false);
- for (Iterator it = rollerCats.iterator(); it.hasNext();) {
- WeblogCategory rollerCat = (WeblogCategory)it.next();
- Category cat = new Category();
- cat.setTerm(rollerCat.getPath().substring(1));
- cat.setLabel(rollerCat.getName());
- cats.addCategory(cat);
- }
- entryCol.addCategories(cats);
-
- // Add tags as free-form categories using scheme that
points
- // to site because tags can be considered site-wide
- Categories tags = new Categories();
- tags.setFixed(false);
- entryCol.addCategories(tags);
-
- workspace.addCollection(entryCol);
-
- } catch (Exception e) {
- throw new AtomException("Fetching weblog categories");
- }
-
- // 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
- ThemeResource[] dirs;
- try {
- dirs = roller.getFileManager().getDirectories(weblog);
- for (int i=0; i<dirs.length; i++) {
- Collection uploadSubCol = new Collection(
- "Media Files: " + dirs[i].getPath(), "text",
- atomURL+"/"+weblog.getHandle()+"/resources/" +
dirs[i].getPath());
- uploadSubCol.setAccepts(uploadAccepts);
- workspace.addCollection(uploadSubCol);
- }
- } catch (FilePathException fpe) {
- throw new AtomException("Getting uploads directories
information", fpe);
- } catch (FileNotFoundException fnfe) {
- throw new AtomException("Getting uploads directories
information", fnfe);
- }
-
- }
- }
- log.debug("Exiting");
- return service;
}
-
- /**
- * Build accept range by taking things that appear to be content-type
rules
- * from site's file-upload allowed extensions.
- */
- private List getAcceptedContentTypeRange() throws WebloggerException {
- List accepts = new ArrayList();
- Weblogger roller = WebloggerFactory.getWeblogger();
- Map config = roller.getPropertiesManager().getProperties();
- String allows =
((RuntimeConfigProperty)config.get("uploads.types.allowed")).getValue();
- String[] rules =
StringUtils.split(StringUtils.deleteWhitespace(allows), ",");
- for (int i=0; i<rules.length; i++) {
- if (rules[i].indexOf("/") == -1) continue;
- accepts.add(rules[i]);
- }
- return accepts;
- }
-
+
//-----------------------------------------------------------------
collections
/**
@@ -287,11 +203,12 @@
* /<blog-name>/resources/offset
* </pre>
*/
- public Feed getCollection(String[] pathInfo) throws AtomException {
+ public Feed getCollection(AtomRequest areq) throws AtomException {
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
if (pathInfo.length > 0 && pathInfo[1].equals("entries")) {
- return getCollectionOfEntries(pathInfo);
+ return getCollectionOfEntries(areq);
} else if (pathInfo.length > 0 && pathInfo[1].equals("resources")) {
- return getCollectionOfResources(pathInfo);
+ return getCollectionOfResources(areq);
}
throw new AtomNotFoundException("Cannot find collection specified");
}
@@ -299,8 +216,9 @@
/**
* Helper method that returns collection of entries, called by
getCollection().
*/
- public Feed getCollectionOfEntries(String[] pathInfo) throws AtomException
{
+ public Feed getCollectionOfEntries(AtomRequest areq) throws AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
int start = 0;
int max = maxEntries;
@@ -393,8 +311,9 @@
* /handle/resources/offset
* /handle/resources/path/offset
*/
- public Feed getCollectionOfResources(String[] rawPathInfo) throws
AtomException {
+ public Feed getCollectionOfResources(AtomRequest areq) throws
AtomException {
log.debug("Entering");
+ String[] rawPathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
int start = 0;
int max = maxEntries;
@@ -499,8 +418,9 @@
/**
* Create entry in the entry collection (a Weblogger blog has only one).
*/
- public Entry postEntry(String[] pathInfo, Entry entry) throws
AtomException {
+ public String postEntry(AtomRequest areq, Entry entry) throws
AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
// authenticated client posted a weblog entry
String handle = pathInfo[0];
@@ -529,19 +449,29 @@
roller.getIndexManager().addEntryReIndexOperation(rollerEntry);
}
+ 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();
+ }
+ }
+ log.error("ERROR: no edit link found in saved media entry");
log.debug("Exiting");
- return createAtomEntry(rollerEntry);
} catch (WebloggerException re) {
throw new AtomException("Posting entry", re);
}
+ throw new AtomException("Posting entry");
}
/**
* Retrieve entry, URI like this /blog-name/entry/id
*/
- public Entry getEntry(String[] pathInfo) throws AtomException {
+ public Entry getEntry(AtomRequest areq) throws AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
if (pathInfo.length > 2) // URI is /blogname/entries/entryid
{
@@ -578,8 +508,9 @@
/**
* Expects pathInfo of form /blog-name/resource/path/name
*/
- public AtomMediaResource getMediaResource(String[] pathInfo) throws
AtomException {
+ public AtomMediaResource getMediaResource(AtomRequest areq) throws
AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
// authenticated client posted a weblog entry
File tempFile = null;
@@ -594,7 +525,11 @@
// Parse pathinfo to determine file path
String filePath = filePathFromPathInfo(pathInfo);
ThemeResource resource = fmgr.getFile(website, filePath);
- return new AtomMediaResource(resource);
+ return new AtomMediaResource(
+ resource.getName(),
+ resource.getLength(),
+ new Date(resource.getLastModified()),
+ resource.getInputStream());
} catch (Exception e) {
throw new AtomException(
"Unexpected error during file upload", e);
@@ -610,8 +545,9 @@
/**
* Update entry, URI like this /blog-name/entry/id
*/
- public Entry putEntry(String[] pathInfo, Entry entry) throws AtomException
{
+ public void putEntry(AtomRequest areq, Entry entry) throws AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
if (pathInfo.length == 3) // URI is /blogname/entries/entryid
{
@@ -636,7 +572,7 @@
roller.getIndexManager().addEntryReIndexOperation(rollerEntry);
}
log.debug("Exiting");
- return createAtomEntry(rollerEntry);
+ return;
}
throw new AtomNotAuthorizedException("ERROR not authorized to
update entry");
}
@@ -650,8 +586,9 @@
/**
* Delete entry, URI like this /blog-name/entry/id
*/
- public void deleteEntry(String[] pathInfo) throws AtomException {
+ public void deleteEntry(AtomRequest areq) throws AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
try {
if (pathInfo.length > 2) {
if (pathInfo[1].equals("entry")) // URI is
/blogname/entry/entryid
@@ -707,11 +644,20 @@
* TODO: do we need to handle mutli-part MIME uploads?
* TODO: use Jakarta Commons File-upload?
*/
- public Entry postMedia(String[] pathInfo,
- String title, String slug, String contentType, InputStream is)
+ public String postMedia(AtomRequest areq, Entry entry)
throws AtomException {
log.debug("Entering");
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
+
try {
+ // get incoming slug from HTTP header
+ String slug = areq.getHeader("Slug");
+
+ Content content = (Content)entry.getContents().get(0);
+ String contentType = content.getType();
+ InputStream is = areq.getInputStream();
+ String title = entry.getTitle() != null ? entry.getTitle() : slug;
+
// authenticated client posted a weblog entry
File tempFile = null;
String handle = pathInfo[0];
@@ -740,9 +686,17 @@
ThemeResource resource = fmgr.getFile(website, path +
fileName);
- log.debug("Exiting");
- return createAtomResourceEntry(website, resource);
-
+
+ Entry mediaEntry = createAtomResourceEntry(website,
resource);
+ for (Iterator it = mediaEntry.getOtherLinks().iterator();
it.hasNext();) {
+ Link link = (Link)it.next();
+ if ("edit".equals(link.getRel())) {
+ log.debug("Exiting");
+ return link.getHrefResolved();
+ }
+ }
+ log.error("ERROR: no edit link found in saved media
entry");
+
} catch (FileIOException fie) {
throw new AtomException(
"File upload disabled, over-quota or other error",
fie);
@@ -753,10 +707,12 @@
if (tempFile != null) tempFile.delete();
}
}
- throw new AtomException("Incorrect path information");
+ throw new AtomException("Error saving media entry");
} catch (WebloggerException re) {
- throw new AtomException("Posting media");
+ throw new AtomException("Posting media", re);
+ } catch (IOException ioe) {
+ throw new AtomException("Posting media", ioe);
}
}
@@ -835,9 +791,12 @@
* Update resource specified by pathInfo using data from input stream.
* Expects pathInfo of form /blog-name/resource/path/name
*/
- public Entry putMedia(String[] pathInfo,
- String contentType, InputStream is) throws AtomException {
- try {
+ public void putMedia(AtomRequest areq) throws AtomException {
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
+ String contentType = areq.getContentType();
+ try {
+ InputStream is = areq.getInputStream();
+
// authenticated client posted a weblog entry
File tempFile = null;
String handle = pathInfo[0];
@@ -866,7 +825,6 @@
fis.close();
log.debug("Exiting");
- return createAtomResourceEntry(website, resource);
} catch (FileIOException fie) {
throw new AtomException(
@@ -882,6 +840,8 @@
} catch (WebloggerException re) {
throw new AtomException("Posting media");
+ } catch (IOException ioe) {
+ throw new AtomException("Posting media", ioe);
}
}
@@ -891,7 +851,8 @@
/**
* True if URL is the introspection URI.
*/
- public boolean isIntrospectionURI(String[] pathInfo) {
+ public boolean isAtomServiceURI(AtomRequest areq) {
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
if (pathInfo.length==0) return true;
return false;
}
@@ -899,7 +860,8 @@
/**
* True if URL is a entry URI.
*/
- public boolean isEntryURI(String[] pathInfo) {
+ public boolean isEntryURI(AtomRequest areq) {
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
if (pathInfo.length > 2 && pathInfo[1].equals("entry")) return true;
if (pathInfo.length > 2 && pathInfo[1].equals("resource") &&
pathInfo[pathInfo.length-1].endsWith(".media-link")) return true;
return false;
@@ -908,7 +870,8 @@
/**
* True if URL is media edit URI. Media can be udpated, but not metadata.
*/
- public boolean isMediaEditURI(String[] pathInfo) {
+ public boolean isMediaEditURI(AtomRequest areq) {
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
if (pathInfo.length > 1 && pathInfo[1].equals("resource")) return true;
return false;
}
@@ -916,13 +879,19 @@
/**
* True if URL is a collection URI of any sort.
*/
- public boolean isCollectionURI(String[] pathInfo) {
+ public boolean isCollectionURI(AtomRequest areq) {
+ String[] pathInfo = StringUtils.split(areq.getPathInfo(),"/");
if (pathInfo.length > 1 && pathInfo[1].equals("entries")) return true;
if (pathInfo.length > 1 && pathInfo[1].equals("resources")) return
true;
if (pathInfo.length > 1 && pathInfo[1].equals("categories")) return
true;
return false;
}
+ public boolean isCategoriesURI(AtomRequest arg0) {
+ return false;
+ }
+
+
//------------------------------------------------------------------
permissions
/**
@@ -1095,7 +1064,7 @@
// Add Atom category for Weblogger category, using category scheme
List categories = new ArrayList();
Category atomCat = new Category();
- atomCat.setScheme(getWeblogCategoryScheme(entry.getWebsite()));
+
atomCat.setScheme(RollerAtomService.getWeblogCategoryScheme(entry.getWebsite()));
atomCat.setTerm(entry.getCategory().getPath().substring(1));
categories.add(atomCat);
@@ -1231,7 +1200,8 @@
for (int i=0; i<categories.size(); i++) {
Category cat = (Category)categories.get(i);
- if (cat.getScheme() != null &&
cat.getScheme().equals(getWeblogCategoryScheme(rollerEntry.getWebsite()))) {
+ if (cat.getScheme() != null && cat.getScheme().equals(
+
RollerAtomService.getWeblogCategoryScheme(rollerEntry.getWebsite()))) {
String catString = cat.getTerm();
if (catString != null) {
WeblogCategory rollerCat =
@@ -1264,11 +1234,10 @@
}
rollerEntry.setTagsAsString(tags);
}
-
- private String getWeblogCategoryScheme(Weblog website) {
- return
WebloggerFactory.getWeblogger().getUrlStrategy().getWeblogURL(website, null,
true);
- }
+ public Categories getCategories(AtomRequest arg0) throws AtomException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
private String filePathFromPathInfo(String[] pathInfo) {
String path = null;
Added:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandlerFactory.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandlerFactory.java?rev=583599&view=auto
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandlerFactory.java
(added)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandlerFactory.java
Wed Oct 10 13:05:03 2007
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.roller.weblogger.webservices.atomprotocol;
+
+import com.sun.syndication.propono.atom.server.AtomHandlerFactory;
+import com.sun.syndication.propono.atom.server.AtomHandler;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Extends [EMAIL PROTECTED]
com.sun.syndication.propono.atom.server.AtomHandlerFactory} to create and
return
+ * [EMAIL PROTECTED]
com.sun.syndication.propono.atom.server.impl.FileBasedAtomHandler}.
+ */
+public class RollerAtomHandlerFactory extends AtomHandlerFactory {
+
+ /**
+ * Create new AtomHandler.
+ */
+ public AtomHandler newAtomHandler( HttpServletRequest req ) {
+ return new RollerAtomHandler(req);
+ }
+}
+
Added:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java?rev=583599&view=auto
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
(added)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
Wed Oct 10 13:05:03 2007
@@ -0,0 +1,155 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.roller.weblogger.webservices.atomprotocol;
+
+import com.sun.syndication.feed.atom.Category;
+import com.sun.syndication.propono.atom.common.AtomService;
+import com.sun.syndication.propono.atom.common.Categories;
+import com.sun.syndication.propono.atom.common.Collection;
+import com.sun.syndication.propono.atom.common.Workspace;
+import com.sun.syndication.propono.atom.server.AtomException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.TreeMap;
+import org.apache.commons.lang.StringUtils;
+import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.FilePathException;
+import org.apache.roller.weblogger.business.Weblogger;
+import org.apache.roller.weblogger.business.WebloggerFactory;
+import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
+import org.apache.roller.weblogger.pojos.ThemeResource;
+import org.apache.roller.weblogger.pojos.User;
+import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogCategory;
+import org.apache.roller.weblogger.pojos.WeblogPermission;
+import org.apache.roller.weblogger.util.Utilities;
+
+
+/**
+ * Roller's Atom service.
+ */
+public class RollerAtomService extends AtomService {
+
+ private Map workspaceMap = new TreeMap();
+ private Map collectionMap = new TreeMap();
+ private static Properties cacheProps = new Properties();
+ private boolean firstTime = true;
+
+ /**
+ * Creates a new instance of FileBasedAtomService.
+ */
+ public RollerAtomService(User user, String atomURL) throws
WebloggerException, AtomException {
+ Weblogger roller = WebloggerFactory.getWeblogger();
+ List perms = null;
+ try {
+ perms = roller.getUserManager().getWeblogPermissions(user);
+ } catch (WebloggerException re) {
+ throw new AtomException("Getting user's weblogs", re);
+ }
+ List uploadAccepts = new ArrayList();
+ try {
+ uploadAccepts = getAcceptedContentTypeRange();
+ } catch (WebloggerException re) {
+ throw new AtomException("Getting site's accept range", re);
+ }
+ if (perms != null) {
+ for (Iterator iter = perms.iterator(); iter.hasNext();) {
+ WeblogPermission perm = (WeblogPermission) iter.next();
+ Weblog weblog = perm.getWeblog();
+ Workspace workspace = null;
+ try {
+
+ // Create workspace to represent weblog
+ workspace = new
Workspace(Utilities.removeHTML(perm.getWeblog().getName()), "text");
+ addWorkspace(workspace);
+
+ // Create collection for entries within that workspace
+ Collection entryCol = new Collection("Weblog Entries",
"text", atomURL + "/" + weblog.getHandle() + "/entries");
+ entryCol.addAccept("application/atom+xml;type=entry");
+
+ // Add fixed categories using scheme that points to
+ // weblog because categories are weblog specific
+ weblog = perm.getWeblog();
+ Categories cats = new Categories();
+ cats.setFixed(true);
+ cats.setScheme(getWeblogCategoryScheme(weblog));
+ List rollerCats =
roller.getWeblogEntryManager().getWeblogCategories(weblog, false);
+ for (Iterator it = rollerCats.iterator(); it.hasNext();) {
+ WeblogCategory rollerCat = (WeblogCategory) it.next();
+ Category cat = new Category();
+ cat.setTerm(rollerCat.getPath().substring(1));
+ cat.setLabel(rollerCat.getName());
+ cats.addCategory(cat);
+ }
+ entryCol.addCategories(cats);
+
+ // Add tags as free-form categories using scheme that
points
+ // to site because tags can be considered site-wide
+ Categories tags = new Categories();
+ tags.setFixed(false);
+ entryCol.addCategories(tags);
+
+ workspace.addCollection(entryCol);
+ } catch (Exception e) {
+ 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
+ ThemeResource[] dirs;
+ try {
+ dirs = roller.getFileManager().getDirectories(weblog);
+ for (int i = 0; i < dirs.length; i++) {
+ Collection uploadSubCol = new Collection("Media Files:
" + dirs[i].getPath(), "text", atomURL + "/" + weblog.getHandle() +
"/resources/" + dirs[i].getPath());
+ uploadSubCol.setAccepts(uploadAccepts);
+ workspace.addCollection(uploadSubCol);
+ }
+ } catch (FilePathException fpe) {
+ throw new AtomException("Creating weblog entry collection
for service doc", fpe);
+ }
+ }
+ }
+ }
+
+ /**
+ * Build accept range by taking things that appear to be content-type
rules
+ * from site's file-upload allowed extensions.
+ */
+ private List getAcceptedContentTypeRange() throws WebloggerException {
+ List accepts = new ArrayList();
+ Weblogger roller = WebloggerFactory.getWeblogger();
+ Map config = roller.getPropertiesManager().getProperties();
+ String allows =
((RuntimeConfigProperty)config.get("uploads.types.allowed")).getValue();
+ String[] rules =
StringUtils.split(StringUtils.deleteWhitespace(allows), ",");
+ for (int i=0; i<rules.length; i++) {
+ if (rules[i].indexOf("/") == -1) continue;
+ accepts.add(rules[i]);
+ }
+ return accepts;
+ }
+
+ public static String getWeblogCategoryScheme(Weblog website) {
+ return
WebloggerFactory.getWeblogger().getUrlStrategy().getWeblogURL(website, null,
true);
+ }
+}
+
Added:
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/propono.properties
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/propono.properties?rev=583599&view=auto
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/propono.properties
(added)
+++
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/propono.properties
Wed Oct 10 13:05:03 2007
@@ -0,0 +1,2 @@
+com.sun.syndication.propono.atom.server.AtomHandlerFactory=\
+org.apache.roller.weblogger.webservices.atomprotocol.RollerAtomHandlerFactory
Modified:
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/rome.properties
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/rome.properties?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/rome.properties
(original)
+++
roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/rome.properties
Wed Oct 10 13:05:03 2007
@@ -51,15 +51,4 @@
rss_1.0.item.ModuleGenerator.classes
=com.sun.syndication.io.impl.DCModuleGenerator \
org.apache.roller.planet.util.rome.ContentModuleGenerator
-
-# Handle Atom Pub Protocol pubcontrol extension
-
-atom_1.0.item.ModuleParser.classes
=org.apache.roller.weblogger.webservices.atomprotocol.AppModuleParser
-
-atom_1.0.item.ModuleGenerator.classes
=org.apache.roller.weblogger.webservices.atomprotocol.AppModuleGenerator
-
-
-
-
-
Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/sun-web.xml
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/sun-web.xml?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/sun-web.xml
(original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/sun-web.xml Wed
Oct 10 13:05:03 2007
@@ -10,8 +10,8 @@
</session-config>
<resource-ref>
- <res-ref-name>jdbc/rollerdb</res-ref-name>
- <jndi-name>jdbc/rollerdb</jndi-name>
+ <res-ref-name>jdbc/SocialFish/RollerDB</res-ref-name>
+ <jndi-name>jdbc/SocialFish/RollerDB</jndi-name>
</resource-ref>
<resource-ref>
Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/web.xml?rev=583599&r1=583598&r2=583599&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/web.xml (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/web.xml Wed Oct
10 13:05:03 2007
@@ -298,7 +298,7 @@
<servlet>
<servlet-name>AtomServlet</servlet-name>
-
<servlet-class>org.apache.roller.weblogger.webservices.atomprotocol.AtomServlet</servlet-class>
+
<servlet-class>com.sun.syndication.propono.atom.server.AtomServlet</servlet-class>
</servlet>
<servlet>
@@ -539,7 +539,7 @@
<!-- jndi resources -->
<resource-ref>
- <res-ref-name>jdbc/rollerdb</res-ref-name>
+ <res-ref-name>jdbc/SocialFish/RollerDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Added: roller/branches/roller_4.1_dev/tools/lib/rome-0.9.1-dev.jar
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/tools/lib/rome-0.9.1-dev.jar?rev=583599&view=auto
==============================================================================
Binary file - no diff available.
Propchange: roller/branches/roller_4.1_dev/tools/lib/rome-0.9.1-dev.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: roller/branches/roller_4.1_dev/tools/lib/rome-propono-0.7.jar
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/tools/lib/rome-propono-0.7.jar?rev=583599&view=auto
==============================================================================
Binary file - no diff available.
Propchange: roller/branches/roller_4.1_dev/tools/lib/rome-propono-0.7.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream