Changeset 4979


Ignore:
Timestamp:
04/15/14 09:50:18 (10 years ago)
Author:
Twan Goosen
Message:

implemented URI resolver and wrote test. To do: implement the handle client it depends on.

Location:
vlo/branches/vlo-3.0/vlo-web-app
Files:
3 added
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/pom.xml

    r4951 r4979  
    169169                    </exclusion>
    170170                </exclusions>
     171        </dependency>
     172        <dependency>
     173            <groupId>com.sun.jersey</groupId>
     174            <artifactId>jersey-client</artifactId>
     175            <version>1.17.1</version>
    171176        </dependency>
    172177    </dependencies>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java

    r4978 r4979  
    1818
    1919import com.google.common.collect.ImmutableList;
    20 import eu.clarin.cmdi.vlo.service.impl.ExclusiveFieldFilter;
    21 import eu.clarin.cmdi.vlo.service.impl.InclusiveFieldFilter;
    2220import com.google.common.collect.Sets;
    2321import eu.clarin.cmdi.vlo.FacetConstants;
    2422import eu.clarin.cmdi.vlo.VloWicketApplication;
    2523import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    26 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;
    2724import eu.clarin.cmdi.vlo.service.FieldFilter;
     25import eu.clarin.cmdi.vlo.service.HandleClient;
    2826import eu.clarin.cmdi.vlo.service.PageParametersConverter;
    2927import eu.clarin.cmdi.vlo.service.ResourceStringConverter;
     
    3129import eu.clarin.cmdi.vlo.service.UriResolver;
    3230import eu.clarin.cmdi.vlo.service.XmlTransformationService;
    33 import eu.clarin.cmdi.vlo.service.impl.HandleResolver;
    34 import eu.clarin.cmdi.vlo.service.solr.SearchResultsDao;
    35 import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService;
    36 import eu.clarin.cmdi.vlo.service.solr.SolrFacetQueryFactory;
    37 import eu.clarin.cmdi.vlo.service.solr.impl.QueryFacetsSelectionParametersConverter;
     31import eu.clarin.cmdi.vlo.service.impl.ExclusiveFieldFilter;
     32import eu.clarin.cmdi.vlo.service.impl.HandleClientImpl;
     33import eu.clarin.cmdi.vlo.service.impl.UriResolverImpl;
     34import eu.clarin.cmdi.vlo.service.impl.InclusiveFieldFilter;
    3835import eu.clarin.cmdi.vlo.service.impl.ResourceStringConverterImpl;
    3936import eu.clarin.cmdi.vlo.service.impl.ResourceTypeCountingServiceImpl;
    4037import eu.clarin.cmdi.vlo.service.impl.XmlTransformationServiceImpl;
    4138import eu.clarin.cmdi.vlo.service.solr.AutoCompleteService;
     39import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;
     40import eu.clarin.cmdi.vlo.service.solr.SearchResultsDao;
     41import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService;
     42import eu.clarin.cmdi.vlo.service.solr.SolrFacetQueryFactory;
    4243import eu.clarin.cmdi.vlo.service.solr.impl.AutoCompleteServiceImpl;
     44import eu.clarin.cmdi.vlo.service.solr.impl.QueryFacetsSelectionParametersConverter;
    4345import eu.clarin.cmdi.vlo.service.solr.impl.SearchResultsDaoImpl;
    4446import eu.clarin.cmdi.vlo.service.solr.impl.SolrDocumentQueryFactoryImpl;
     
    136138    @Bean(name = "resolvingResourceStringConverter")
    137139    public ResourceStringConverter resolvingResourceStringConverter() {
    138         return new ResourceStringConverterImpl(handleResolver());
    139     }
    140 
    141     @Bean
    142     public UriResolver handleResolver() {
    143         return new HandleResolver();
     140        return new ResourceStringConverterImpl(uriResolver());
     141    }
     142
     143    @Bean
     144    public UriResolver uriResolver() {
     145        return new UriResolverImpl(handleClient());
     146    }
     147
     148    public HandleClient handleClient() {
     149        return new HandleClientImpl();
    144150    }
    145151
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/UriResolverImpl.java

    r4978 r4979  
    1717package eu.clarin.cmdi.vlo.service.impl;
    1818
     19import static eu.clarin.cmdi.vlo.FacetConstants.HANDLE_PREFIX;
     20import static eu.clarin.cmdi.vlo.FacetConstants.HANDLE_PROXY;
     21import eu.clarin.cmdi.vlo.service.HandleClient;
    1922import eu.clarin.cmdi.vlo.service.UriResolver;
    2023
    2124/**
     25 * Resolves a URI as follows: if the URI starts with the handle scheme or the
     26 * handle proxy, the handle is extracted and passed on to this resolver's
     27 * {@link HandleClient} and the result of {@link HandleClient#getUrl(java.lang.String)
     28 * } is returned; otherwise the original URI is returned.
    2229 *
    2330 * @author twagoo
    2431 */
    25 public class HandleResolver implements UriResolver {
     32public class UriResolverImpl implements UriResolver {
     33
     34    private final HandleClient handleClient;
     35
     36    public UriResolverImpl(HandleClient handleClient) {
     37        this.handleClient = handleClient;
     38    }
    2639
    2740    @Override
    28     public String resolve(String URI) {
    29         //TODO: Implement (using handle API?)
    30         return "http://resolved.com/file.txt";
     41    public String resolve(String uri) {
     42        final String handle = getHandle(uri);
     43
     44        if (handle == null) {
     45            return uri;
     46        } else {
     47            return handleClient.getUrl(handle);
     48        }
     49
     50    }
     51
     52    private String getHandle(String uri) {
     53        final String handle;
     54        if (uri.startsWith(HANDLE_PREFIX)) {
     55            handle = uri.substring(HANDLE_PREFIX.length());
     56        } else if (uri.startsWith(HANDLE_PROXY)) {
     57            handle = uri.substring(HANDLE_PROXY.length());
     58        } else {
     59            handle = null;
     60        }
     61        return handle;
    3162    }
    3263
Note: See TracChangeset for help on using the changeset viewer.