Pārlūkot izejas kodu

WIP. adapting RuleEngine to chunked filtering

tags/v0.2.0
Jonathan Cobb pirms 5 gadiem
vecāks
revīzija
bb41c0078c
3 mainītis faili ar 21 papildinājumiem un 17 dzēšanām
  1. +2
    -3
      bubble-server/src/main/java/bubble/resources/stream/AppRuleHarness.java
  2. +12
    -13
      bubble-server/src/main/java/bubble/resources/stream/FilterHttpResource.java
  3. +7
    -1
      bubble-server/src/main/java/bubble/resources/stream/RuleEngine.java

+ 2
- 3
bubble-server/src/main/java/bubble/resources/stream/AppRuleHarness.java Parādīt failu

@@ -20,7 +20,6 @@ public class AppRuleHarness implements Comparable<AppRuleHarness> {
this.rule = rule;
}

@Override public int compareTo(AppRuleHarness other) {
return HasPriority.compare(other.getRule(), getRule());
}
@Override public int compareTo(AppRuleHarness other) { return HasPriority.compare(other.getRule(), getRule()); }

}

+ 12
- 13
bubble-server/src/main/java/bubble/resources/stream/FilterHttpResource.java Parādīt failu

@@ -187,21 +187,20 @@ public class FilterHttpResource {

if (log.isDebugEnabled()) {
log.debug("filterHttp: starting with requestId="+requestId+", deviceId="+deviceId+", matchersJson="+matchersJson+", contentType="+contentType+", last="+last);

// for now, just try to return unmodified...
// if (last != null && last) {
// log.debug("filterHttp: DEBUG: last chunk detected, returning empty response");
// return ok(); // no response body
// } else {
// log.debug("filterHttp: DEBUG: chunk detected, returning chunk as passthru response");
// return passthru(request);
// }
}

final boolean isLast = last != null && last;
return ruleEngine.applyRulesToChunkAndSendResponse(
request, filterRequest.getId(), filterRequest.getAccount(), filterRequest.getDevice(), filterRequest.getMatchers(),
isLast);
// for now, just try to return unmodified...
if (last != null && last) {
log.debug("filterHttp: DEBUG: last chunk detected, returning empty response");
return ok(); // no response body
} else {
log.debug("filterHttp: DEBUG: chunk detected, returning chunk as passthru response");
return passthru(request);
}
// final boolean isLast = last != null && last;
// return ruleEngine.applyRulesToChunkAndSendResponse(
// request, filterRequest.getId(), filterRequest.getAccount(), filterRequest.getDevice(), filterRequest.getMatchers(),
// isLast);
}

public Response passthru(@Context ContainerRequest request) { return ruleEngine.passthru(request); }


+ 7
- 1
bubble-server/src/main/java/bubble/resources/stream/RuleEngine.java Parādīt failu

@@ -7,6 +7,7 @@ import bubble.model.account.Account;
import bubble.model.app.AppMatcher;
import bubble.model.app.AppRule;
import bubble.model.app.RuleDriver;
import bubble.model.device.Device;
import bubble.rule.AppRuleDriver;
import bubble.server.BubbleConfiguration;
import lombok.Cleanup;
@@ -56,7 +57,12 @@ public class RuleEngine {
@Autowired private RuleDriverDAO driverDAO;
@Autowired private BubbleConfiguration configuration;

public boolean preprocess(FilterMatchersRequest filter, Request req, ContainerRequest request, Account account, String matcherUuid) {
public boolean preprocess(FilterMatchersRequest filter,
Request req,
ContainerRequest request,
Account account,
Device device,
String matcherUuid) {
final AppRuleHarness ruleHarness = initRules(account, new String[]{ matcherUuid }).get(0);
return ruleHarness.getDriver().preprocess(ruleHarness, filter, account, req, request);
}


Notiek ielāde…
Atcelt
Saglabāt