Package com.wordpress.salaboy

Source Code of com.wordpress.salaboy.HornetQMessageTest

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.wordpress.salaboy;

import com.wordpress.salaboy.messaging.MessageConsumer;
import com.wordpress.salaboy.messaging.MessageFactory;
import com.wordpress.salaboy.messaging.MessageProducer;
import com.wordpress.salaboy.messaging.MessageServerSingleton;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.impl.ByteArrayResource;
import org.drools.runtime.StatefulKnowledgeSession;
import org.hornetq.api.core.HornetQException;
import org.hornetq.core.server.HornetQServer;
import org.jgroups.protocols.MFC;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

/**
*
* @author salaboy
*/
public class HornetQMessageTest {

    private HornetQServer server;
    private MessageConsumer consumer;

    public HornetQMessageTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() throws Exception {
        //Server Configuration
        MessageServerSingleton.getInstance().start();

        //Consumer Configuration
        consumer = MessageFactory.createMessageConsumer("IncomingCall");
    }

    @After
    public void tearDown() throws Exception {
        consumer.stop();
        MessageServerSingleton.getInstance().stop();
    }

    @Test
    public void hornetQSimple() throws HornetQException {
        MessageProducer producer = MessageFactory.createMessageProducer();

        String message = "Hello HornetQ!";
        producer.sendMessage(message);
        System.out.println(">> Sending Message: " + message);

        producer.stop();
       
        Object object = consumer.receiveMessage();
        Assert.assertNotNull(object);
        Assert.assertEquals(message, object.toString());

    }
    @Test
    public void messagingWithRulesTest() throws HornetQException {
        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        String rules = "package org.test;\n"
                + "import com.wordpress.salaboy.messaging.MessageProducer;"
                + "global MessageProducer messageProducer;\n"
                + "rule \"test messageProducer as global\"\n"
                + " when\n"
                + "     eval(true)\n"
                + " then\n"
                + "     messageProducer.sendMessage(\"Hello Message Producer\");\n"
                + "end\n";

        kbuilder.add(new ByteArrayResource(rules.getBytes()), ResourceType.DRL);

        if (kbuilder.getErrors().size() > 0) {
            throw new IllegalStateException("Error = " + kbuilder.getErrors().iterator().next().getMessage());
        }

        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

        MessageProducer producer = MessageFactory.createMessageProducer();

        ksession.setGlobal("messageProducer", producer);
       
       
        ksession.fireAllRules();
       
        producer.stop();
       
        Object object = consumer.receiveMessage();
        Assert.assertNotNull(object);
        Assert.assertEquals("Hello Message Producer", object.toString());
       
    }
   
 
}
TOP

Related Classes of com.wordpress.salaboy.HornetQMessageTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.