import { Router } from \'@vertx/web\';
// مسیر همه درخواست ها را براساس مسیر طراحی اپلیکیشن درخواست مهم انتخاب نمائید
const app = Router.router(vertx);
app.get(\'/greetings\').handler(function (ctx) {
// موتور drools خود را در این جا فراخوانی خواهیم کرد
});
vertx
// ایجاد کرد یک سرور HTTP
.createHttpServer()
// هر درخواستی را به نرم افزار خویش ارسال خواهیم کرد.
.requestHandler(function (req) {
app.accept(req);
})
// اعتنا به پورت 8080
.listen(8080);
نکاتی درباره کد بالا
دقت داشته باشید کهاین کد ابدا غامض وجود ندارد و توضیحات به طور بدون نقص در آن آمده اند، براین اساس اذن دهید که بر روی مورد مخلوط کردن آن با موتور JVM تمرکز کنیم و کتابخانه ها را به طور یک ضابطه Drools دربیاوریم. از آنجایی که Drools یک ابزار مطابق لهجه نرمافزار نویسی جاوا میباشد ما می بایست نرم افزار مد حیث خویش را با استعمال از ابزارهای ایجاد کرد نرم افزار جاوا بسازیم. خوشبختانه از آن جایی که vertx-script بیت های JVM را به Apache maven منتقل می نماید شغل رنج در پیش نداریم.
mkdir -p src/main/java/drools
mkdir -p src/main/resources/drools
اکنون میتوانیم فولدر src/main/resources/drools/rules.drl را با به کارگیری از محتوای تحت به پروژه خویش اضافه کنیم:
package drools
//لیست همه کلاس های ایمپورت گردیده در اینجا جای دارد
//کلیه متغیرهای گلوبال این پروژه در این مکان تمجید میگردند
rule "Greetings"
when
greetingsReferenceObject: Greeting( message == "Hello World!" )
then
greetingsReferenceObject.greet();
end
اکنون قادر خواهیم بود پوشه src/main/java/drools/Greeting.java را با به کارگیری از محتوای ذیل به پروژه خویش اضافه کنیم:
package drools;
public interface Greeting {
String getMessage();
void greet();
}
و در غایت نیز کلاس کمکی src/main/java/drools/DroolsHelper.java را نیز با استعمال از کدهای ذیل به پروژه اضافه میکنیم:
package drools;
import org.drools.compiler.compiler.*;
import org.drools.core.*;
import java.io.*;
public final class DroolsHelper {
/**
* یک کد بی آلایش برای ساختن Drools WorkingMemory براساس یک فولدر ‘drl’ اخذ گردیده
*/
public static WorkingMemory load(String drl) throws IOException, DroolsParserException {
PackageBuilder packageBuilder = new PackageBuilder();
packageBuilder.addPackageFromDrl(new StringReader(drl));
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(packageBuilder.getPackage());
return ruleBase.newStatefulSession();
}
/**
* یک کد معمولی و خوب برای تشکیل داد شی ها
*/
public static Greeting createGreeting(String message, Runnable andThen) {
return new Greeting() {
@Override
public String getMessage() {
return message;
}
@Override
public void greet() {
andThen.run();
}
};
}
}