/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/GoogleStreetnameHelper.java
ViewVC logotype

Diff of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/GoogleStreetnameHelper.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/GoogleStreetnameHelper.java revision 2409 by torben, Sat Feb 28 16:14:55 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/GoogleStreetnameHelper.java revision 2566 by torben, Thu Jun 4 19:29:39 2015 UTC
# Line 10  import com.google.code.geocoder.model.Ge Line 10  import com.google.code.geocoder.model.Ge
10  import com.google.code.geocoder.model.GeocoderResult;  import com.google.code.geocoder.model.GeocoderResult;
11  import com.google.code.geocoder.model.GeocoderStatus;  import com.google.code.geocoder.model.GeocoderStatus;
12    
13    import com.google.common.util.concurrent.RateLimiter;
14    
15  import dk.daoas.daoadresseservice.admin.ServiceConfig;  import dk.daoas.daoadresseservice.admin.ServiceConfig;
16    import dk.daoas.daoadresseservice.beans.SearchRequest;
17  import dk.daoas.daoadresseservice.beans.SearchResult;  import dk.daoas.daoadresseservice.beans.SearchResult;
18  import dk.thoerup.circuitbreaker.CircuitBreaker;  import dk.thoerup.circuitbreaker.CircuitBreaker;
19  import dk.thoerup.circuitbreaker.CircuitBreakerManager;  import dk.thoerup.circuitbreaker.CircuitBreakerManager;
# Line 19  import dk.thoerup.circuitbreaker.Circuit Line 22  import dk.thoerup.circuitbreaker.Circuit
22  public class GoogleStreetnameHelper implements StreetnameHelper {  public class GoogleStreetnameHelper implements StreetnameHelper {
23                    
24          ServiceConfig conf;          ServiceConfig conf;
25            RateLimiter limiter;
26    
27          public GoogleStreetnameHelper(ServiceConfig conf) {          public GoogleStreetnameHelper(ServiceConfig conf) {
28                  this.conf = conf;                  this.conf = conf;
29    
30                    limiter = RateLimiter.create( 10.0 ); //max 10 req /sec
31          }          }
32    
33          @Override          @Override
34          public String proposeStreetName(SearchResult result, int postnr, String vejnavn) {          public String proposeStreetName(SearchRequest request, SearchResult result) {
35                  if (conf.useGoogle == false)                  if (conf.useGoogle == false)
36                          return null;                          return null;
37                                    
38                    limiter.acquire();
39    
40                  result.google = true;                  result.google = true;
41                                    
42                  try {                  try {
43                          GoogleInvocation wrapper = new GoogleInvocation( conf, postnr, vejnavn );                          GoogleInvocation wrapper = new GoogleInvocation( conf, request.postnr, request.vejnavn );
44                          CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("google");                          CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("google");
45    
46                                                    

Legend:
Removed from v.2409  
changed lines
  Added in v.2566

  ViewVC Help
Powered by ViewVC 1.1.20