Changeset 4181
- Timestamp:
- 12/11/13 15:59:54 (10 years ago)
- 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 243 243 <version>${slf4j.version}</version> 244 244 </dependency> 245 <dependency>246 <groupId>org.glassfish.jersey.core</groupId>247 <artifactId>jersey-server</artifactId>248 <version>2.3.1</version>249 </dependency>250 245 </dependencies> 251 246 <properties> -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/TargetDao.java
r4146 r4181 142 142 public int deleteTargetCachedRepresentation(Number TargetID, Number chachedID); 143 143 144 145 146 144 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/DBIntegrityServiceImlp.java
r4028 r4181 135 135 } 136 136 137 //////////////////////////////////////////////////////// 138 // TODO: refactor, Target grabbing should be made a separate private method 137 139 138 @Override 140 139 public Annotation getAnnotation(Number annotationID) { … … 150 149 TargetInfoList sis = new TargetInfoList(); 151 150 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)); 157 152 sis.getTargetInfo().add(targetInfo); 158 153 } … … 547 542 return addedPermissions; 548 543 } 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 } 549 552 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java
r4146 r4181 89 89 final static protected String principalExternal_id = principalTableName + "." + external_id; 90 90 final static protected String cachedRepresentationStar = cachedRepresentationTableName + ".*"; 91 final static protected String TargetStar = targetTableName + ".*";91 final static protected String targetStar = targetTableName + ".*"; 92 92 final static protected String principalStar = principalTableName + ".*"; 93 93 /////////////////////////////////////////////////// -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcTargetDao.java
r4173 r4181 54 54 public Target getTarget(Number internalID) { 55 55 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); 58 58 return (!result.isEmpty() ? result.get(0) : null); 59 59 } 60 private final RowMapper<Target> TargetRowMapper = new RowMapper<Target>() {60 private final RowMapper<Target> targetRowMapper = new RowMapper<Target>() { 61 61 @Override 62 62 public Target mapRow(ResultSet rs, int rowNumber) throws SQLException { … … 71 71 public String getLink(Number internalID) { 72 72 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"); 74 74 List<String> result = getSimpleJdbcTemplate().query(sql.toString(), linkRowMapper, internalID); 75 75 return (!result.isEmpty() ? result.get(0) : null); … … 122 122 123 123 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). 125 125 append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append(" IN ").append(targetIDs); 126 126 return getSimpleJdbcTemplate().query(sql.toString(), targetInfoRowMapper); … … 129 129 @Override 130 130 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)); 132 132 } 133 133 }; … … 166 166 public Number addTarget(Target target) { 167 167 UUID externalID = UUID.randomUUID(); 168 String[] linkParts = splitLink(target.getLink()); 168 169 Map<String, Object> params = new HashMap<String, Object>(); 169 170 params.put("externalId", externalID.toString()); 170 params.put("linkUri", target.getLink());171 params.put("linkUri", linkParts[0]); 171 172 params.put("version", target.getVersion()); 173 params.put("fragmentDescriptor", linkParts[1]); 172 174 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)"); 174 176 final int affectedRows = getSimpleJdbcTemplate().update(sql.toString(), params); 175 177 return (affectedRows > 0 ? getInternalID(UUID.fromString(externalID.toString())) : null); … … 227 229 228 230 /////////// HELPERS //////////////// 229 private TargetInfo constructTargetInfo(String externalID, String link, String version ) {231 private TargetInfo constructTargetInfo(String externalID, String link, String version, String fragment) { 230 232 TargetInfo targetInfo = new TargetInfo(); 231 233 targetInfo.setRef(externalIDtoURI(externalID)); 232 targetInfo.setLink( link);234 targetInfo.setLink(((new StringBuilder(link)).append("#").append(fragment)).toString()); 233 235 targetInfo.setVersion(version); 234 236 return targetInfo; … … 239 241 target.setURI(externalIDtoURI(externalID)); 240 242 target.setLastModified(xmlTimeStamp); 241 target.setLink( link);243 target.setLink(((new StringBuilder(link)).append("#").append(fragment)).toString()); 242 244 target.setVersion(version); 243 target.setFragmentDescriptor(fragment);244 245 return target; 245 246 } 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 } 246 266 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/TestBackendConstants.java
r4173 r4181 79 79 public static final String _TEST_Target_2_LINK = "http://nl.wikipedia.org/wiki/Antoni_Gaud%C3%AD"; 80 80 81 public static final String _TEST_Target_1_FRAGMENT = "de_Opdracht"; 82 83 81 84 public static final String _TEST_Target_1_VERSION = "version 1.0"; 82 85 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 119 119 Target result = jdbcTargetDao.getTarget(1); 120 120 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()); 122 122 assertEquals(TestBackendConstants._TEST_Target_1_VERSION, result.getVersion()); 123 assertEquals("#de_Opdracht", result.getFragmentDescriptor());124 123 // TODO :add time stamp test 125 124 … … 164 163 System.out.println("addTarget"); 165 164 166 String link = "http://www.sagradafamilia.cat/";167 165 Target freshTarget = new Target(); 168 freshTarget.setLink( link);166 freshTarget.setLink(TestBackendConstants._TEST_Target_1_LINK+"#Het_ontwerp"); 169 167 freshTarget.setVersion(TestBackendConstants._TEST_Target_1_VERSION); 170 168 freshTarget.setLastModified(null); … … 174 172 // detailed checking 175 173 Target addedTarget = jdbcTargetDao.getTarget(result); 176 assertEquals( link, addedTarget.getLink());174 assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#Het_ontwerp", addedTarget.getLink()); 177 175 assertEquals(TestBackendConstants._TEST_Target_1_VERSION, addedTarget.getVersion()); 178 176 assertTrue(addedTarget.getURI().startsWith(TestBackendConstants._TEST_SERVLET_URI_Targets)); … … 195 193 assertEquals(TestBackendConstants._TEST_Target_1_VERSION, result.get(0).getVersion()); 196 194 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()); 199 197 200 198 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/resources/test-data/InsertTestData.sql
r4177 r4181 61 61 62 62 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'); -- 164 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'); --265 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'); --366 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000034', '???', 'back up', ' #1111'); --467 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000035', '???', 'back up', ' #111111'); --568 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 annotation69 INSERT INTO target (external_id, link_uri, version, fragment_descriptor) VALUES ('00000000-0000-0000-0000-000000000037', '???', 'version 2.0', ' #11111111');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'); 70 70 71 71
Note: See TracChangeset
for help on using the changeset viewer.