Thank you for the response.
I have the following rough class.
package com.daisytechnologies.basket;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.servlets.HtmlResponse;
import org.apache.sling.servlets.post.SlingPostOperation;
import org.apache.sling.servlets.post.SlingPostProcessor;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
/**
*
* @scr.component metatype="no" immediate="true"
* @scr.service
interface="org.apache.sling.servlets.post.SlingPostOperation"
* @scr.property name="sling.post.operation" value="createBasket"
*/
public class CreateBasketPostOperation implements SlingPostOperation {
public void run(SlingHttpServletRequest request, HtmlResponse
htmlResponse, SlingPostProcessor[] slingPostProcessors) {
Session session =
request.getResourceResolver().adaptTo(Session.class);
try {
Session superSession = session.getRepository().login(new
SimpleCredentials("admin", "admin".toCharArray()));
final String path = request.getResource().getPath();
Node basketsNode = (Node)superSession.getItem(path);
Node basketNode =
basketsNode.addNode(Long.toString(System.currentTimeMillis()));
htmlResponse.onCreated(basketNode.getPath());
superSession.save();
superSession.logout();
} catch (RepositoryException e) {
e.printStackTrace();
}
}
}
And the following in my pom
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Sling-Initial-Content>initial-content;overwrite:=true;uninstall=true</Sling-Initial-Content>
<Private-Package>>
com.daisytechnologies.basket
</Private-Package>>
</instructions>
</configuration>
</plugin>
the bundle deploys ok but when I execute the following command
curl -F":operation=addBasket" http://127.0.0.1:8080/mollycupcakes/baskets
I get the following error..
Status
500
Message
Invalid operation specified for POST request
Location <http://127.0.0.1:8080/mollycupcakes/baskets>Parent
Location<http://127.0.0.1:8080/mollycupcakes/baskets>
Path
Refererhttp://127.0.0.1:8080/mollycupcakesChangeLog
any ideas where im going wrong?
Also how do i inject the SlingRepository into the post operation?
2010/1/29 Bertrand Delacretaz <[email protected]>
> On Fri, Jan 29, 2010 at 12:55 PM, Vidar Ramdal <[email protected]> wrote:
> > .... Node basketsParent =
> session.getItem(req.getResource().getPath());
> > Node basket = basketsParent.addNode(/* generate a unique name */);
> > ...
>
> To "unique name" I'd add "impossible to guess" to prevent people from
> messing up with other people's baskets.
>
> -Bertrand
>