Package org.drools.guvnor.server

Examples of org.drools.guvnor.server.ServiceImplementation


    /**
     * This shows we need to load up the model without anything attached yet.
     */
    public void testModelWithNoAttachment() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        PackageItem item = repo.createPackage( "testmodelWithNoAttachment",
                                               "to test model loading" );

        item.addAsset( "testModel",
View Full Code Here


public class BuiltInSelectorTest extends GuvnorTestBase {

    @Test
    public void testBuiltInSelector() throws Exception {
        ServiceImplementation impl = getServiceImplementation();
        impl.getRulesRepository().loadDefaultPackage();
        impl.getRulesRepository().createPackage( "testBuiltInSelectorPackage",
                                       "woot" );
        impl.getRulesRepository().createState( "Dev" );
        impl.getRulesRepository().createState( "QA" );

        CategoryItem cat = impl.getRulesRepository().loadCategory( "/" );
        cat.addCategory( "testBuiltInSelectorCat1",
                         "yeah" );
        cat.addCategory( "testBuiltInSelectorCat2",
                         "yeah" );

        String uuid1 = impl.createNewRule( "test AddRule1",
                                           "a description",
                                           "testBuiltInSelectorCat1",
                                           "testBuiltInSelectorPackage",
                                           "txt" );
        AssetItem item1 = impl.getRulesRepository().loadAssetByUUID( uuid1 );
        item1.updateState( "Dev" );
        String uuid2 = impl.createNewRule( "test AddRule2",
                                           "a description",
                                           "testBuiltInSelectorCat1",
                                           "testBuiltInSelectorPackage",
                                           "txt" );
        AssetItem item2 = impl.getRulesRepository().loadAssetByUUID( uuid2 );
        item2.updateState( "QA" );
        String uuid3 = impl.createNewRule( "test AddRule3",
                                           "a description",
                                           "testBuiltInSelectorCat2",
                                           "testBuiltInSelectorPackage",
                                           "txt" );
        AssetItem item3 = impl.getRulesRepository().loadAssetByUUID( uuid3 );
        item3.updateState( "Dev" );
        String uuid4 = impl.createNewRule( "test AddRule4",
                                           "a description",
                                           "testBuiltInSelectorCat2",
                                           "testBuiltInSelectorPackage",
                                           "txt" );
        AssetItem item4 = impl.getRulesRepository().loadAssetByUUID( uuid4 );
        item4.updateState( "QA" );

        //Select asset using "category ="
        BuiltInSelector selector1 = (BuiltInSelector) SelectorManager.getInstance().getSelector( "BuiltInSelector" );
        selector1.setCategory( "testBuiltInSelectorCat1" );
View Full Code Here

    @Test
    public void testAttachFile() throws Exception {

        FileManagerUtils uploadHelper = getFileManagerUtils();

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        AssetItem item = repo.loadDefaultPackage().addAsset( "testUploadFile",
                                                             "description" );
        item.updateFormat( "drl" );
        FormData upload = new FormData();
View Full Code Here

    }

    @Test
    public void testAttachModel() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        PackageItem pkg = repo.createPackage( "testAttachModelImports",
                                              "heh" );
        AssetItem asset = pkg.addAsset( "MyModel",
                                        "" );
View Full Code Here

    @Test
    public void testGetFilebyUUID() throws Exception {
        FileManagerUtils uploadHelper = getFileManagerUtils();

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        AssetItem item = repo.loadDefaultPackage().addAsset( "testGetFilebyUUID",
                                                             "description" );
        item.updateFormat( "drl" );
        FormData upload = new FormData();
View Full Code Here

    }

    @Test
    public void testGetPackageBinaryAndSource() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        RepositoryPackageService repoPackageService = getRepositoryPackageService();

        long before = System.currentTimeMillis();
        Thread.sleep( 20 );
View Full Code Here

    @Test
    @Ignore("This test is broken. The approach needs to be revised - i.e. not use FileManagerUtils to handle repository sessions.")
    public void testHeadOOME() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        PackageItem pkg = repo.createPackage( "testHeadOOME",
                                              "" );
        DroolsHeader.updateDroolsHeader( "import java.util.List",
                                                  pkg );
View Full Code Here

    }

    private void updatePackage(String nm) throws Exception {
        System.err.println( "---> Updating the package " );

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        PackageItem pkg = repo.loadPackage( nm );
        pkg.updateDescription( System.currentTimeMillis() + "" );
        pkg.checkin( "a change" );
        repo.logout();
View Full Code Here

public class PackageDeploymentServletTest extends TestCase {

  public void FIXMEtestLoadingRules() throws Exception {
    RulesRepository repo = new RulesRepository( TestEnvironmentSessionHelper.getSession( true ) );

    ServiceImplementation impl = new ServiceImplementation();
    impl.repository = repo;

    PackageItem pkg = repo.createPackage("testPDSGetPackage", "");
    AssetItem header  = pkg.addAsset("drools", "");
    header.updateFormat("package");
    header.updateContent("import org.drools.SampleFact\n global org.drools.SampleFact sf");
    header.checkin("");


    AssetItem asset = pkg.addAsset("someRule", "");
    asset.updateContent("when \n SampleFact() \n then \n System.err.println(42);");
    asset.updateFormat(AssetFormats.DRL);
    asset.checkin("");

    assertNull(impl.buildPackage(pkg.getUUID(), true));



    //check source
    PackageDeploymentServlet serv = new PackageDeploymentServlet();
    MockHTTPRequest req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST.drl", null);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    MockHTTPResponse res = new MockHTTPResponse(out);
    serv.doGet(req, res);

    assertNotNull(out.toByteArray());
    String drl = new String(out.toByteArray());
    assertTrue(drl.indexOf("rule") > -1);


    //now binary
    serv = new PackageDeploymentServlet();
    req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST", null);
    out = new ByteArrayOutputStream();
    res = new MockHTTPResponse(out);
    serv.doGet(req, res);

    assertNotNull(out.toByteArray());
    byte[] bin = out.toByteArray();
    byte[] bin_ = pkg.getCompiledPackageBytes();

        org.drools.rule.Package o = (org.drools.rule.Package) DroolsStreamUtils.streamIn( new ByteArrayInputStream(bin) );
        assertNotNull(o);
        assertEquals(1, o.getRules().length);
        assertEquals(1, o.getGlobals().size());

    assertEquals(bin_.length, bin.length);

    assertSameArray(bin_, bin);

    //now some snapshots
    impl.createPackageSnapshot("testPDSGetPackage", "SNAP1", false, "hey");

    serv = new PackageDeploymentServlet();
    req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1.drl", null);
    out = new ByteArrayOutputStream();
    res = new MockHTTPResponse(out);
    serv.doGet(req, res);

    assertNotNull(out.toByteArray());
    drl = new String(out.toByteArray());
    assertTrue(drl.indexOf("rule") > -1);

    //now binary
    serv = new PackageDeploymentServlet();
    req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1", null);
    out = new ByteArrayOutputStream();
    res = new MockHTTPResponse(out);
    serv.doGet(req, res);

    assertNotNull(out.toByteArray());
    bin = out.toByteArray();
    bin_ = pkg.getCompiledPackageBytes();
    assertEquals(bin_.length, bin.length);


    //now get an individual asset source
    serv = new PackageDeploymentServlet();
    req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1/someRule.drl", null);
    out = new ByteArrayOutputStream();
    res = new MockHTTPResponse(out);
    serv.doGet(req, res);

    assertNotNull(out.toByteArray());
    drl = new String(out.toByteArray());
    System.err.println(drl);
    assertTrue(drl.indexOf("rule") > -1);
    assertEquals(-1, drl.indexOf("package"));


        //now test HEAD
        serv = new PackageDeploymentServlet();
        req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST", null);
        req.method = "HEAD";
        out = new ByteArrayOutputStream();
        res = new MockHTTPResponse(out);
        serv.doHead(req, res);
        assertTrue(res.headers.size() > 0);
        String lm = res.headers.get("Last-Modified");
        assertNotNull(lm);

        serv = new PackageDeploymentServlet();
        req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST", null);
        req.method = "HEAD";
        out = new ByteArrayOutputStream();
        res = new MockHTTPResponse(out);
        serv.doHead(req, res);
        assertTrue(res.headers.size() > 0);

        assertEquals(lm, res.headers.get("Last-Modified"));

        serv = new PackageDeploymentServlet();
        req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST.drl", null);
        req.method = "HEAD";
        out = new ByteArrayOutputStream();
        res = new MockHTTPResponse(out);
        serv.doHead(req, res);
        assertTrue(res.headers.size() > 0);

        assertEquals(lm, res.headers.get("Last-Modified"));
        System.out.println(lm);


        //
        //now lets run it in a real server !
        //
        Server server = new Server(9000);

        Context ctx = new Context(server, "/", Context.SESSIONS);




        ctx.addServlet(new ServletHolder(new PackageDeploymentServlet()), "/package/*");
       

        server.setStopAtShutdown(true);
        server.start();

        ResourceFactory.getResourceChangeNotifierService().start();
        ResourceFactory.getResourceChangeScannerService().start();

        ResourceChangeScannerConfiguration sconf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
        sconf.setProperty( "drools.resource.scanner.interval", "1" );
        ResourceFactory.getResourceChangeScannerService().configure( sconf );



        String xml = "";
        xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
        xml += "    xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
        xml += "    xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >";
        xml += "    <add> ";
        xml += "        <resource source='http://localhost:9000/package/testPDSGetPackage/LATEST.drl' type='DRL' />";
        xml += "    </add> ";
        xml += "</change-set>";

        FileManager fileManager = new FileManager();
        fileManager.setUp();

        File fxml = fileManager.newFile( "changeset.xml" );
        Writer output = new BufferedWriter( new FileWriter( fxml ) );
        output.write( xml );
        output.close();


        KnowledgeAgent ag = KnowledgeAgentFactory.newKnowledgeAgent("fii", KnowledgeAgentFactory.newKnowledgeAgentConfiguration());
        ag.applyChangeSet( ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );

        KnowledgeBase kb = ag.getKnowledgeBase();
        assertEquals(1, kb.getKnowledgePackages().size());
        KnowledgePackage kp = kb.getKnowledgePackages().iterator().next();
        assertTrue(kb.getKnowledgePackages().size() > 0);
        assertEquals(1, kp.getRules().size());


        //check the HEAD method
        HttpClient client = new HttpClient();
        HeadMethod hm = new HeadMethod("http://localhost:9000/package/testPDSGetPackage/LATEST.drl");
        client.executeMethod(hm);
        Header lastMod = hm.getResponseHeader("lastModified");
        Thread.sleep(50);
        long now = System.currentTimeMillis();
        long before = Long.parseLong(lastMod.getValue());
        assertTrue(before < now);


        //now lets add a rule
        asset = pkg.addAsset("someRule2", "");
        asset.updateContent("when \n SampleFact() \n then \n System.err.println(43);");
        asset.updateFormat(AssetFormats.DRL);
        asset.checkin("");

        assertNull(impl.buildPackage(pkg.getUUID(), true));



        Thread.sleep(3000);

View Full Code Here

  }

  public void testScenariosAndChangeSet() throws Exception {
    RulesRepository repo = new RulesRepository( TestEnvironmentSessionHelper.getSession( true ) );

    ServiceImplementation impl = new ServiceImplementation();
    impl.repository = repo;

    repo.createPackage("testScenariosURL", "");
    impl.createPackageSnapshot("testScenariosURL", "SNAP1", false, "");

    Base64 enc = new Base64();
        String userpassword = "test" + ":" + "password";
        final String encodedAuthorization = enc.encodeToString( userpassword.getBytes() );     
View Full Code Here

TOP

Related Classes of org.drools.guvnor.server.ServiceImplementation

Copyright © 2018 www.massapicom. 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.