org.kgj.playlist.metier.checkAndDispatch.DispatcherPersistenceSide.java Source code

Java tutorial

Introduction

Here is the source code for org.kgj.playlist.metier.checkAndDispatch.DispatcherPersistenceSide.java

Source

package org.kgj.playlist.metier.checkAndDispatch;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.log4j.Logger;
import org.kgj.pds.playlist.metier.messagingProtocol.Query;
import org.kgj.pds.playlist.metier.messagingService.ServeurHttpPersistenceSideMessagingServiceManager;

public class DispatcherPersistenceSide {
    private static final Logger logger = Logger.getLogger(DispatcherPersistenceSide.class);

    public final String WEBAPP_PROTOCOL = "http://";
    public final String WEBAPP_VS_HOSTNAME = "localhost";
    public final String WEBAPP_VS_PORT = "8080";
    public final String WEBAPP_VS_SERVLETNAME = "PlaylistMetierServeurHttpViewSide/setMessage";

    public void dispatch(Query query) {

        if (query.getAction().getNameAction().equals("test")) {
            sendMockedPersistRepToVS(query);
        } else {
            sendToPersistence(query);
        }
    }

    private void sendMockedPersistRepToVS(Query query) {
        String queryString = ServeurHttpPersistenceSideMessagingServiceManager.getInstance().queryToString(query);
        String playlist = "<ns2:playlist version=\"1\"><ns2:title>title</ns2:title><ns2:creator>foo</ns2:creator><ns2:annotation>annotation</ns2:annotation><ns2:info>http://tempuri.org</ns2:info><ns2:location>http://tempuri.org</ns2:location><ns2:identifier>http://tempuri.org</ns2:identifier><ns2:image>http://tempuri.org</ns2:image><ns2:date>2001-12-31T12:00:00</ns2:date><ns2:license>http://tempuri.org</ns2:license><ns2:attribution><ns2:identifier>http://tempuri.org</ns2:identifier></ns2:attribution><ns2:link rel=\"http://tempuri.org\">http://tempuri.org</ns2:link><ns2:meta rel=\"http://tempuri.org\">meta</ns2:meta><ns2:extension application=\"http://tempuri.org\" /><ns2:trackList><ns2:track><ns2:location>file:///C:/music/foo.mp3</ns2:location><ns2:title>Windows Path</ns2:title><ns2:creator>Creator after</ns2:creator><ns2:album>Album first</ns2:album><ns2:duration>2976018</ns2:duration></ns2:track><ns2:track><ns2:location>file:///media/music/foo.mp3</ns2:location><ns2:title>Linux Path</ns2:title><ns2:creator>Creator after</ns2:creator><ns2:album>Album first</ns2:album><ns2:duration>2976018</ns2:duration></ns2:track><ns2:track><ns2:location>music/foo.mp3</ns2:location><ns2:title>Relative Path</ns2:title><ns2:creator>Creator after</ns2:creator><ns2:album>Album first</ns2:album><ns2:duration>2976018</ns2:duration></ns2:track><ns2:track><ns2:location>http://www.example.com/music/bar.ogg</ns2:location><ns2:title>External Example</ns2:title><ns2:creator>Creator after</ns2:creator><ns2:album>Album first</ns2:album><ns2:duration>2976018</ns2:duration></ns2:track></ns2:trackList></ns2:playlist>";
        logger.warn(queryString);
        logger.warn(playlist);

        String finale = queryString.split("</ns2:query>")[0].concat(playlist).concat("</ns2:query>").toString();

        sendToVS(finale);
    }

    private String getUrlViewSide() {
        logger.debug("Construct url of Persistence side webapp");

        StringBuilder url = new StringBuilder();
        url.append(WEBAPP_PROTOCOL);
        url.append(WEBAPP_VS_HOSTNAME).append(":");
        url.append(WEBAPP_VS_PORT).append("/");
        url.append(WEBAPP_VS_SERVLETNAME);

        return url.toString();
    }

    public void sendToPersistence(Query query) {
        ServeurHttpPersistenceSideMessagingServiceManager messageManager = ServeurHttpPersistenceSideMessagingServiceManager
                .getInstance();
        messageManager.send(messageManager.queryToString(query));
    }

    public void sendToVS(Query query) {

        HttpClient client = new HttpClient();
        PostMethod post = new PostMethod(getUrlViewSide());

        post.addParameter("query",
                ServeurHttpPersistenceSideMessagingServiceManager.getInstance().queryToString(query));

        try {
            int statusRequest = client.executeMethod(post);

            if (statusRequest != -1) {
                logger.info("Acknowledge http request : " + post.getResponseBodyAsString());
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void sendToVS(String queryToString) {

        HttpClient client = new HttpClient();
        PostMethod post = new PostMethod(getUrlViewSide());

        post.addParameter("query", queryToString);

        try {
            int statusRequest = client.executeMethod(post);

            if (statusRequest != -1) {
                logger.info("Acknowledge http request : " + post.getResponseBodyAsString());
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}