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

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

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

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/OSMStreetnameHelper.java revision 2409 by torben, Sat Feb 28 16:14:55 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/OSMStreetnameHelper.java revision 2566 by torben, Thu Jun 4 19:29:39 2015 UTC
# Line 4  import java.net.URLEncoder; Line 4  import java.net.URLEncoder;
4    
5  import com.google.gson.Gson;  import com.google.gson.Gson;
6    
7    import com.google.common.util.concurrent.RateLimiter;
8    
9    
10  import dk.daoas.daoadresseservice.admin.ServiceConfig;  import dk.daoas.daoadresseservice.admin.ServiceConfig;
11  import dk.daoas.daoadresseservice.beans.OSMAddress;  import dk.daoas.daoadresseservice.beans.OSMAddress;
12    import dk.daoas.daoadresseservice.beans.SearchRequest;
13  import dk.daoas.daoadresseservice.beans.SearchResult;  import dk.daoas.daoadresseservice.beans.SearchResult;
14  import dk.daoas.daoadresseservice.util.HttpUtil;  import dk.daoas.daoadresseservice.util.HttpUtil;
15  import dk.thoerup.circuitbreaker.CircuitBreaker;  import dk.thoerup.circuitbreaker.CircuitBreaker;
# Line 15  import dk.thoerup.circuitbreaker.Circuit Line 19  import dk.thoerup.circuitbreaker.Circuit
19  public class OSMStreetnameHelper implements StreetnameHelper {  public class OSMStreetnameHelper implements StreetnameHelper {
20                    
21          ServiceConfig conf;          ServiceConfig conf;
22            RateLimiter limiter;
23                    
24          public OSMStreetnameHelper(ServiceConfig conf) {          public OSMStreetnameHelper(ServiceConfig conf) {
25                  this.conf = conf;                  this.conf = conf;
26    
27                    limiter = RateLimiter.create( 10.0 ); //Max 10 requests pr sekund
28          }          }
29    
30          @Override          @Override
31          public String proposeStreetName(SearchResult result, int postnr, String vejnavn) {          public String proposeStreetName(SearchRequest request, SearchResult result) {
32                  if (conf.useOpenStreetMaps == false)                  if (conf.useOpenStreetMaps == false)
33                          return null;                          return null;
34                                    
35                    limiter.acquire();
36    
37                  result.osm = true;                  result.osm = true;
38                                    
39                  try {                  try {
40    
41                          OSMInvocation wrapper = new OSMInvocation( conf, postnr, vejnavn );                          OSMInvocation wrapper = new OSMInvocation( conf, request.postnr, request.vejnavn );
42                          CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("osm");                          CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("osm");
43    
44                          result.osmVej = (String) breaker.invoke(wrapper);                          result.osmVej = (String) breaker.invoke(wrapper);

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

  ViewVC Help
Powered by ViewVC 1.1.20