ABDERA-147: add easymock to dependencies
ABDERA-144: proper logging level for exceptions.
ABDERA-146: bad edit link for entries.
git-svn-id: https://svn.apache.org/repos/asf/incubator/abdera/java/branches/abdera-0.4.0-incubating@649280 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/build/build.xml b/build/build.xml
index c0dec9d..71a7165 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -595,6 +595,9 @@
<get src="${jetty-util.dir}/${jetty-util.jar}" dest="${dependencies}/${jetty-util.jar}" usetimestamp="true" />
<get src="${htmlparser.dir}/${htmlparser.jar}" dest="${dependencies}/${htmlparser.jar}" usetimestamp="true" />
<get src="${htmlparser.dir}/${htmlserializer.jar}" dest="${dependencies}/${htmlserializer.jar}" usetimestamp="true" />
+ <get src="${easymock.dir}/${easymock.jar}" dest="${dependencies}/${easymock.jar}" usetimestamp="true" />
+ <get src="${easymockclassextension.dir}/${easymockclassextension.jar}" dest="${dependencies}/${easymockclassextension.jar}" usetimestamp="true" />
+ <get src="${cglib.dir}/${cglib.jar}" dest="${dependencies}/${cglib.jar}" usetimestamp="true" />
</parallel>
</target>
diff --git a/bundle/pom.xml b/bundle/pom.xml
index e99786c..34d1807 100644
--- a/bundle/pom.xml
+++ b/bundle/pom.xml
@@ -18,13 +18,13 @@
<parent>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera</artifactId>
- <version>0.4.0-incubating</version>
+ <version>0.5.0-incubating-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>abdera-bundle</artifactId>
<packaging>jar</packaging>
<name>Abdera Bundle Jar</name>
- <version>0.4.0-incubating</version>
+ <version>0.5.0-incubating-SNAPSHOT</version>
<description>Bundle of all Abdera jars</description>
<inceptionYear>2006</inceptionYear>
<url>http://incubator.apache.org/abdera</url>
@@ -40,97 +40,97 @@
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-client</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-spring</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-server</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-jcr</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-couchdb</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-filesystem</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-jdbc</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-security</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-gdata</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-geo</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-html</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-json</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-main</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-media</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-oauth</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-opensearch</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-serializer</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-sharing</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-extensions-wsse</artifactId>
- <version>0.4.0-incubating</version>
+ <version>${project.version}</version>
</dependency>
</dependencies>
diff --git a/dependencies/deps.properties b/dependencies/deps.properties
index c6c3063..589b2ba 100644
--- a/dependencies/deps.properties
+++ b/dependencies/deps.properties
@@ -76,4 +76,12 @@
htmlparser.zip=http://about.validator.nu/htmlparser/htmlparser-1.0.5.zip
htmlparser.dir=http://people.apache.org/~jmsnell
htmlparser.jar=htmlparser-1.0.5.jar
-htmlserializer.jar=serializer.jar
\ No newline at end of file
+htmlserializer.jar=serializer.jar
+
+#### Required for tests ####
+easymock.dir=http://repo1.maven.org/maven2/org/easymock/easymock/2.3/
+easymock.jar=easymock-2.3.jar
+easymockclassextension.dir=http://repo1.maven.org/maven2/org/easymock/easymockclassextension/2.3/
+easymockclassextension.jar=easymockclassextension-2.3.jar
+cglib.dir=http://repo1.maven.org/maven2/cglib/cglib-nodep/2.1_3/
+cglib.jar=cglib-nodep-2.1_3.jar
diff --git a/server/pom.xml b/server/pom.xml
index 6e5f2b4..a123b9a 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -14,60 +14,81 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<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/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera</artifactId>
- <version>0.4.0-incubating</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>abdera-server</artifactId>
- <packaging>jar</packaging>
- <name>Abdera Server</name>
- <version>0.4.0-incubating</version>
- <description>Atom Publishing Protocol Specification Server-Side Implementation</description>
-
- <properties>
- <topDir>${basedir}/..</topDir>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-core</artifactId>
- <version>0.4.0-incubating</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-parser</artifactId>
- <version>0.4.0-incubating</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty</artifactId>
- <version>${jetty.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-client</artifactId>
- <version>0.4.0-incubating</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
+<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/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.abdera</groupId>
+ <artifactId>abdera</artifactId>
+ <version>0.4.0-incubating</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>abdera-server</artifactId>
+ <packaging>jar</packaging>
+ <name>Abdera Server</name>
+ <version>0.4.0-incubating</version>
+ <description>Atom Publishing Protocol Specification Server-Side Implementation</description>
+
+ <properties>
+ <topDir>${basedir}/..</topDir>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.abdera</groupId>
+ <artifactId>abdera-core</artifactId>
+ <version>0.4.0-incubating</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.abdera</groupId>
+ <artifactId>abdera-parser</artifactId>
+ <version>0.4.0-incubating</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.abdera</groupId>
+ <artifactId>abdera-client</artifactId>
+ <version>0.4.0-incubating</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>2.3</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>2.3</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>2.1_3</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
diff --git a/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractCollectionAdapter.java b/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractCollectionAdapter.java
index 4a2590b..8865d9e 100755
--- a/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractCollectionAdapter.java
+++ b/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractCollectionAdapter.java
@@ -207,8 +207,8 @@
* @return
*/
protected ResponseContext createErrorResponse(ResponseContextException e) {
- if (log.isInfoEnabled()) {
- log.info("A ResponseException was thrown.", e);
+ if (log.isDebugEnabled()) {
+ log.debug("A ResponseException was thrown.", e);
} else if (e.getResponseContext() instanceof EmptyResponseContext
&& ((EmptyResponseContext)e.getResponseContext()).getStatus() >= 500) {
log.warn("A ResponseException was thrown.", e);
diff --git a/server/src/main/java/org/apache/abdera/protocol/server/impl/DefaultWorkspaceManager.java b/server/src/main/java/org/apache/abdera/protocol/server/impl/DefaultWorkspaceManager.java
index 5613016..d4bceb0 100755
--- a/server/src/main/java/org/apache/abdera/protocol/server/impl/DefaultWorkspaceManager.java
+++ b/server/src/main/java/org/apache/abdera/protocol/server/impl/DefaultWorkspaceManager.java
@@ -32,7 +32,7 @@
public static final String COLLECTION_ADAPTER_ATTRIBUTE = "collectionProvider";
public CollectionAdapter getCollectionAdapter(RequestContext request) {
- String path = request.getTargetBasePath() + request.getTargetPath();
+ String path = request.getContextPath() + request.getTargetPath();
// Typically this happens when a Resolver wants to override the CollectionAdapter being used
CollectionAdapter ca = (CollectionAdapter) request.getAttribute(Scope.REQUEST, COLLECTION_ADAPTER_ATTRIBUTE);
diff --git a/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java b/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java
index ebb6b59..b4b2779 100644
--- a/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java
+++ b/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java
@@ -154,8 +154,8 @@
if (!map.containsKey(var) && value != null) {
map.put(var, value);
}
- }
- return context.getTargetBasePath() + route.expand(getContext(map));
+ }
+ return context.getContextPath() + route.expand(getContext(map));
} else {
return null;
}
diff --git a/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java b/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java
index 104147e..8412d38 100755
--- a/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java
+++ b/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java
@@ -17,6 +17,10 @@
*/
package org.apache.abdera.protocol.server.test.route;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.classextension.EasyMock.createMock;
+import static org.easymock.classextension.EasyMock.replay;
+
import java.util.HashMap;
import java.util.Map;
@@ -24,6 +28,10 @@
import org.apache.abdera.i18n.templates.HashMapContext;
import org.apache.abdera.i18n.templates.Route;
+import org.apache.abdera.protocol.server.RequestContext;
+import org.apache.abdera.protocol.server.Target;
+import org.apache.abdera.protocol.server.context.RequestContextWrapper;
+import org.apache.abdera.protocol.server.impl.RouteManager;
import org.junit.Test;
public class RouteTest extends Assert {
@@ -168,5 +176,20 @@
Map<String, String> vars = route.parse("/base/test/");
assertEquals("test", vars.get("collection"));
}
+
+ @Test
+ public void testUrlFor() throws Exception {
+ RouteManager manager = new RouteManager().addRoute(new Route("entry", "/base/:collection/:entry"));
+ Target targetMock = createMock(Target.class);
+ expect(targetMock.getParameter("collection")).andReturn("entries");
+ expect(targetMock.getParameter("entry")).andReturn("123");
+ replay(targetMock);
+ RequestContext contextMock = createMock(RequestContextWrapper.class);
+ expect(contextMock.getContextPath()).andReturn("/appBase");
+ expect(contextMock.getTarget()).andReturn(targetMock).times(2);
+ replay(contextMock);
+
+ assertEquals(manager.urlFor(contextMock, "entry", null), "/appBase/base/entries/123");
+ }
}