Re: [rules-users] Drools and serialize

2011-07-13 Thread clement.pernot
Sorry, I am new to java/drools. I have less than 1year practice.
I know that my code it's bad, but my goal is to understand how it's work,
then I can make some good stuff.

I realise some improvement in this moment. (I have suppress the line that
you are talking ;)  )

Thank you for all tip.
Serialize and de-serialize work fine.

Have a nice day,
Clement Pernot

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-and-serialize-tp3161882p3165175.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools and serialize

2011-07-12 Thread clement.pernot
Thank you for all your tips.

I think I have found the solution. (the project run)
Now for test that, I try to make a project who can un-serialize this.

There it is:

package com.sample;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.marshalling.Marshaller;
import org.drools.marshalling.MarshallerFactory;
import org.drools.marshalling.ObjectMarshallingStrategy;
import org.drools.runtime.StatefulKnowledgeSession;


/**
 * This is a sample class to launch a rule.
 */
public class test{

 private static void compileRuleBase2( String drlPath, String rbPath )
throws Exception {
KnowledgeBuilder kBuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add( ResourceFactory.newFileResource( drlPath ),
ResourceType.DRL );
if( kBuilder.hasErrors() ){
for( KnowledgeBuilderError err: kBuilder.getErrors() ){
System.err.println( err.toString() );
}
throw new IllegalStateException( "DRL errors" );
}
KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); 
kBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

try {
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = 
kbase.newStatefulKnowledgeSession();

// go !
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);

ksession.insert(message);

ObjectMarshallingStrategy oms =
MarshallerFactory.newIdentityMarshallingStrategy();
Marshaller marshaller = MarshallerFactory.newMarshaller(
ksession.getKnowledgeBase(), new ObjectMarshallingStrategy[]{ oms } );

OutputStream os = new FileOutputStream( rbPath );
ObjectOutputStream oos = new ObjectOutputStream( os );
marshaller.marshall( os, ksession );
  
oos.close();

ksession.fireAllRules();


} catch (Throwable t) {
t.printStackTrace();
}


}

public static final void main(String[] args) {
try{
compileRuleBase2("Sample.drl", 
"drools_compiled_file_with_fact" );
} catch (Exception e) {
e.printStackTrace();
}

}

private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = 
KnowledgeBuilderFactory.newKnowledgeBuilder();
 
kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"),
ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error: errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse 
knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kbase;
}

public static class Message implements Serializable{

public static final int HELLO = 0;
public static final int GOODBYE = 1;

private String message;

private int status;

public String getMessage() {
return this.message;
}

public void setMessage(String message) {
this.message = message;
}

public int getStatus() {
return this.status;
}

public void setStatus(int status) {
this.status = status;
}

}

}

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-and-serialize-tp3161882p3162316.html
Sent from the Drool

Re: [rules-users] Drools and serialize

2011-07-12 Thread clement.pernot
I have try what you say. This didn't work.
here is my full code:

package com.sample;

import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.marshalling.Marshaller;
import org.drools.marshalling.MarshallerFactory;
import org.drools.marshalling.ObjectMarshallingStrategy;
import org.drools.runtime.StatefulKnowledgeSession;

public class test{

private static void compileRuleBase2( String drlPath, String rbPath )
throws Exception {
KnowledgeBuilder kBuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add( ResourceFactory.newFileResource( drlPath ),
ResourceType.DRL );
if( kBuilder.hasErrors() ){
for( KnowledgeBuilderError err: kBuilder.getErrors() ){
System.err.println( err.toString() );
}
throw new IllegalStateException( "DRL errors" );
}
KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); 
kBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

try {
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = 
kbase.newStatefulKnowledgeSession();

Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);

ksession.insert(message);

ObjectMarshallingStrategy oms =
MarshallerFactory.newIdentityMarshallingStrategy();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Marshaller marshaller = MarshallerFactory.newMarshaller(
ksession.getKnowledgeBase(), new ObjectMarshallingStrategy[]{ oms } );

marshaller.marshall( baos, ksession );
  
ObjectOutputStream out = new ObjectOutputStream( baos );
out.writeObject( marshaller );
out.close();
 
baos.close();
ksession.fireAllRules();

} catch (Throwable t) {
t.printStackTrace();
}
}

public static final void main(String[] args) {
try {
compileRuleBase2("Sample.drl", 
"drools_compiled_file_with_fact" );
} catch (Exception e) {
e.printStackTrace();
}
}

private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = 
KnowledgeBuilderFactory.newKnowledgeBuilder(); 
kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"),
ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error: errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse 
knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kbase;
}

public static class Message implements Serializable{

public static final int HELLO = 0;
public static final int GOODBYE = 1;
private String message;
private int status;

public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public int getStatus() {
return this.status;
}
public void setStatus(int status) {
this.status = status;
}   
}
}



here is my error:

java.io.NotSerializableException:
org.drools.marshalling.impl.DefaultMarshaller
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at com.sample.test.compileRuleBase2(test.java:59)
at com.sample.test.main(test.java:73)


Thank you fo

Re: [rules-users] Drools and serialize

2011-07-12 Thread clement.pernot
Thank you for the hint, I will try that.
I don't know how to do this for the moment, but I will found.

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-and-serialize-tp3161882p3161977.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


[rules-users] Drools and serialize

2011-07-12 Thread clement.pernot
Hi,

I want to serialize a StatefulKnowledgeSession in drools (which have rule
and fact)
Actually i know how to serialize a KnowledgeBase.

Here is my code for serialize a KnowledgeBase:

