keycloak
関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.authorization.policy.provider.drools.DroolsPolicy クラス
org.keycloak.authorization.policy.provider.drools.DroolsPolicy 連携図
Collaboration graph

関数

 DroolsPolicy (KieServices ks, Policy associatedPolicy)
 
void evaluate (Evaluation evaluation)
 
void dispose ()
 

非公開メンバ関数

long toMillis (final String scannerPeriod, final String scannerPeriodUnit)
 

非公開変数類

final KieContainer kc
 
final KieScanner kcs
 
final String sessionName
 

静的非公開変数類

static final int SESSION_POOL_SIZE = 10
 

詳解

著者
Pedro Igor

構築子と解体子

◆ DroolsPolicy()

org.keycloak.authorization.policy.provider.drools.DroolsPolicy.DroolsPolicy ( KieServices  ks,
Policy  associatedPolicy 
)
inlinepackage
23  {
24  String groupId = associatedPolicy.getConfig().get("mavenArtifactGroupId");
25  String artifactId = associatedPolicy.getConfig().get("mavenArtifactId");
26  String version = associatedPolicy.getConfig().get("mavenArtifactVersion");
27  String scannerPeriod = associatedPolicy.getConfig().get("scannerPeriod");
28  String scannerPeriodUnit = associatedPolicy.getConfig().get("scannerPeriodUnit");
29  this.sessionName = associatedPolicy.getConfig().get("sessionName");
30 
31  this.kc = ks.newKieContainer(ks.newReleaseId(groupId, artifactId, version));
32  this.kcs = ks.newKieScanner(this.kc);
33  this.kcs.start(toMillis(scannerPeriod, scannerPeriodUnit));
34 
35  KieSession session = this.kc.newKieSession(this.sessionName);
36 
37  if (session == null) {
38  throw new RuntimeException("Could not obtain session with name [" + this.sessionName + "].");
39  }
40 
41  session.dispose();
42  }
long toMillis(final String scannerPeriod, final String scannerPeriodUnit)
Definition: DroolsPolicy.java:57
final KieContainer kc
Definition: DroolsPolicy.java:19
final String sessionName
Definition: DroolsPolicy.java:21
final KieScanner kcs
Definition: DroolsPolicy.java:20

関数詳解

◆ dispose()

void org.keycloak.authorization.policy.provider.drools.DroolsPolicy.dispose ( )
inlinepackage
53  {
54  this.kcs.stop();
55  }
final KieScanner kcs
Definition: DroolsPolicy.java:20

◆ evaluate()

void org.keycloak.authorization.policy.provider.drools.DroolsPolicy.evaluate ( Evaluation  evaluation)
inlinepackage
44  {
45  KieSession session = this.kc.newKieSession(this.sessionName);
46 
47  session.insert(evaluation);
48  session.fireAllRules();
49 
50  session.dispose();
51  }
final KieContainer kc
Definition: DroolsPolicy.java:19
final String sessionName
Definition: DroolsPolicy.java:21

◆ toMillis()

long org.keycloak.authorization.policy.provider.drools.DroolsPolicy.toMillis ( final String  scannerPeriod,
final String  scannerPeriodUnit 
)
inlineprivate
57  {
58  switch (scannerPeriodUnit) {
59  case "Seconds":
60  return TimeUnit.SECONDS.toMillis(Integer.valueOf(scannerPeriod));
61  case "Minutes":
62  return TimeUnit.MINUTES.toMillis(Integer.valueOf(scannerPeriod));
63  case "Hours":
64  return TimeUnit.HOURS.toMillis(Integer.valueOf(scannerPeriod));
65  case "Days":
66  return TimeUnit.DAYS.toMillis(Integer.valueOf(scannerPeriod));
67  }
68 
69  throw new RuntimeException("Invalid time period [" + scannerPeriodUnit + "].");
70  }

メンバ詳解

◆ kc

final KieContainer org.keycloak.authorization.policy.provider.drools.DroolsPolicy.kc
private

◆ kcs

final KieScanner org.keycloak.authorization.policy.provider.drools.DroolsPolicy.kcs
private

◆ SESSION_POOL_SIZE

final int org.keycloak.authorization.policy.provider.drools.DroolsPolicy.SESSION_POOL_SIZE = 10
staticprivate

◆ sessionName

final String org.keycloak.authorization.policy.provider.drools.DroolsPolicy.sessionName
private

このクラス詳解は次のファイルから抽出されました: