Erhans Triadi | 31 Jul 2012 10:43
Picon

[rules-dev] Updating Web decision table via REST API

I use Drool Guvnor version 5.2.0.BRMS. I try to updating my Web decision table with Rest API from user guide http://docs.jboss.org/drools/release/5.3.0.Final/drools-guvnor-docs/html/ch09.html#d0e2735

This my source code:

package com.sample;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.core.Response;

import org.apache.cxf.jaxrs.client.WebClient;
import org.drools.ide.common.client.modeldriven.dt52.DTCellValue52;
import org.drools.ide.common.client.modeldriven.dt52.GuidedDecisionTable52;
import org.drools.ide.common.server.util.GuidedDTXMLPersistence;

public class Update {
    public static void main(String args[]){
        WebClient client = WebClient.create("http://127.0.0.1:8081/");
        String authorizationHeader = "Basic " + org.apache.cxf.common.util.Base64Utility.encode("admin:admin".getBytes());
        client.header("Authorization", authorizationHeader);
        String content=client.path("jboss-brms/rest/packages/mortgages/assets/Pricing%20loans/source").accept("text/plain").get(String.class);
        //List<DTCellValue52> lData = new ArrayList<DTCellValue52>();
        List<List<DTCellValue52>> llData = new ArrayList<List<DTCellValue52>>();   
        System.out.println(content);
        GuidedDecisionTable52 dt = GuidedDTXMLPersistence.getInstance().unmarshal(content);
        //llData = dt.getData();
        String oldContent = GuidedDTXMLPersistence.getInstance().marshal(dt);
        System.out.println("Original : \n============\n"+oldContent);
        llData = dt.getData();
        System.out.println("Numeric List idx-1 data-0 = "+llData.get(1).get(2).getNumericValue());
        llData.get(1).get(2).setNumericValue(new BigDecimal(5000));
       

        dt.setData(llData);
        String newContent = GuidedDTXMLPersistence.getInstance().marshal(dt);
        System.out.println("Become : \n============\n"+newContent);
       
        WebClient client2 = WebClient.create("http://127.0.0.1:8081/");
        client2.header("Authorization", authorizationHeader);
        Response response=     client2.path("jboss-brms/rest/packages/mortgages/assets/Pricing%20loans/source").accept("text/xml").put(newContent);
        System.out.println("succeed");
        System.out.println(response.getMetadata());
    }
}


I just try to set new value with 5000.
This code doesn't retrieve error, but the result is not true. My "Pricing loan" asset still not updated with new set value.

Anyone can help?



Best Regards.

_______________________________________________
rules-dev mailing list
rules-dev <at> lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev

Gmane