KnowledgeBuilder kBuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add( ResourceFactory.newFileResource( "Sample.drl" ),
ResourceType.DRL );
if( kBuilder.hasErrors() ){
for( KnowledgeBuilderError err: kBuilder.getErrors() ){
System.err.println( err.toString() );
}
throw new IllegalStateException( "DRL errors" );
}
KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); 
kBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );
OutputStream os = new FileOutputStream( "droolsCompiledFile" );
ObjectOutputStream oos = new ObjectOutputStream( os );
oos.writeObject( kBase );
oos.close();

This work fine, no problem here.


Here is my code for serialize a StatefulKnowledgeSession:

KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add( ResourceFactory.newFileResource(  "Sample.drl" ),
ResourceType.DRL );
if( kBuilder.hasErrors() ){
for( KnowledgeBuilderError err: kBuilder.getErrors() ){
System.err.println( err.toString() );
}
throw new IllegalStateException( "DRL errors" );
}
KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); 
kBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

try {
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = 
kbase.newStatefulKnowledgeSession();

Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
ksession.insert(message);

Marshaller marshaller = MarshallerFactory.newMarshaller(
ksession.getKnowledgeBase(), new ObjectMarshallingStrategy[]{
MarshallerFactory.newSerializeMarshallingStrategy() } ); 
ByteArrayOutputStream baos = new 
ByteArrayOutputStream();
ObjectMarshallingStrategy oms =
MarshallerFactory.newIdentityMarshallingStrategy();
marshaller.marshall( baos, ksession );
   ObjectOutputStream out = new ObjectOutputStream( baos );
out.writeObject( marshaller );
out.close();
baos.close();

ksession.fireAllRules();

} catch (Throwable t) {
t.printStackTrace();
}
}

But this didn't work.
I get always the same error:
"java.io.NotSerializableException"
I have try to not implement the "marshall" but this didn't work.
I don't know what I must do. Can someone help me?
Thank.

Best regards,
Clement Pernot

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-and-serialize-tp3161882p3161882.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


[rules-users] OWL and drools expert

2011-06-05 Thread clement.pernot
Hi,

I want to use drools expert with OWL files and embedded this with a program.
Is it possible? If yes, how it's possible? I have search and didn't find
something, if someone can help, I will be grateful.

I know that EulerGUI take OWL files and can compile with drools expert, but
I want to embedded drools expert and OWL files in a program and I think that
it's impossible to make this with EulerGUI.
I don't know if a solution exist for embedded drools expert and OWL files
but a search for it.

Best Regards,
Clément

--
View this message in context: 
http://drools.46999.n3.nabble.com/rules-users-OWL-and-drools-expert-tp3028816p3028816.html
Sent from the Drools: User forum mailing list archive at Nabble.com.

___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] How to run one example of drools in eclipse?

2011-05-18 Thread clement.pernot
Thank you.
With the drools-distribution-5.3.0-SNAPSHOT.zip, i can run the project.

I don't understand why my first project, (download  at
http://download.jboss.org/drools/release/5.1.1.34858.FINAL/drools-5.1.1-examples.zip)
didn't work, but with your help, i have a project which work, thank you :) 

--
View this message in context: 
http://drools.46999.n3.nabble.com/How-to-run-one-example-of-drools-in-eclipse-tp2934660p2956114.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


[rules-users] How to run one example of drools in eclipse?

2011-05-12 Thread clement.pernot
hi,

I have download: "Drools Examples" on http://www.jboss.org/drools/downloads
I use eclipse in order to build.
I have follow this:
https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/README.md
in order to configure eclipse.

I don't know what i must do.

After one build i got this:

Apache Maven 3.0.2 (r1056850; 2011-01-09 01:58:10+0100)
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: /home/newel/eclipse/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: "linux", version: "2.6.35-28-generic", arch: "i386", family: "unix"
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from EMBEDDED/conf/settings.xml
[DEBUG] Reading user settings from /home/newel/.m2/settings.xml
[DEBUG] Using local repository at /home/newel/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for
/home/newel/.m2/repository
[INFO] Scanning for projects...
[DEBUG] Verifying availability of
/home/newel/.m2/repository/org/drools/drools/5.1.1/drools-5.1.1.pom from
[central (http://repo1.maven.org/maven2, releases=true, snapshots=false,
managed=false)]
[DEBUG] Using connector AsyncRepositoryConnector with priority 100 for
http://repo1.maven.org/maven2
[DEBUG] Reading resolution tracking file
/home/newel/.m2/repository/org/drools/drools/5.1.1/drools-5.1.1.pom.lastUpdated
[DEBUG] Writing resolution tracking file
/home/newel/.m2/repository/org/drools/drools/5.1.1/drools-5.1.1.pom.lastUpdated
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were
encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not find artifact
org.drools:drools:pom:5.1.1 in central (http://repo1.maven.org/maven2) and
'parent.relativePath' points at wrong local POM @ line 5, column 11

at
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:325)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:632)
at
org.apache.maven.DefaultMaven.getProjectsForMavenReactor(DefaultMaven.java:581)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:233)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR]   
[ERROR]   The project org.drools:drools-examples:5.1.1
(/home/newel/workspace/drools-5.1.1-examples/drools-examples/pom.xml) has 1
error
[ERROR] Non-resolvable parent POM: Could not find artifact
org.drools:drools:pom:5.1.1 in central (http://repo1.maven.org/maven2) and
'parent.relativePath' points at wrong local POM @ line 5, column 11 -> [Help
2]
org.apache.maven.model.resolution.UnresolvableModelException: Could not find
artifact org.drools:drools:pom:5.1.1 in central
(http://repo1.maven.org/maven2)
at
org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:183)
at
org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:819)
at
org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:670)
at
org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:308)
at
org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:232)
at
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:354)
at
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:305)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:632)
at
org.apache.maven.DefaultMaven.getProjectsForMavenReactor(DefaultMaven.java:581)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:233)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessor