[Yanel-commits] rev 21799 - public/yanel/trunk/src/core/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Tue Jan 16 17:10:01 CET 2007


Author: michi
Date: 2007-01-16 17:09:59 +0100 (Tue, 16 Jan 2007)
New Revision: 21799

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
create new atom entries fixed

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-01-16 16:08:58 UTC (rev 21798)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-01-16 16:09:59 UTC (rev 21799)
@@ -456,26 +456,25 @@
             if (contentType.indexOf("application/atom+xml") >= 0) {
                 InputStream in = intercept(request.getInputStream());
                 try {
-                    Resource atomEntry = rtr.newResource("<{http://www.wyona.org/yanel/resource/1.0}atom-entry/>");
-                    atomEntry.setYanel(yanel);
-                    // TODO: Initiate Atom Feed Resource Type to get actual path for saving ...
-                    log.error("DEBUG: Atom Feed: " + request.getServletPath() + " " + request.getRequestURI());
-                    Path entryPath = new Path(request.getServletPath() + "/" + new java.util.Date().getTime() + ".xml");
+                    String atomEntryUniversalName = "<{http://www.wyona.org/yanel/resource/1.0}atom-entry/>";
+                    org.wyona.yanel.core.map.Realm realm = yanel.getMap().getRealm(request.getServletPath());
+                    Path newEntryPath = yanel.getMap().getPath(realm, request.getServletPath() + "/" + new java.util.Date().getTime() + ".xml");
 
-                    atomEntry.setPath(entryPath);
+                    log.error("DEBUG: Realm and Path of new Atom entry: " + realm + " " + newEntryPath);
+                    Resource atomEntryResource = yanel.getResourceManager().getResource(request, response, realm, newEntryPath, new ResourceTypeRegistry().getResourceTypeDefinition(atomEntryUniversalName), new org.wyona.yanel.core.ResourceTypeIdentifier(atomEntryUniversalName, null));
                     
-                    ((ModifiableV2)atomEntry).write(in);
+                    ((ModifiableV2)atomEntryResource).write(in);
 
                     byte buffer[] = new byte[8192];
                     int bytesRead;
-                    InputStream resourceIn = ((ModifiableV2)atomEntry).getInputStream();
+                    InputStream resourceIn = ((ModifiableV2)atomEntryResource).getInputStream();
                     OutputStream responseOut = response.getOutputStream();
                     while ((bytesRead = resourceIn.read(buffer)) != -1) {
                         responseOut.write(buffer, 0, bytesRead);
                     }
 
                     // TODO: Fix Location ...
-                    response.setHeader("Location", "http://ulysses.wyona.org" + entryPath);
+                    response.setHeader("Location", "http://ulysses.wyona.org" + newEntryPath);
                     response.setStatus(javax.servlet.http.HttpServletResponse.SC_CREATED);
                     return;
                 } catch (Exception e) {




More information about the Yanel-commits mailing list