Changeset 3220
- Timestamp:
- 08/02/13 12:26:17 (11 years ago)
- Location:
- DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend
- Files:
-
- 5 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/nb-configuration.xml
r3216 r3220 19 19 <spring-data xmlns="http://www.netbeans.org/ns/spring-data/1"> 20 20 <config-files> 21 <config-file>src/test/resources/spring-test-config/mockPermissions.xml</config-file> 21 <config-file>src/main/resources/spring-config/sourceDao.xml</config-file> 22 <config-file>src/test/resources/spring-test-config/mockSourceDao.xml.xml</config-file> 22 23 </config-files> 23 24 <config-file-groups/> -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/BackendConstants.java
r3168 r3220 31 31 public static final int USER_HASH_PARAM_1 = 5; 32 32 public static final int USER_HASH_PARAM_2 = 19; 33 public static final int SOURCE_HASH_PARAM_1 = 7; 34 public static final int SOURCE_HASH_PARAM_2 = 23; 33 35 public static final String regExpIdentifier = "[a-zA-Z0-9_-]*"; 34 36 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDao.java
r3218 r3220 21 21 import eu.dasish.annotation.backend.dao.NotebookDao; 22 22 import eu.dasish.annotation.backend.dao.PermissionsDao; 23 import eu.dasish.annotation.backend.dao.SourceDao; 23 24 import eu.dasish.annotation.backend.dao.UserDao; 24 25 import eu.dasish.annotation.backend.identifiers.AnnotationIdentifier; … … 26 27 import eu.dasish.annotation.schema.AnnotationBody; 27 28 import eu.dasish.annotation.schema.AnnotationInfo; 29 import eu.dasish.annotation.schema.NewOrExistingSourceInfo; 30 import eu.dasish.annotation.schema.NewOrExistingSourceInfos; 28 31 import eu.dasish.annotation.schema.ResourceREF; 29 import eu.dasish.annotation.schema.Source s;32 import eu.dasish.annotation.schema.SourceInfo; 30 33 import java.sql.ResultSet; 31 34 import java.sql.SQLException; … … 59 62 NotebookDao jdbcNotebookDao; 60 63 64 @Autowired 65 SourceDao jdbcSourceDao; 66 61 67 public JdbcAnnotationDao(DataSource dataSource) { 62 68 setDataSource(dataSource); … … 97 103 annotationInfo.setOwner(getResourceREF(Integer.toString(rs.getInt(owner_id)))); 98 104 annotationInfo.setHeadline(rs.getString(headline)); 99 annotationInfo.setTargetSources(getSources(rs.getString(body_xml)));100 105 return annotationInfo; 101 106 } … … 153 158 return null; 154 159 } 155 156 if (result.size()>1) {157 throw new SQLException("There are "+result.size()+" annotations with "+ annotation_id + " "+annotationID);158 }159 160 return result.get(0); 160 161 } … … 170 171 result.setOwner(ownerREF); 171 172 172 173 // ResourceREF permissionsREF = new ResourceREF(); 174 // PermissionList permissionList = new PermissionList(); 175 // permissionsREF.setRef(permissionList.getURI()); 176 // result.setPermissions(permissionsREF); 173 ////////////////////////// 174 List<SourceInfo> sourceInfoList = jdbcSourceDao.getSourceInfos(rs.getInt(annotation_id)); 175 NewOrExistingSourceInfos noeSourceInfos = jdbcSourceDao.contructNewOrExistingSourceInfo(sourceInfoList); 176 // List<NewOrExistingSourceInfo> noeSourceInfoList = new ArrayList<NewOrExistingSourceInfo>(); 177 // for (SourceInfo sourceInfo: sourceInfoList) { 178 // NewOrExistingSourceInfo noeSourceInfo = new NewOrExistingSourceInfo(); 179 // noeSourceInfo.setSource(sourceInfo); 180 // noeSourceInfoList.add(noeSourceInfo); 181 // } 177 182 // 178 //Permissions can be retrieved separately 179 180 // TODO: add source, also to the database 183 // 184 // NewOrExistingSourceInfos noeSourceInfos = new NewOrExistingSourceInfos(); 185 // noeSourceInfos.getTarget().addAll(noeSourceInfoList); 186 result.setTargetSources(noeSourceInfos); 187 //////////////////////////////// 181 188 182 189 result.setBody(convertToAnnotationBody(rs.getString(body_xml))); … … 230 237 @Override 231 238 public int deleteAnnotation(Number annotationId) throws SQLException{ 232 239 240 //TODO: why does it not work via calling notebook and permissions "remove" methods?? 241 233 242 String sqlNotebooks = "DELETE FROM " + notebooksAnnotationsTableName + " where "+annotation_id + " = ?"; 234 243 int affectedNotebooks = getSimpleJdbcTemplate().update(sqlNotebooks, annotationId); 235 236 244 237 245 String sqlPermissions = "DELETE FROM " + permissionsTableName + " where "+annotation_id + " = ?"; 238 246 int affectedPermissions = getSimpleJdbcTemplate().update(sqlPermissions, annotationId); 247 248 // TODO make a separate methods in sources DAO so that it handles removal of sources which are not referered by annotations 249 String sqlTargetSources = "DELETE FROM " + annotationsSourcesTableName + " where "+annotation_id + " = ?"; 250 int affectedSources = getSimpleJdbcTemplate().update(sqlTargetSources, annotationId); 239 251 240 252 String sqlAnnotation = "DELETE FROM " + annotationTableName + " where "+annotation_id + " = ?"; … … 280 292 281 293 if (affectedRows == 1) { 294 //jdbcSourceDao method "addsources" 295 // Consider two cases: the one which exists already in the Db and the one which does not exists 282 296 return result; 283 297 } … … 329 343 } 330 344 331 //TODO implement when xml-body stucture is discussed! 332 //BTW do we have to get source REF, not the whole sources here?? 333 private Sources getSources(String someXml) { 334 Sources result = new Sources(); 335 return result; 336 } 337 338 private <T> String makeListOfValues(List<T> vals) { 339 340 if (vals == null) { 341 return "()"; 342 } 343 344 if (vals.isEmpty()) { 345 return "()"; 346 } 347 348 String result = "("; 349 int length = vals.size(); 350 for (int i=0; i<length-1; i++){ 351 result = result + vals.get(i).toString() +", "; 352 } 353 result = result +vals.get(length-1).toString()+")"; 354 return result; 355 } 345 346 347 356 348 357 349 //TODO: update when target sources and permissions are added -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java
r3216 r3220 39 39 final static protected String notebooksAnnotationsTableName = "notebooks_annotations"; 40 40 final static protected String permissionsTableName = "annotations_principals_permissions"; 41 final static protected String sourcesTableName = "target_source"; 42 final static protected String annotationsSourcesTableName = "annotations_target_sources"; 41 43 42 44 // base string constants: field Names … … 52 54 final static protected String time_stamp = "time_stamp"; 53 55 final static protected String permission = "permission_"; 56 final static protected String target_source_id = "target_source_id"; 57 final static protected String link = "link"; 58 final static protected String version = "version"; 54 59 55 60 // derived string constants: table+field names … … 104 109 }; 105 110 106 111 112 protected <T> String makeListOfValues(List<T> vals) { 113 114 if (vals == null) { 115 return "()"; 116 } 117 118 if (vals.isEmpty()) { 119 return "()"; 120 } 121 122 String result = "("; 123 int length = vals.size(); 124 for (int i=0; i<length-1; i++){ 125 result = result + vals.get(i).toString() +", "; 126 } 127 result = result +vals.get(length-1).toString()+")"; 128 return result; 129 } 107 130 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/MockObjectsFactory.java
r3216 r3220 21 21 import eu.dasish.annotation.backend.dao.NotebookDao; 22 22 import eu.dasish.annotation.backend.dao.PermissionsDao; 23 import eu.dasish.annotation.backend.dao.SourceDao; 23 24 import eu.dasish.annotation.backend.dao.UserDao; 24 25 import org.jmock.Mockery; … … 52 53 return context.mock(PermissionsDao.class); 53 54 } 55 56 public SourceDao newSourceDao() { 57 return context.mock(SourceDao.class); 58 } 54 59 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/TestBackendConstants.java
r3211 r3220 65 65 public static final String _TEST_USER_5_EXT_ID = "00000000-0000-0000-0000-000000000113"; 66 66 67 public static final String _TEST_USER_XXX_EXT_ID = "00000000-0000-0000-0000-000000000666"; 67 public static final String _TEST_USER_XXX_EXT_ID = "00000000-0000-0000-0000-000000000666"; 68 69 //////////////////////////////////////////////////////////////////////////////////////////////////////////// 70 71 // INSERT INTO target_source (external_id, link_uri, version_id) VALUES ('00000000-0000-0000-0000-000000000031', 'http://nl.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia', 1); -- 1 72 // INSERT INTO target_source (external_id, link_uri, version_id) VALUES ('00000000-0000-0000-0000-000000000032', 'http://nl.wikipedia.org/wiki/Antoni_Gaud%C3%AD', 3); --2 73 74 75 public static final String _TEST_SOURCE_1_EXT_ID = "00000000-0000-0000-0000-000000000031"; 76 public static final String _TEST_SOURCE_2_EXT_ID = "00000000-0000-0000-0000-000000000032"; 77 78 public static final String _TEST_SOURCE_1_LINK = "http://nl.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"; 79 public static final String _TEST_SOURCE_2_LINK = "http://nl.wikipedia.org/wiki/Antoni_Gaud%C3%AD"; 80 81 public static final int _TEST_SOURCE_1_VERSION_ID = 1; 82 public static final int _TEST_SOURCE_2_VERSION_ID = 3; 68 83 } 69 84 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/TestInstances.java
r3211 r3220 20 20 import eu.dasish.annotation.schema.Annotation; 21 21 import eu.dasish.annotation.schema.AnnotationBody; 22 import eu.dasish.annotation.schema.NewOrExistingSourceInfo; 23 import eu.dasish.annotation.schema.NewOrExistingSourceInfos; 22 24 import eu.dasish.annotation.schema.ResourceREF; 25 import eu.dasish.annotation.schema.SourceInfo; 23 26 import java.util.List; 24 27 … … 45 48 46 49 private Annotation makeAnnotationToAdd(){ 47 Annotation result = makeAnnotation(TestBackendConstants._TEST_ANNOT_TO_ADD_BODY, TestBackendConstants._TEST_ANNOT_TO_ADD_HEADLINE, 5); 48 return result; 50 Annotation result = makeAnnotation(TestBackendConstants._TEST_ANNOT_TO_ADD_BODY, TestBackendConstants._TEST_ANNOT_TO_ADD_HEADLINE, 5); 51 52 SourceInfo sourceInfo = new SourceInfo(); 53 sourceInfo.setLink(TestBackendConstants._TEST_SOURCE_1_LINK); 54 sourceInfo.setRef(TestBackendConstants._TEST_SOURCE_1_EXT_ID); 55 sourceInfo.setVersion(Integer.toString(TestBackendConstants._TEST_SOURCE_1_VERSION_ID)); 56 57 NewOrExistingSourceInfo noeSourceInfo = new NewOrExistingSourceInfo(); 58 noeSourceInfo.setSource(sourceInfo); 59 NewOrExistingSourceInfos noeSourceInfos = new NewOrExistingSourceInfos(); 60 noeSourceInfos.getTarget().add(noeSourceInfo); 61 result.setTargetSources(noeSourceInfos); 62 63 return result; 49 64 } 50 65 51 // add the other fields whengetAnnotation is completed 66 67 // so far tests only adding annot with existing sources!!! 68 // TOD: add non-existing sources 52 69 private Annotation makeAnnotation(String bodyTxt, String headline, int ownerId){ 53 70 Annotation result = new Annotation(); … … 59 76 ResourceREF owner = new ResourceREF(); 60 77 owner.setRef(String.valueOf(ownerId)); 61 result.setOwner(owner); 62 return result; 78 result.setOwner(owner); 79 80 return result; 63 81 } 82 83 //private 64 84 65 85 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDaoTest.java
r3218 r3220 22 22 import eu.dasish.annotation.backend.dao.NotebookDao; 23 23 import eu.dasish.annotation.backend.dao.PermissionsDao; 24 import eu.dasish.annotation.backend.dao.SourceDao; 24 25 import eu.dasish.annotation.backend.identifiers.AnnotationIdentifier; 25 26 import eu.dasish.annotation.schema.Annotation; 26 27 import eu.dasish.annotation.schema.AnnotationInfo; 28 import eu.dasish.annotation.schema.NewOrExistingSourceInfo; 29 import eu.dasish.annotation.schema.NewOrExistingSourceInfos; 27 30 import eu.dasish.annotation.schema.ResourceREF; 31 import eu.dasish.annotation.schema.SourceInfo; 28 32 import java.sql.SQLException; 29 33 import java.util.ArrayList; … … 43 47 */ 44 48 @RunWith(SpringJUnit4ClassRunner.class) 45 @ContextConfiguration({"/spring-test-config/dataSource.xml", "/spring-test-config/mockery.xml", "/spring-test-config/mockNotebookDao.xml", "/spring-test-config/mockUserDao.xml", "/spring-test-config/mockPermissionsDao.xml", "/spring-config/annotationDao.xml"}) 49 @ContextConfiguration({"/spring-test-config/dataSource.xml", "/spring-test-config/mockery.xml", "/spring-test-config/mockNotebookDao.xml", 50 "/spring-test-config/mockUserDao.xml", "/spring-test-config/mockPermissionsDao.xml", "/spring-test-config/mockSourceDao.xml","/spring-config/annotationDao.xml"}) 46 51 public class JdbcAnnotationDaoTest extends JdbcResourceDaoTest{ 47 52 … … 54 59 @Autowired 55 60 private NotebookDao notebookDao; 61 62 @Autowired 63 private SourceDao sourceDao; 56 64 57 65 @Autowired … … 153 161 System.out.println("getAnnotation"); 154 162 155 final Annotation annotaion = jdbcAnnotationDao.getAnnotation(2); 156 assertEquals(TestBackendConstants._TEST_ANNOT_2_HEADLINE, annotaion.getHeadline()); 157 assertEquals(String.valueOf(TestBackendConstants._TEST_ANNOT_2_OWNER), annotaion.getOwner().getRef()); 158 assertEquals(TestBackendConstants._TEST_ANNOT_2_BODY, annotaion.getBody().getAny().get(0)); // when the body is elaborated it will be changed 163 final Number testAnnotationID = 2; 164 165 166 SourceInfo sourceOneInfo = new SourceInfo(); 167 sourceOneInfo.setLink(TestBackendConstants._TEST_SOURCE_1_LINK); 168 sourceOneInfo.setRef(TestBackendConstants._TEST_SOURCE_1_EXT_ID); 169 sourceOneInfo.setVersion(Integer.toString(TestBackendConstants._TEST_SOURCE_1_VERSION_ID)); 170 171 SourceInfo sourceTwoInfo = new SourceInfo(); 172 sourceTwoInfo.setLink(TestBackendConstants._TEST_SOURCE_2_LINK); 173 sourceTwoInfo.setRef(TestBackendConstants._TEST_SOURCE_2_EXT_ID); 174 sourceTwoInfo.setVersion(Integer.toString(TestBackendConstants._TEST_SOURCE_2_VERSION_ID)); 175 176 final List<SourceInfo> sourceInfoList = new ArrayList<SourceInfo>(); 177 sourceInfoList.add(sourceOneInfo); 178 sourceInfoList.add(sourceTwoInfo); 179 180 NewOrExistingSourceInfo noeSourceOneInfo = new NewOrExistingSourceInfo(); 181 noeSourceOneInfo.setSource(sourceOneInfo); 182 NewOrExistingSourceInfo noeSourceTwoInfo = new NewOrExistingSourceInfo(); 183 noeSourceTwoInfo.setSource(sourceTwoInfo); 184 185 List<NewOrExistingSourceInfo> noeSourceInfoList = new ArrayList<NewOrExistingSourceInfo>(); 186 noeSourceInfoList.add(noeSourceOneInfo); 187 noeSourceInfoList.add(noeSourceTwoInfo); 188 final NewOrExistingSourceInfos noeSourceInfos= new NewOrExistingSourceInfos(); 189 noeSourceInfos.getTarget().addAll(noeSourceInfoList); 190 191 mockery.checking(new Expectations() { 192 { 193 oneOf(sourceDao).getSourceInfos(testAnnotationID ); 194 will(returnValue(sourceInfoList)); 195 196 oneOf(sourceDao).contructNewOrExistingSourceInfo(sourceInfoList); 197 will(returnValue(noeSourceInfos)); 198 } 199 }); 200 201 202 final Annotation annotation = jdbcAnnotationDao.getAnnotation(testAnnotationID.intValue()); 203 assertEquals(TestBackendConstants._TEST_ANNOT_2_HEADLINE, annotation.getHeadline()); 204 assertEquals(String.valueOf(TestBackendConstants._TEST_ANNOT_2_OWNER), annotation.getOwner().getRef()); 205 assertEquals(TestBackendConstants._TEST_ANNOT_2_BODY, annotation.getBody().getAny().get(0)); // when the body is elaborated it will be changed 206 207 assertEquals(sourceOneInfo.getRef(), annotation.getTargetSources().getTarget().get(0).getSource().getRef()); 208 assertEquals(sourceOneInfo.getLink(), annotation.getTargetSources().getTarget().get(0).getSource().getLink()); 209 assertEquals(sourceOneInfo.getVersion(), annotation.getTargetSources().getTarget().get(0).getSource().getVersion()); 210 211 assertEquals(sourceTwoInfo.getRef(), annotation.getTargetSources().getTarget().get(1).getSource().getRef()); 212 assertEquals(sourceTwoInfo.getLink(), annotation.getTargetSources().getTarget().get(1).getSource().getLink()); 213 assertEquals(sourceTwoInfo.getVersion(), annotation.getTargetSources().getTarget().get(1).getSource().getVersion()); 214 159 215 160 216 final Annotation annotaionNull = jdbcAnnotationDao.getAnnotation(null); … … 196 252 final Annotation annotationToAdd = testInstances.getAnnotationToAdd(); 197 253 254 final Number testAnnotationID = 6; 255 256 SourceInfo sourceInfo = new SourceInfo(); 257 sourceInfo.setLink(TestBackendConstants._TEST_SOURCE_1_LINK); 258 sourceInfo.setRef(TestBackendConstants._TEST_SOURCE_1_EXT_ID); 259 sourceInfo.setVersion(Integer.toString(TestBackendConstants._TEST_SOURCE_1_VERSION_ID)); 260 final List<SourceInfo> sourceInfoList = new ArrayList<SourceInfo>(); 261 sourceInfoList.add(sourceInfo); 262 263 mockery.checking(new Expectations() { 264 { 265 oneOf(sourceDao).getSourceInfos(testAnnotationID); 266 will(returnValue(sourceInfoList)); 267 268 oneOf(sourceDao).contructNewOrExistingSourceInfo(sourceInfoList); 269 will(returnValue(annotationToAdd.getTargetSources())); 270 } 271 }); 198 272 199 273 Annotation result = jdbcAnnotationDao.addAnnotation(annotationToAdd, 5); … … 228 302 229 303 } 304 305 //////////// helpers ////////////////////// 306 307 230 308 } 231 309 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/resources/spring-test-config/mockUserDao.xml
r3205 r3220 24 24 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 25 25 "> 26 <!-- Context for testing the annotations service with mock implementations -->26 <!-- Context for testing the sources service with mock implementations --> 27 27 28 28 <!-- Mocked users -->
Note: See TracChangeset
for help on using the changeset viewer.