Perhaps I've misunderstood what the annotations are for in a Sling servlet or what they control.
I have a servlet defined with the following:
@Component(immediate = true, metatype = false, label = "File Processor Servlet")
@Service(serviceFactory = false, value = javax.servlet.Servlet.class)
@Properties(value = {
@org.apache.felix.scr.annotations.Property(name = "sling.servlet.methods", value = { "GET" }),
@org.apache.felix.scr.annotations.Property(name = "sling.servlet.extensions", value = { "json" }),
@org.apache.felix.scr.annotations.Property(name = "sling.servlet.paths", value = { "/bin/FileProcessor" })
Now this can be deployed and works fine (I'm using a CQ5.3 environment btw), which is good and everyone is happy.
However it was only when I was taking someone through my code that I realised I'd implemented the doDelete() method which also works fine, but as you can see, I have not declared it as a method in the sling.servlet.methods property in the annotations.
I had assumed that the omission of DELETE as a method in the annotations would have caused problems and the servlet would be blocked from handling it.
Have I missed the point of these annotations?
Cheers.