Changeset 4181


Ignore:
Timestamp:
12/11/13 15:59:54 (10 years ago)
Author:
olhsha
Message:

a fragments (of a target) is now a part of the attribute link. The Dao's and unit tests are updated and work. Fixed corrupted pom (there was ill glass-fish dependency that spoiled authentication)

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

Legend:

Unmodified
Added
Removed
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/pom.xml

    r4173 r4181  
    243243            <version>${slf4j.version}</version>
    244244        </dependency>
    245         <dependency>
    246             <groupId>org.glassfish.jersey.core</groupId>
    247             <artifactId>jersey-server</artifactId>
    248             <version>2.3.1</version>
    249         </dependency>
    250245    </dependencies>
    251246    <properties>
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/TargetDao.java

    r4146 r4181  
    142142    public int deleteTargetCachedRepresentation(Number TargetID, Number chachedID); 
    143143   
    144    
    145  
    146144}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/DBIntegrityServiceImlp.java

    r4028 r4181  
    135135    }
    136136
    137     ////////////////////////////////////////////////////////
    138     // TODO: refactor, Target grabbing should be made a separate private method
     137   
    139138    @Override
    140139    public Annotation getAnnotation(Number annotationID) {
     
    150149            TargetInfoList sis = new TargetInfoList();
    151150            for (Number targetID : targetIDs) {
    152                 Target target = targetDao.getTarget(targetID);
    153                 TargetInfo targetInfo = new TargetInfo();
    154                 targetInfo.setLink(target.getLink());
    155                 targetInfo.setRef(target.getURI());
    156                 targetInfo.setVersion(target.getVersion());
     151                TargetInfo targetInfo = getTargetInfoFromTarget(targetDao.getTarget(targetID));
    157152                sis.getTargetInfo().add(targetInfo);
    158153            }
     
    547542        return addedPermissions;
    548543    }
     544   
     545     private TargetInfo getTargetInfoFromTarget(Target target) {
     546        TargetInfo targetInfo = new TargetInfo();
     547        targetInfo.setRef(target.getURI());
     548        targetInfo.setLink(target.getLink());
     549        targetInfo.setVersion(target.getVersion());
     550        return targetInfo;
     551    }
    549552}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java

    r4146 r4181  
    8989    final static protected String principalExternal_id = principalTableName + "." + external_id;
    9090    final static protected String cachedRepresentationStar = cachedRepresentationTableName + ".*";
    91     final static protected String TargetStar = targetTableName + ".*";
     91    final static protected String targetStar = targetTableName + ".*";
    9292    final static protected String principalStar = principalTableName + ".*";
    9393    ///////////////////////////////////////////////////
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcTargetDao.java

    r4173 r4181  
    5454    public Target getTarget(Number internalID) {
    5555        StringBuilder sql = new StringBuilder("SELECT ");
    56         sql.append(TargetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1");
    57         List<Target> result = getSimpleJdbcTemplate().query(sql.toString(), TargetRowMapper, internalID);
     56        sql.append(targetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1");
     57        List<Target> result = getSimpleJdbcTemplate().query(sql.toString(), targetRowMapper, internalID);
    5858        return (!result.isEmpty() ? result.get(0) : null);
    5959    }
    60     private final RowMapper<Target> TargetRowMapper = new RowMapper<Target>() {
     60    private final RowMapper<Target> targetRowMapper = new RowMapper<Target>() {
    6161        @Override
    6262        public Target mapRow(ResultSet rs, int rowNumber) throws SQLException {
     
    7171    public String getLink(Number internalID) {
    7272        StringBuilder sql = new StringBuilder("SELECT ");
    73         sql.append(TargetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1");
     73        sql.append(targetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1");
    7474        List<String> result = getSimpleJdbcTemplate().query(sql.toString(), linkRowMapper, internalID);
    7575        return (!result.isEmpty() ? result.get(0) : null);
     
    122122
    123123        StringBuilder sql = new StringBuilder("SELECT ");
    124         sql.append(external_id).append(",").append(link_uri).append(",").append(version).
     124        sql.append(external_id).append(",").append(link_uri).append(",").append(version).append(",").append(fragment_descriptor).
    125125                append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append(" IN ").append(targetIDs);
    126126        return getSimpleJdbcTemplate().query(sql.toString(), targetInfoRowMapper);
     
    129129        @Override
    130130        public TargetInfo mapRow(ResultSet rs, int rowNumber) throws SQLException {
    131             return constructTargetInfo(rs.getString(external_id), rs.getString(link_uri), rs.getString(version));
     131            return constructTargetInfo(rs.getString(external_id), rs.getString(link_uri), rs.getString(version), rs.getString(fragment_descriptor));
    132132        }
    133133    };
     
    166166    public Number addTarget(Target target) {
    167167        UUID externalID = UUID.randomUUID();
     168        String[] linkParts = splitLink(target.getLink());
    168169        Map<String, Object> params = new HashMap<String, Object>();
    169170        params.put("externalId", externalID.toString());
    170         params.put("linkUri", target.getLink());
     171        params.put("linkUri", linkParts[0]);
    171172        params.put("version", target.getVersion());
     173        params.put("fragmentDescriptor", linkParts[1]);
    172174        StringBuilder sql = new StringBuilder("INSERT INTO ");
    173         sql.append(targetTableName).append("(").append(external_id).append(",").append(link_uri).append(",").append(version).append(",").append(last_modified).append(" ) VALUES (:externalId, :linkUri,  :version, current_timestamp AT TIME ZONE INTERVAL '00:00' HOUR TO MINUTE)");
     175        sql.append(targetTableName).append("(").append(external_id).append(",").append(link_uri).append(",").append(version).append(",").append(last_modified).append(",").append(fragment_descriptor).append(" ) VALUES (:externalId, :linkUri,  :version, current_timestamp AT TIME ZONE INTERVAL '00:00' HOUR TO MINUTE, :fragmentDescriptor)");
    174176        final int affectedRows = getSimpleJdbcTemplate().update(sql.toString(), params);
    175177        return (affectedRows > 0 ? getInternalID(UUID.fromString(externalID.toString())) : null);
     
    227229
    228230    /////////// HELPERS  ////////////////
    229     private TargetInfo constructTargetInfo(String externalID, String link, String version) {
     231    private TargetInfo constructTargetInfo(String externalID, String link, String version, String fragment) {
    230232        TargetInfo targetInfo = new TargetInfo();
    231233        targetInfo.setRef(externalIDtoURI(externalID));
    232         targetInfo.setLink(link);
     234        targetInfo.setLink(((new StringBuilder(link)).append("#").append(fragment)).toString());
    233235        targetInfo.setVersion(version);
    234236        return targetInfo;
     
    239241        target.setURI(externalIDtoURI(externalID));
    240242        target.setLastModified(xmlTimeStamp);
    241         target.setLink(link);
     243        target.setLink(((new StringBuilder(link)).append("#").append(fragment)).toString());
    242244        target.setVersion(version);
    243         target.setFragmentDescriptor(fragment);
    244245        return target;
    245246    }
     247   
     248    private String[] splitLink(String link){
     249      if (link!=null) {
     250         String[] result = new String[2];
     251         String[] parts = link.split("#");
     252         if (parts.length > 1) {
     253             result[0] = parts[0];             
     254             StringBuilder buffer = new StringBuilder();
     255             for (int i=1; i<parts.length ; i++){
     256                 if (parts[i]!=null){
     257                     buffer.append(parts[i]);
     258                 }
     259             }
     260             result[1] = buffer.toString();
     261         }
     262         return result;
     263      }
     264      else return null;
     265    }
    246266}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/TestBackendConstants.java

    r4173 r4181  
    7979    public static final String _TEST_Target_2_LINK = "http://nl.wikipedia.org/wiki/Antoni_Gaud%C3%AD";
    8080   
     81     public static final String _TEST_Target_1_FRAGMENT = "de_Opdracht";
     82   
     83   
    8184    public static final String _TEST_Target_1_VERSION = "version 1.0";
    8285    public static final String _TEST_Target_2_VERSION = "version 1.0";
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcTargetDaoTest.java

    r4173 r4181  
    119119        Target result = jdbcTargetDao.getTarget(1);
    120120        assertEquals(TestBackendConstants._TEST_SERVLET_URI_Targets+TestBackendConstants._TEST_Target_1_EXT_ID, result.getURI());
    121         assertEquals(TestBackendConstants._TEST_Target_1_LINK, result.getLink());
     121        assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#"+TestBackendConstants._TEST_Target_1_FRAGMENT, result.getLink());
    122122        assertEquals(TestBackendConstants._TEST_Target_1_VERSION, result.getVersion());
    123         assertEquals("#de_Opdracht", result.getFragmentDescriptor());
    124123        // TODO :add time stamp test
    125124       
     
    164163        System.out.println("addTarget");
    165164
    166         String link = "http://www.sagradafamilia.cat/";
    167165        Target freshTarget = new Target();
    168         freshTarget.setLink(link);
     166        freshTarget.setLink(TestBackendConstants._TEST_Target_1_LINK+"#Het_ontwerp");
    169167        freshTarget.setVersion(TestBackendConstants._TEST_Target_1_VERSION);
    170168        freshTarget.setLastModified(null);
     
    174172        // detailed checking
    175173        Target addedTarget = jdbcTargetDao.getTarget(result);
    176         assertEquals(link, addedTarget.getLink());
     174        assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#Het_ontwerp", addedTarget.getLink());
    177175        assertEquals(TestBackendConstants._TEST_Target_1_VERSION, addedTarget.getVersion());
    178176        assertTrue(addedTarget.getURI().startsWith(TestBackendConstants._TEST_SERVLET_URI_Targets));
     
    195193        assertEquals(TestBackendConstants._TEST_Target_1_VERSION, result.get(0).getVersion());
    196194        assertEquals(TestBackendConstants._TEST_Target_2_VERSION, result.get(1).getVersion());
    197         assertEquals(TestBackendConstants._TEST_Target_1_LINK, result.get(0).getLink());
    198         assertEquals(TestBackendConstants._TEST_Target_2_LINK, result.get(1).getLink());
     195        assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#"+TestBackendConstants._TEST_Target_1_FRAGMENT, result.get(0).getLink());
     196        assertEquals(TestBackendConstants._TEST_Target_2_LINK+"#Vroege_werk", result.get(1).getLink());
    199197
    200198    }
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/resources/test-data/InsertTestData.sql

    r4177 r4181  
    6161
    6262
    63 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000031', 'http://nl.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia', 'version 1.0', '#de_Opdracht'); -- 1
    64 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000032', 'http://nl.wikipedia.org/wiki/Antoni_Gaud%C3%AD', 'version 1.0', '##Vroege_werk'); --2
    65 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000033', 'http://en.wikipedia.org/wiki/Art_Nouveau', 'june 1013', '##Spain'); --3
    66 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000034', '???', 'back up', '#1111'); --4
    67 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000035', '???', 'back up', '#111111'); --5
    68 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000036', '???', 'version 2.0', '#1111111'); --6 not used by any annotation
    69 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000037', '???', 'version 2.0', '#11111111');
     63INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000031', 'http://nl.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia', 'version 1.0', 'de_Opdracht'); -- 1
     64INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000032', 'http://nl.wikipedia.org/wiki/Antoni_Gaud%C3%AD', 'version 1.0', 'Vroege_werk'); --2
     65INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000033', 'http://en.wikipedia.org/wiki/Art_Nouveau', 'june 1013', 'Spain'); --3
     66INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000034', '???', 'back up', '1111'); --4
     67INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000035', '???', 'back up', '111111'); --5
     68INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000036', '???', 'version 2.0', '1111111'); --6 not used by any annotation
     69INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000037', '???', 'version 2.0', '11111111');
    7070
    7171
Note: See TracChangeset for help on using the changeset viewer.