Changeset 3461


Ignore:
Timestamp:
08/22/13 16:28:29 (11 years ago)
Author:
olhsha
Message:

replacing setURI(externa_id) with setURI(serviceURI_externalId). The implementation idea has been tested on getAnnotation method. Works. Now it must be implemented for get-method of the other resources for the other resources.

Location:
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/Helpers.java

    r3395 r3461  
    6060    }
    6161   
     62   
    6263}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/AnnotationDao.java

    r3455 r3461  
    3737
    3838public interface AnnotationDao extends ResourceDao{
     39   
    3940   
    4041    ////////////// GETTERS //////////////////////////
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/DaoDispatcher.java

    r3455 r3461  
    3333 */
    3434public interface DaoDispatcher{
     35   
     36    public void setServiceURI(String serviceURI);
    3537
    3638    /////////////// ADDERS  /////////////////////////////////
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/ResourceDao.java

    r3455 r3461  
    2626public interface ResourceDao {
    2727   
     28   
     29    public void setServiceURI(String serviceURI);
    2830     /**
    2931     *
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/DaoDispatcherImpl.java

    r3455 r3461  
    6363    NotebookDao notebookDao;
    6464   
     65    //////////////////////////////////
     66    @Override
     67    public void setServiceURI(String serviceURI){
     68        userDao.setServiceURI(serviceURI);
     69        cachedRepresentationDao.setServiceURI(serviceURI);
     70        versionDao.setServiceURI(serviceURI);
     71        sourceDao.setServiceURI(serviceURI);
     72        annotationDao.setServiceURI(serviceURI);
     73        notebookDao.setServiceURI(serviceURI);
     74    }
     75           
     76   
    6577    ///////////// GETTERS //////////////////////////
    6678
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDao.java

    r3459 r3461  
    4444public class JdbcAnnotationDao extends JdbcResourceDao implements AnnotationDao {
    4545
     46   
    4647    public JdbcAnnotationDao(DataSource dataSource) {
    4748        setDataSource(dataSource);
    4849        internalIdName = annotation_id;
    4950        resourceTableName = annotationTableName;
    50     }
    51    
    52  
     51       
     52    }
     53   
     54   
     55    ///////////// GETTERS /////////////
     56 
    5357    @Override
    5458    public List<Number> retrieveSourceIDs(Number annotationID) {
     
    5761        return result;
    5862    }
    59     private final RowMapper<Number> sourceIDRowMapper = new RowMapper<Number>() {
    60         @Override
    61         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    62             Number result = rs.getInt(source_id);
    63             return result;
    64         }
    65     };
     63   
    6664
    6765    ////////////////////////////////////////////////////////////////////////
     
    124122        return result;
    125123    }
     124   
     125    //////////////////////////////////////////////////////////////////////////
    126126
    127127    @Override
     
    195195        }
    196196     
    197         return respond.get(0);
     197        Annotation result = respond.get(0);
     198        String externalId = result.getURI();
     199        result.setURI(extrnalIDtoURI(_serviceURI, externalId));
     200       
     201        return result;
    198202    }
    199203   
     
    211215            annotation.setBody(Helpers.deserializeBody(rs.getString(body_xml)));
    212216            annotation.setTargetSources(null);
    213 
    214217            // TODO: fix: rpelace URI in the schema with external id, or make here the conversion:
    215218            // from external ID in the DB to the URI for the class
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java

    r3459 r3461  
    8686    protected String internalIdName = null;
    8787    protected String resourceTableName = null;
     88    protected String _serviceURI;
     89   
     90   
     91   
     92    /////////////////// Class field SETTERS /////////////
     93    @Override
     94    public void setServiceURI(String serviceURI){
     95        _serviceURI = serviceURI;
     96    }
     97       
     98   
     99   
    88100
    89101    //////////////////////////////////////////////////////////////////////////////////
     
    136148        }
    137149    };
    138 
     150    ////////////////// ROW MAPPERS ///////////////////
     151    protected final RowMapper<Number> internalIDRowMapper = new RowMapper<Number>() {
     152        @Override
     153        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     154            int result = rs.getInt(internalIdName);
     155            Number resultNumber = result;
     156            return resultNumber;
     157        }
     158    };
     159    protected final RowMapper<UUID> externalIDRowMapper = new RowMapper<UUID>() {
     160        @Override
     161        public UUID mapRow(ResultSet rs, int rowNumber) throws SQLException {
     162            return (UUID.fromString(rs.getString(external_id)));
     163        }
     164    };
     165    protected final RowMapper<Number> cachedIDRowMapper = new RowMapper<Number>() {
     166        @Override
     167        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     168            return rs.getInt(cached_representation_id);
     169        }
     170    };
     171    protected final RowMapper<Number> sourceIDRowMapper = new RowMapper<Number>() {
     172        @Override
     173        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     174            return rs.getInt(source_id);
     175        }
     176    };
     177    protected final RowMapper<Number> versionIDRowMapper = new RowMapper<Number>() {
     178        @Override
     179        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     180            return rs.getInt(version_id);
     181        }
     182    };
     183    protected final RowMapper<Number> annotationIDRowMapper = new RowMapper<Number>() {
     184        @Override
     185        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     186            return rs.getInt(annotation_id);
     187        }
     188    };
     189    protected final RowMapper<Number> notebookIDRowMapper = new RowMapper<Number>() {
     190        @Override
     191        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     192            return rs.getInt(notebook_id);
     193        }
     194    };
     195    protected final RowMapper<Number> principalIDRowMapper = new RowMapper<Number>() {
     196        @Override
     197        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     198            return rs.getInt(principal_id);
     199        }
     200    };
     201
     202    /////////////// HELPERS ///////////////
     203   
     204     
     205    protected String extrnalIDtoURI(String serviceURI, String externalID) {
     206        if (_serviceURI != null) {
     207            return _serviceURI + externalID;
     208        } else {
     209            return externalID;
     210        }
     211    }
     212
     213    ////////////////////////////
    139214    protected <T> String makeListOfValues(List<T> vals) {
    140215
     
    155230        return result;
    156231    }
    157    
    158    
    159     ////////////////// ROW MAPPERS ///////////////////
    160    
    161    
    162     protected final RowMapper<Number> internalIDRowMapper = new RowMapper<Number>() {
    163         @Override
    164         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    165             int result = rs.getInt(internalIdName);
    166             Number resultNumber = result;
    167             return resultNumber;
    168         }
    169     };
    170     protected final RowMapper<UUID> externalIDRowMapper = new RowMapper<UUID>() {
    171         @Override
    172         public UUID mapRow(ResultSet rs, int rowNumber) throws SQLException {
    173             return (UUID.fromString(rs.getString(external_id)));
    174         }
    175     };
    176     protected final RowMapper<Number> cachedIDRowMapper = new RowMapper<Number>() {
    177         @Override
    178         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    179             return rs.getInt(cached_representation_id);
    180         }
    181     };
    182     protected final RowMapper<Number> sourceIDRowMapper = new RowMapper<Number>() {
    183         @Override
    184         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    185             return rs.getInt(source_id);
    186         }
    187     };
    188     protected final RowMapper<Number> versionIDRowMapper = new RowMapper<Number>() {
    189         @Override
    190         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    191             return rs.getInt(version_id);
    192         }
    193     };
    194     protected final RowMapper<Number> annotationIDRowMapper = new RowMapper<Number>() {
    195         @Override
    196         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    197             return rs.getInt(annotation_id);
    198         }
    199     };
    200     protected final RowMapper<Number> notebookIDRowMapper = new RowMapper<Number>() {
    201         @Override
    202         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    203             return rs.getInt(notebook_id);
    204         }
    205     };
    206      protected final RowMapper<Number> principalIDRowMapper = new RowMapper<Number>() {
    207         @Override
    208         public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
    209             return rs.getInt(principal_id);
    210         }
    211     };
    212232}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/AnnotationResource.java

    r3455 r3461  
    6363    public JAXBElement<Annotation> getAnnotation(@PathParam("annotationid") String ExternalIdentifier) throws SQLException {
    6464        final Number annotationID = daoDispatcher.getAnnotationInternalIdentifier(UUID.fromString(ExternalIdentifier));
     65        daoDispatcher.setServiceURI(httpServletRequest.getServletPath());
    6566        final Annotation annotation = daoDispatcher.getAnnotation(annotationID);
    6667        return new ObjectFactory().createAnnotation(annotation);
     
    8586    @Path("")
    8687    public JAXBElement<Annotation> createAnnotation(Annotation annotation) throws SQLException {
     88       
    8789        String remoteUser = httpServletRequest.getRemoteUser();
    8890        UUID userExternalID = (remoteUser != null) ? UUID.fromString(remoteUser) : null;
    8991        Number userID = daoDispatcher.getUserInternalIdentifier(userExternalID);
     92       
     93        daoDispatcher.setServiceURI(httpServletRequest.getServletPath());
     94       
    9095        Number newAnnotationID =  daoDispatcher.addUsersAnnotation(annotation, userID);
    9196        Annotation newAnnotation = daoDispatcher.getAnnotation(newAnnotationID);
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/TestBackendConstants.java

    r3455 r3461  
    9999    public static final String _TEST_ANNOT_TO_ADD_NEW_SOURCE_HEADLINE = "SF in Catalan";
    100100    public static final String _TEST_NEW_SOURCE_LINK = "http://www.sagradafamilia.cat/docs_instit/historia.php ";
     101   
     102    public static final String _TEST_SERVLET_URI = "/dasish/";
    101103}
    102104
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDaoTest.java

    r3455 r3461  
    190190
    191191        final Number testAnnotationID = 2;
     192        jdbcAnnotationDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI);
    192193        final Annotation annotation = jdbcAnnotationDao.getAnnotationWithoutSources(testAnnotationID);
    193194        assertEquals(TestBackendConstants._TEST_ANNOT_2_HEADLINE, annotation.getHeadline());
    194195        assertEquals(String.valueOf(TestBackendConstants._TEST_ANNOT_2_OWNER), annotation.getOwner().getRef());
    195196        assertEquals(TestBackendConstants._TEST_ANNOT_2_BODY, annotation.getBody().getAny().get(0)); // when the body is elaborated it may be changed
    196         assertEquals(TestBackendConstants._TEST_ANNOT_2_EXT, annotation.getURI());
     197        assertEquals(TestBackendConstants._TEST_SERVLET_URI+TestBackendConstants._TEST_ANNOT_2_EXT, annotation.getURI());
    197198        assertEquals(TestBackendConstants._TEST_ANNOT_2_TIME_STAMP, annotation.getTimeStamp().toString());
    198199    }
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/rest/AnnotationResourceTest.java

    r3455 r3461  
    7575        mockery.checking(new Expectations() {
    7676            {
     77                oneOf(daoDispatcher).setServiceURI(with(any(String.class)));
     78                will(doAll());
     79               
    7780                oneOf(daoDispatcher).getAnnotationInternalIdentifier(with(any(UUID.class)));               
    7881                will(returnValue(annotationID));               
     
    8285            }
    8386        });
     87       
     88        final MockHttpServletRequest httpServletRequest = new MockHttpServletRequest();
     89        httpServletRequest.setServletPath(TestBackendConstants._TEST_SERVLET_URI);       
     90        annotationResource.setHttpRequest(httpServletRequest);
    8491         
    8592        JAXBElement<Annotation> result = annotationResource.getAnnotation(externalIDstring);
     
    141148        mockery.checking(new Expectations() {
    142149            {
     150                oneOf(daoDispatcher).setServiceURI(with(any(String.class)));
     151                will(doAll());
     152               
    143153                oneOf(daoDispatcher).getUserInternalIdentifier(with(aNonNull(UUID.class)));
    144154                will(returnValue(ownerID));
     
    155165       
    156166        final MockHttpServletRequest httpServletRequest = new MockHttpServletRequest();
    157         httpServletRequest.setRemoteUser(TestBackendConstants._TEST_USER_5_EXT_ID);       
     167        httpServletRequest.setRemoteUser(TestBackendConstants._TEST_USER_5_EXT_ID);         
     168        httpServletRequest.setServletPath(TestBackendConstants._TEST_SERVLET_URI);     
    158169        annotationResource.setHttpRequest(httpServletRequest);
    159170       
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/rest/AnnotationsTest.java

    r3455 r3461  
    6868        mockery.checking(new Expectations() {
    6969            {
     70                oneOf(daoDispatcher).setServiceURI(with(any(String.class)));
     71                will(doAll());
     72               
    7073                oneOf(daoDispatcher).getAnnotationInternalIdentifier(with(aNonNull(UUID.class)));               
    7174                will(returnValue(annotationID));               
     
    148151        mockery.checking(new Expectations() {
    149152            {
     153                oneOf(daoDispatcher).setServiceURI(with(any(String.class)));
     154                will(doAll());
     155               
    150156                oneOf(daoDispatcher).getUserInternalIdentifier(with(any(UUID.class)));
    151157                will(returnValue(ownerID));
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/resources/spring-test-config/mockery.xml

    r3099 r3461  
    2828
    2929   
    30     <!-- Context for testing the nortebooks service with mock implementations -->
    31            
     30           
    3231    <!-- This enables injection of the translator bean into the service object -->
    3332    <context:component-scan base-package="eu.dasish.annotation.backend.rest" />
Note: See TracChangeset for help on using the changeset viewer.