public void receive()

in modules/core/src/main/java/org/apache/savan/atom/AtomMessageReceiver.java [30:142]


    public void receive(MessageContext messageCtx) throws AxisFault {

        try {
            //String resourcePath = messageCtx.getTo().getAddress();
            //http://127.0.0.1:5555/axis2/services/PublisherService/atom?a=urn_uuid_96C2CB953DABC98DFC1179904343537.atom


            HttpServletRequest request = (HttpServletRequest)messageCtx
                    .getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
            if (request == null || HTTPConstants.HEADER_GET.equals(request.getMethod()) ||
                HTTPConstants.HEADER_POST.equals(request.getMethod())) {
                SOAPEnvelope envlope = messageCtx.getEnvelope();
                OMElement bodyContent = envlope.getBody().getFirstElement();

                OMElement feedID = bodyContent.getFirstElement();


                String feedIDAsUrn = feedID.getText().replaceAll("_", ":").replaceAll(".atom", "");

                SubscriberStore store = CommonUtil.getSubscriberStore(messageCtx.getAxisService());
                if (store == null)
                    throw new AxisFault("Cant find the Savan subscriber store");


                AtomSubscriber subscriber = (AtomSubscriber)store.retrieve(feedIDAsUrn);

                SOAPFactory fac = getSOAPFactory(messageCtx);
                SOAPEnvelope envelope = fac.getDefaultEnvelope();

                OMElement result = subscriber.getFeedAsXml();

//				String pathWRTRepository = "atom/"+feedID.getText();
//				
//				File atomFile = messageCtx.getConfigurationContext().getRealPath(pathWRTRepository);
//				if(pathWRTRepository.equals("atom/all.atom") && !atomFile.exists()){
//					AtomSubscriber atomSubscriber = new AtomSubscriber();
//					atomSubscriber.setId(new URI("All"));
//					atomSubscriber.setAtomFile(atomFile);
//					atomSubscriber.setAuthor("DefaultUser");
//					atomSubscriber.setTitle("default Feed");
//					
//					String serviceAddress = messageCtx.getTo().getAddress();
//					int cutIndex = serviceAddress.indexOf("services");
//					if(cutIndex > 0){
//						serviceAddress = serviceAddress.substring(0,cutIndex-1);
//					}
//					atomSubscriber.setFeedUrl(serviceAddress+"/services/"+messageCtx.getServiceContext().getAxisService().getName() +"/atom?feed=all.atom");
//					
//					
//					SubscriberStore store = CommonUtil.getSubscriberStore(messageCtx.getAxisService());
//					if (store == null)
//						throw new AxisFault ("Cant find the Savan subscriber store");
//					store.store(atomSubscriber);
//				}
//
//				
//				if(!atomFile.exists()){
//					throw new AxisFault("no feed exisits for "+feedID.getText() + " no file found "+ atomFile.getAbsolutePath());
//				}
//				FileInputStream atomIn =  new FileInputStream(atomFile);

                //add the content of the file to the response
//	            XMLStreamReader xmlreader = StAXUtils.createXMLStreamReader
//		            (atomIn, MessageContext.DEFAULT_CHAR_SET_ENCODING);
//		        StAXBuilder builder = new StAXOMBuilder(fac,xmlreader);
//		        OMElement result = (OMElement) builder.getDocumentElement();
                envelope.getBody().addChild(result);

                //send beck the response
                MessageContext outMsgContext =
                        MessageContextBuilder.createOutMessageContext(messageCtx);
                outMsgContext.getOperationContext().addMessageContext(outMsgContext);
                outMsgContext.setEnvelope(envelope);

                AxisEngine.send(outMsgContext);

            } else if (HTTPConstants.HEADER_POST.equals(request.getMethod())) {
                SOAPEnvelope envlope = messageCtx.getEnvelope();
                OMElement bodyContent = envlope.getBody().getFirstElement();

                OMElement feedID = bodyContent.getFirstElement();
                String pathWRTRepository = "atom/" + feedID.getText();

                //remove the file
                File atomFile = messageCtx.getConfigurationContext().getRealPath(pathWRTRepository);
                atomFile.delete();

                //remove the feed from subscriber store
                String feedIDAsUrn = feedID.getText().replaceAll("_", ":");
                SubscriberStore store = CommonUtil.getSubscriberStore(messageCtx.getAxisService());
                if (store == null)
                    throw new AxisFault("Cant find the Savan subscriber store");
                store.delete(feedIDAsUrn);
            }

        } catch (SOAPProcessingException e) {
            e.printStackTrace();
            throw AxisFault.makeFault(e);

        } catch (OMException e) {
            e.printStackTrace();
            throw AxisFault.makeFault(e);
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//			throw new AxisFault(e);
//		} catch (XMLStreamException e) {
//			e.printStackTrace();
//			throw new AxisFault(e);
//		} catch (URISyntaxException e) {
//			e.printStackTrace();
//			throw new AxisFault(e);
        }
    }