You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ug...@apache.org on 2007/06/08 16:10:11 UTC
svn commit: r545512 [2/2] - in /labs/nucleus: ./ branches/ tags/ trunk/
trunk/.settings/ trunk/src/ trunk/src/main/ trunk/src/main/java/
trunk/src/main/java/org/ trunk/src/main/java/org/apache/
trunk/src/main/java/org/apache/labs/ trunk/src/main/java/o...
Added: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java
URL: http://svn.apache.org/viewvc/labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java?view=auto&rev=545512
==============================================================================
--- labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java (added)
+++ labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java Fri Jun 8 07:10:08 2007
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.labs.nucleus.test;
+
+import org.apache.abdera.protocol.server.provider.TargetType;
+import org.apache.abdera.protocol.server.util.RegexTargetResolver;
+
+/**
+ *
+ * @version $Id$
+ */
+public class BlogTargetResolver extends RegexTargetResolver {
+
+ public BlogTargetResolver() {
+ super("");
+ setPattern("/(\\?[^#]*)?", TargetType.TYPE_SERVICE);
+ setPattern("/blogs/([^/#?]+)/?", TargetType.TYPE_COLLECTION);
+ setPattern("/blogs/([^/#?]+)/([^/#?]+)(\\?[^#]*)?", TargetType.TYPE_ENTRY);
+ }
+
+}
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogTargetResolver.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java
URL: http://svn.apache.org/viewvc/labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java?view=auto&rev=545512
==============================================================================
--- labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java (added)
+++ labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java Fri Jun 8 07:10:08 2007
@@ -0,0 +1,234 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.labs.nucleus.test;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.abdera.Abdera;
+import org.apache.abdera.factory.Factory;
+import org.apache.abdera.i18n.iri.IRI;
+import org.apache.abdera.model.Collection;
+import org.apache.abdera.model.Document;
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.Feed;
+import org.apache.abdera.model.Service;
+import org.apache.abdera.model.Workspace;
+import org.apache.abdera.protocol.client.Client;
+import org.apache.abdera.protocol.client.ClientResponse;
+import org.apache.abdera.protocol.client.CommonsClient;
+import org.apache.abdera.protocol.client.RequestOptions;
+import org.apache.abdera.test.client.JettyTest;
+import org.apache.abdera.test.client.JettyUtil;
+import org.apache.labs.nucleus.server.servlet.NucleusServlet;
+
+
+/**
+ *
+ * @version $Id$
+ */
+public class BlogservTest extends JettyTest {
+
+ private static final String SERVER_URL = "http://localhost:8080/";
+ private static final String APPLICATION_CONTEXT_CLASSPATH_LOCATION = "applicationContext.xml";
+ private static Abdera abdera = new Abdera();
+
+ private static Factory getFactory() {
+ return abdera.getFactory();
+ }
+
+ @Override
+ protected void getServletHandler() {
+ Map<String, String> params = new HashMap<String, String>(1);
+ params.put(NucleusServlet.APPLICATION_CONTEXT_LOCATION_PARAMETER, APPLICATION_CONTEXT_CLASSPATH_LOCATION);
+ JettyUtil.addServlet(NucleusServlet.class.getName(), "/*", params);
+ }
+
+ public void testGetServiceDocument() throws Exception {
+ Client client = new CommonsClient();
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ // do the introspection step
+ ClientResponse response = client.get(SERVER_URL, options);
+ assertEquals(200, response.getStatus());
+ Document<Service> service_doc = response.getDocument();
+ assertNotNull(service_doc);
+ assertEquals(1, service_doc.getRoot().getWorkspaces().size());
+ Workspace workspace = service_doc.getRoot().getWorkspace("blogs");
+ assertNotNull(workspace);
+ for (Collection c: workspace.getCollections()) {
+ assertNotNull(c.getTitle());
+ assertNotNull(c.getHref());
+ assertTrue(c.getHref().toString().startsWith(workspace.getTitle() + '/'));
+ }
+ response.release();
+ }
+
+ public void testReadFeed() throws Exception {
+ Client client = new CommonsClient();
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ ClientResponse response = client.get(SERVER_URL + "blogs/bbc", options);
+ assertEquals(200, response.getStatus());
+
+ Feed feed = (Feed) response.getDocument().getRoot();
+ assertEquals("Testing feed length", 2, feed.getEntries().size());
+ response.release();
+ }
+
+ public void testReadUpdatedFeed() throws Exception {
+ Client client = new CommonsClient();
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ // do the introspection step
+ ClientResponse response = client.get(SERVER_URL, options);
+ Document<Service> service_doc = response.getDocument();
+ Collection coll = service_doc.getRoot().getWorkspace("blogs").getCollections().get(0);
+ IRI collIri = coll.getResolvedHref();
+ response = client.get(collIri.toString(), options);
+ Feed feed = (Feed) response.getDocument().getRoot();
+ int n = feed.getEntries().size();
+ response.release();
+ response = createBasicEntry(client);
+ response.release();
+
+ response = client.get(collIri.toString(), options);
+ feed = (Feed) response.getDocument().getRoot();
+ assertEquals("Testing feed length", n + 1, feed.getEntries().size());
+ assertEquals("Testing new entry title", "A test post", feed.getEntries().get(0).getTitle());
+ response.release();
+ }
+
+ public void testCreateEntry() throws Exception {
+
+ Client client = new CommonsClient();
+ ClientResponse response = createBasicEntry(client);
+
+ assertEquals(201, response.getStatus());
+ assertNotNull(response.getLocation());
+ response.release();
+ }
+
+ public void testCreateAndReadEntry() throws Exception {
+
+ Client client = new CommonsClient();
+ ClientResponse response = createBasicEntry(client);
+
+ assertEquals(201, response.getStatus());
+ assertNotNull(response.getLocation());
+ response.release();
+
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ response = client.get(response.getLocation().toString(), options);
+ assertEquals(200, response.getStatus());
+ Document<Entry> doc = response.getDocument();
+ Entry entry = doc.getRoot();
+ assertEquals("Some text", entry.getContent());
+ response.release();
+ }
+
+ public void testDeleteEntry() throws Exception {
+
+ Client client = new CommonsClient();
+ ClientResponse response = createBasicEntry(client);
+
+ assertEquals(201, response.getStatus());
+ assertNotNull(response.getLocation());
+ String location = response.getLocation().toString();
+ response.release();
+
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ response = client.get(location, options);
+ assertEquals(200, response.getStatus());
+ Document<Entry> doc = response.getDocument();
+ Entry entry = doc.getRoot();
+ assertNotNull("link rel='edit' must not be null", entry.getEditLinkResolvedHref());
+ response.release();
+
+ response = client.delete(entry.getEditLinkResolvedHref().toString(), options);
+ assertEquals(200, response.getStatus());
+ response.release();
+
+ response = client.get(location, options);
+ assertEquals(404, response.getStatus());
+ response.release();
+ }
+
+ public void testUpdateEntry() throws Exception {
+
+ Client client = new CommonsClient();
+ ClientResponse response = createBasicEntry(client);
+
+ assertEquals(201, response.getStatus());
+ assertNotNull(response.getLocation());
+ response.release();
+
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ response = client.get(response.getLocation().toString(), options);
+ assertEquals(200, response.getStatus());
+ Document<Entry> doc = response.getDocument();
+ Entry entry = doc.getRoot();
+ assertNotNull("link rel='edit' must not be null", entry.getEditLinkResolvedHref());
+ response.release();
+
+ entry.setContent("Modified text");
+ response = client.put(entry.getEditLinkResolvedHref().toString(), entry, options);
+ assertEquals(200, response.getStatus());
+ doc = response.getDocument();
+ Entry entry2 = doc.getRoot();
+ assertEquals("Modified text", entry2.getContent());
+ response.release();
+ }
+
+ private ClientResponse createBasicEntry(Client client) throws Exception {
+ RequestOptions options = client.getDefaultRequestOptions();
+ options.setHeader("Connection", "close");
+ // do the introspection step
+ ClientResponse response = client.get(SERVER_URL, options);
+ Document<Service> service_doc = response.getDocument();
+ Workspace workspace = service_doc.getRoot().getWorkspace("blogs");
+ Collection coll = workspace.getCollections().get(0);
+ IRI iri = coll.getResolvedHref();
+
+ // post a new entry
+ Entry entry = getFactory().newEntry();
+ entry.setTitle("A test post");
+ entry.setContent("Some text");
+ entry.setId("test" + System.currentTimeMillis());
+ entry.setUpdated(new Date());
+ options.setSlug("test" + System.currentTimeMillis());
+ response = client.post(iri.toString(), entry, options);
+
+ if (response.getStatus() != 201) {
+ BufferedReader br = new BufferedReader(new InputStreamReader(response.getInputStream()));
+ String line;
+ while ((line = br.readLine()) != null) {
+ System.err.println(line);
+ }
+ }
+
+ return response;
+ }
+}
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/BlogservTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java
URL: http://svn.apache.org/viewvc/labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java?view=auto&rev=545512
==============================================================================
--- labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java (added)
+++ labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java Fri Jun 8 07:10:08 2007
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.labs.nucleus.test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.abdera.Abdera;
+import org.apache.abdera.i18n.iri.IRI;
+import org.apache.abdera.i18n.iri.IRISyntaxException;
+import org.apache.abdera.model.Collection;
+import org.apache.abdera.model.Document;
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.Feed;
+import org.apache.abdera.parser.ParseException;
+import org.apache.labs.nucleus.store.EntryNotFoundException;
+import org.apache.labs.nucleus.store.Store;
+import org.apache.labs.nucleus.store.StoreException;
+
+
+
+public class FileBasedBlogStore implements Store {
+
+ private File rootDir;
+ private Abdera abdera;
+
+ public void setRootDir(File rootDir) {
+ this.rootDir = rootDir;
+ }
+
+ public void setAbdera(Abdera abdera) {
+ this.abdera = abdera;
+ }
+
+ public java.util.Collection<String> listWorkspaces() {
+ return Arrays.asList(new String[] { "blogs" });
+ }
+
+ public java.util.Collection<Collection> listCollections(String workspace) {
+ File[] files = rootDir.listFiles();
+ List<Collection> colls = new ArrayList<Collection>(files.length);
+ for (int i = 0 ; i < files.length ; ++i) {
+ if (files[i].isDirectory() && ! files[i].isHidden()) {
+ Collection sc = abdera.getFactory().newCollection();
+ sc.setTitle(files[i].getName());
+ colls.add(sc);
+ }
+ }
+ return colls;
+ }
+
+ public Entry createEntry(IRI iri, Entry entry, String slug) {
+ try {
+ entry.setId("tag:blog.example.com,2006:" + slug);
+ } catch (IRISyntaxException e) {
+ throw new StoreException(e);
+ }
+ entry.setUpdated(new Date());
+ String pathInfo[] = iri.toString().split("/");
+ String dir = pathInfo[pathInfo.length - 1];
+ File file = new File(new File(this.rootDir, dir), slug);
+ FileOutputStream out = null;
+ try {
+ out = new FileOutputStream(file);
+ entry.writeTo(out);
+ } catch (FileNotFoundException e) {
+ throw new StoreException("File not found: " + file, e);
+ } catch (IOException e) {
+ throw new StoreException(e);
+ } finally {
+ if (out != null) try {
+ out.close();
+ } catch (IOException ignored) {}
+ }
+ return entry;
+ }
+
+ public Entry updateEntry(IRI iri, Entry entry) throws StoreException {
+ entry.setUpdated(new Date());
+ String pathInfo[] = iri.toString().split("/");
+ String dir = pathInfo[pathInfo.length - 2];
+ String slug = pathInfo[pathInfo.length - 1];
+ File file = new File(new File(this.rootDir, dir), slug);
+ FileOutputStream out = null;
+ try {
+ out = new FileOutputStream(file);
+ entry.writeTo(out);
+ } catch (FileNotFoundException e) {
+ throw new StoreException("File not found: " + file, e);
+ } catch (IOException e) {
+ throw new StoreException(e);
+ } finally {
+ if (out != null) try {
+ out.close();
+ } catch (IOException ignored) {}
+ }
+ return entry;
+ }
+
+ public Entry getEntry(IRI iri) throws StoreException {
+ String pathInfo[] = iri.toString().split("/");
+ String dir = pathInfo[pathInfo.length - 2];
+ String slug = pathInfo[pathInfo.length - 1];
+ File file = new File(new File(this.rootDir, dir), slug);
+ try {
+ Document<Entry> doc = this.abdera.getParser().parse(new FileInputStream(file));
+ Entry entry = doc.getRoot();
+ if (entry.getEditLink() == null) {
+ entry.addLink(iri.toString(), "edit");
+ }
+ return entry;
+ } catch (ParseException e) {
+ throw new StoreException("Can't parse " + file);
+ } catch (FileNotFoundException e) {
+ throw new EntryNotFoundException("File not found: " + file);
+ } catch (IRISyntaxException e) {
+ throw new StoreException(e);
+ }
+ }
+
+ public void deleteEntry(IRI iri) {
+ String pathInfo[] = iri.toString().split("/");
+ String dir = pathInfo[pathInfo.length - 2];
+ String slug = pathInfo[pathInfo.length - 1];
+ File file = new File(new File(this.rootDir, dir), slug);
+ file.delete();
+ }
+
+
+ public Feed getEntries(IRI iri) {
+ String pathInfo[] = iri.toString().split("/");
+ String dir = pathInfo[pathInfo.length - 1];
+ File[] files = new File(rootDir, dir).listFiles();
+ Feed feed = abdera.getFactory().newFeed();
+ long lastModified = 0;
+ for (int i = 0 ; i < files.length ; ++i) {
+ if (files[i].isFile() && ! files[i].isHidden()) {
+ try {
+ Document<Entry> doc = abdera.getParser().parse(new FileInputStream(files[i]));
+ Entry entry = doc.getRoot();
+ if (entry.getEditLink() == null) {
+ entry.addLink(iri.toString() + '/' + files[i].getName(), "edit");
+ }
+ feed.addEntry(entry);
+ if (files[i].lastModified() > lastModified) {
+ lastModified = files[i].lastModified();
+ }
+ } catch (ParseException e) {
+ throw new StoreException("Can't parse " + files[i]);
+ } catch (FileNotFoundException e) {
+ throw new StoreException("File not found: " + files[i], e);
+ } catch (IRISyntaxException e) {
+ throw new StoreException(e);
+ }
+ }
+ }
+ try {
+ feed.setTitle(dir);
+ feed.setUpdated(new Date(lastModified));
+ feed.setId("tag:blog.example.com,2006:" + dir);
+ } catch (IRISyntaxException e) {
+ throw new StoreException(e);
+ }
+ return feed;
+ }
+}
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: labs/nucleus/trunk/src/test/java/org/apache/labs/nucleus/test/FileBasedBlogStore.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: labs/nucleus/trunk/src/test/resources/applicationContext.xml
URL: http://svn.apache.org/viewvc/labs/nucleus/trunk/src/test/resources/applicationContext.xml?view=auto&rev=545512
==============================================================================
--- labs/nucleus/trunk/src/test/resources/applicationContext.xml (added)
+++ labs/nucleus/trunk/src/test/resources/applicationContext.xml Fri Jun 8 07:10:08 2007
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+ <bean name="abdera" class="org.apache.abdera.Abdera"/>
+
+ <bean name="serviceContext" class="org.apache.labs.nucleus.server.SpringBasedServiceContext">
+ <property name="abdera" ref="abdera"/>
+ <property name="providerManager" ref="providerManager"/>
+ <property name="requestHandlerManager">
+ <bean class="org.apache.abdera.protocol.server.servlet.DefaultRequestHandlerManager"/>
+ </property>
+ <property name="subjectResolver">
+ <bean class="org.apache.abdera.protocol.server.util.SimpleSubjectResolver"/>
+ </property>
+ <property name="targetResolver">
+ <bean class="org.apache.labs.nucleus.test.BlogTargetResolver"/>
+ </property>
+ </bean>
+
+ <bean name="providerManager" class="org.apache.labs.nucleus.server.provider.SpringProviderManager">
+ <property name="provider" ref="provider"/>
+ </bean>
+
+ <bean name="provider" class="org.apache.labs.nucleus.store.StoreProvider" autowire="byType">
+ </bean>
+
+ <bean name="store" class="org.apache.labs.nucleus.test.FileBasedBlogStore">
+ <property name="rootDir" value="file:var/blogs"/>
+ <property name="abdera" ref="abdera"/>
+ </bean>
+</beans>
\ No newline at end of file
Propchange: labs/nucleus/trunk/src/test/resources/applicationContext.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: labs/nucleus/trunk/src/test/resources/applicationContext.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: labs/nucleus/trunk/src/test/resources/applicationContext.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: labs/nucleus/trunk/var/blogs/bbc/1.xml
URL: http://svn.apache.org/viewvc/labs/nucleus/trunk/var/blogs/bbc/1.xml?view=auto&rev=545512
==============================================================================
--- labs/nucleus/trunk/var/blogs/bbc/1.xml (added)
+++ labs/nucleus/trunk/var/blogs/bbc/1.xml Fri Jun 8 07:10:08 2007
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<entry xmlns="http://www.w3.org/2005/Atom">
+ <id>tag:channels.theveniceproject.com,2006:bbc/1.xml</id>
+ <title type="text">Nice one</title>
+ <updated>2006-01-01T00:00:00z</updated>
+</entry>
Propchange: labs/nucleus/trunk/var/blogs/bbc/1.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: labs/nucleus/trunk/var/blogs/bbc/1.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: labs/nucleus/trunk/var/blogs/bbc/1.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: labs/nucleus/trunk/var/blogs/bbc/2.xml
URL: http://svn.apache.org/viewvc/labs/nucleus/trunk/var/blogs/bbc/2.xml?view=auto&rev=545512
==============================================================================
--- labs/nucleus/trunk/var/blogs/bbc/2.xml (added)
+++ labs/nucleus/trunk/var/blogs/bbc/2.xml Fri Jun 8 07:10:08 2007
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<entry xmlns="http://www.w3.org/2005/Atom">
+ <id>tag:channels.theveniceproject.com,2006:bbc/2.xml</id>
+ <title type="text">Another one</title>
+ <updated>2006-01-01T12:00:00z</updated>
+</entry>
Propchange: labs/nucleus/trunk/var/blogs/bbc/2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: labs/nucleus/trunk/var/blogs/bbc/2.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: labs/nucleus/trunk/var/blogs/bbc/2.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org