1 16 package org.outerj.daisy.repository.test; 17 18 import org.outerj.daisy.repository.*; 19 import org.outerj.daisy.repository.acl.*; 20 import org.outerj.daisy.repository.schema.RepositorySchema; 21 import org.outerj.daisy.repository.schema.FieldType; 22 import org.outerj.daisy.repository.schema.PartType; 23 import org.outerj.daisy.repository.schema.DocumentType; 24 import org.outerj.daisy.repository.user.UserManager; 25 import org.outerj.daisy.repository.user.Role; 26 import org.outerj.daisy.repository.user.User; 27 28 import java.util.GregorianCalendar ; 29 import java.math.BigDecimal ; 30 31 public class TestContentCreator { 32 public void run(RepositoryManager repositoryManager) throws Exception { 33 Repository testuserRepository = repositoryManager.getRepository(new Credentials("testuser", "testuser")); 34 testuserRepository.switchRole(Role.ADMINISTRATOR); 35 36 UserManager userManger = testuserRepository.getUserManager(); 38 Role role = userManger.getRole("user", false); 39 40 User user1 = userManger.createUser("user1"); 41 user1.addToRole(role); 42 user1.setDefaultRole(role); 43 user1.setFirstName("User1First"); 44 user1.setLastName("User1Last"); 45 user1.setPassword("user1"); 46 user1.save(); 47 48 User user2 = userManger.createUser("user2"); 49 user2.addToRole(role); 50 user2.setDefaultRole(role); 51 user2.setFirstName("User2"); 52 user2.setLastName("User2Last"); 53 user2.setPassword("user2"); 54 user2.save(); 55 56 RepositorySchema schema = testuserRepository.getRepositorySchema(); 58 59 FieldType fieldType1 = schema.createFieldType("field1", ValueType.STRING); 60 fieldType1.save(); 61 FieldType fieldType2 = schema.createFieldType("field2", ValueType.LONG); 62 fieldType2.setAclAllowed(true); 63 fieldType2.save(); 64 65 PartType partType1 = schema.createPartType("part1", "text/xml"); 66 partType1.setDaisyHtml(true); 67 partType1.save(); 68 69 DocumentType documentType1 = schema.createDocumentType("doctype1"); 70 documentType1.addFieldType(fieldType1, false); 71 documentType1.addFieldType(fieldType2, false); 72 documentType1.addPartType(partType1, false); 73 documentType1.save(); 74 75 DocumentType documentType2 = schema.createDocumentType("doctype2"); 76 documentType2.addFieldType(fieldType1, false); 77 documentType2.addFieldType(fieldType2, false); 78 documentType2.addPartType(partType1, false); 79 documentType2.save(); 80 81 CollectionManager collectionManager = testuserRepository.getCollectionManager(); 83 DocumentCollection collection1 = collectionManager.createCollection("collection1"); 84 collection1.save(); 85 DocumentCollection collection2 = collectionManager.createCollection("collection2"); 86 collection2.save(); 87 88 90 94 AccessManager accessManager = testuserRepository.getAccessManager(); 95 Acl acl = accessManager.getStagingAcl(); 96 97 AclObject aclObject; 98 AclEntry aclEntry; 99 100 aclObject = acl.createNewObject("true"); 101 aclEntry = aclObject.createNewEntry(AclSubjectType.EVERYONE, -1); 102 aclEntry.set(AclPermission.READ_LIVE, AclActionType.GRANT); 103 aclEntry.set(AclPermission.READ, AclActionType.GRANT); 104 aclEntry.set(AclPermission.WRITE, AclActionType.GRANT); 105 aclEntry.set(AclPermission.PUBLISH, AclActionType.GRANT); 106 aclEntry.set(AclPermission.DELETE, AclActionType.GRANT); 107 aclObject.add(aclEntry); 108 acl.add(aclObject); 109 110 aclObject = acl.createNewObject("documentType = 'doctype2'"); 111 aclEntry = aclObject.createNewEntry(AclSubjectType.USER, user1.getId()); 112 aclEntry.set(AclPermission.READ_LIVE, AclActionType.DENY); 113 aclEntry.set(AclPermission.READ, AclActionType.DENY); 114 aclEntry.set(AclPermission.WRITE, AclActionType.DENY); 115 aclEntry.set(AclPermission.PUBLISH, AclActionType.DENY); 116 aclEntry.set(AclPermission.DELETE, AclActionType.DENY); 117 aclObject.add(aclEntry); 118 acl.add(aclObject); 119 120 aclObject = acl.createNewObject("InCollection('collection2') and ($field2 != 34 or $field2 is null)"); 121 aclEntry = aclObject.createNewEntry(AclSubjectType.USER, user2.getId()); 122 aclEntry.set(AclPermission.READ_LIVE, AclActionType.DENY); 123 aclEntry.set(AclPermission.READ, AclActionType.DENY); 124 aclEntry.set(AclPermission.WRITE, AclActionType.DENY); 125 aclEntry.set(AclPermission.PUBLISH, AclActionType.DENY); 126 aclEntry.set(AclPermission.DELETE, AclActionType.DENY); 127 aclObject.add(aclEntry); 128 acl.add(aclObject); 129 130 acl.save(); 131 accessManager.copyStagingToLive(); 132 133 Repository user1Repository = repositoryManager.getRepository(new Credentials("user1", "user1")); 135 136 Document document1 = user1Repository.createDocument("Document1", documentType1.getId()); 137 String searchableContent = "<html><body>Effect van de langtermijnrente op het coca cola gebruik bij verzamelaars van postzegels.</body></html>"; 138 document1.setPart(partType1.getId(), "text/xml", searchableContent.getBytes("UTF-8")); 139 document1.addToCollection(collection1); 140 document1.save(); 141 142 Document document2 = user1Repository.createDocument("Document2", documentType1.getId()); 143 String contentWithLink = "<html><body><a HREF='daisy:" + document1.getId() + "'/></body></html>"; 144 document2.setPart(partType1.getId(), "text/xml", contentWithLink.getBytes("UTF-8")); 145 document2.addToCollection(collection1); 146 document2.save(); 147 148 Document document3 = user1Repository.createDocument("Document3", documentType1.getId()); 149 document3.setPrivate(true); 150 document3.addToCollection(collection1); 151 document3.save(); 152 153 Document document4 = user1Repository.createDocument("Document4", documentType1.getId()); 154 document4.setField("field1", "something-X"); 155 document4.addToCollection(collection2); 156 document4.save(); 157 158 Repository user2Repository = repositoryManager.getRepository(new Credentials("user2", "user2")); 160 161 Document document5 = user2Repository.createDocument("Document5", documentType1.getId()); 162 document5.setField("field1", "something-X"); 163 document5.addToCollection(collection1); 164 document5.save(); 165 166 Document document6 = user2Repository.createDocument("Document6", documentType2.getId()); 167 document6.setField("field2", new Long (34)); 168 document6.addToCollection(collection2); 169 document6.save(); 170 171 DocumentCollection collection3 = collectionManager.createCollection("collection3"); 173 collection3.save(); 174 DocumentCollection collection4 = collectionManager.createCollection("collection4"); 175 collection4.save(); 176 177 Document document7 = user2Repository.createDocument("Document7", documentType1.getId()); 178 document7.addToCollection(collection3); 179 document7.addToCollection(collection4); 180 document7.save(); 181 182 186 FieldType stringField1 = schema.createFieldType("StringField1", ValueType.STRING); 187 stringField1.save(); 188 FieldType dateField1 = schema.createFieldType("DateField1", ValueType.DATE); 189 dateField1.save(); 190 FieldType dateTimeField1 = schema.createFieldType("DateTimeField1", ValueType.DATETIME); 191 dateTimeField1.save(); 192 FieldType decimalField1 = schema.createFieldType("DecimalField1", ValueType.DECIMAL); 193 decimalField1.save(); 194 FieldType doubleField1 = schema.createFieldType("DoubleField1", ValueType.DOUBLE); 195 doubleField1.save(); 196 FieldType longField1 = schema.createFieldType("LongField1", ValueType.LONG); 197 longField1.save(); 198 FieldType linkField1 = schema.createFieldType("LinkField1", ValueType.LINK); 199 linkField1.save(); 200 FieldType linkField2 = schema.createFieldType("LinkField2", ValueType.LINK, true); 201 linkField2.save(); 202 203 DocumentType documentType3 = schema.createDocumentType("doctype3"); 204 documentType3.addFieldType(stringField1, false); 205 documentType3.addFieldType(dateField1, false); 206 documentType3.addFieldType(dateTimeField1, false); 207 documentType3.addFieldType(decimalField1, false); 208 documentType3.addFieldType(doubleField1, false); 209 documentType3.addFieldType(longField1, false); 210 documentType3.addFieldType(linkField1, false); 211 documentType3.addFieldType(linkField2, false); 212 documentType3.save(); 213 214 User user3 = userManger.createUser("user3"); 215 user3.setPassword("user3"); 216 user3.setFirstName("User3First"); 217 user3.setLastName("User3Last"); 218 user3.addToRole(role); 219 user3.setDefaultRole(role); 220 user3.save(); 221 222 DocumentCollection collection5 = collectionManager.createCollection("collection5"); 223 collection5.save(); 224 225 Repository user3Repository = repositoryManager.getRepository(new Credentials("user3", "user3")); 226 227 Document document8 = user3Repository.createDocument("Document8", documentType3.getId()); 228 document8.setField(stringField1.getId(), "hello"); 229 GregorianCalendar calendar = new GregorianCalendar (2004, 11, 6, 0, 0, 0); document8.setField(dateField1.getId(), calendar.getTime()); 231 calendar = new GregorianCalendar (2004, 9, 14, 12, 13, 14); 232 document8.setField(dateTimeField1.getId(), calendar.getTime()); 233 document8.setField(decimalField1.getId(), new BigDecimal (678.94321)); 234 document8.setField(doubleField1.getId(), new Double (123.456d)); 235 document8.setField(longField1.getId(), new Long (1978L)); 236 document8.setField(linkField1.getId(), new VariantKey(2, 1, 1)); 237 document8.setField(linkField2.getId(), new VariantKey[] {new VariantKey(2, 1, 1), new VariantKey(666, -1, -1)}); 238 document8.addToCollection(collection5); 239 document8.save(); 240 241 Document document9 = user3Repository.createDocument("Document9", documentType3.getId()); 242 calendar = new GregorianCalendar (2004, 11, 10, 0, 0, 0); document9.setField(dateField1.getId(), calendar.getTime()); 244 document9.addToCollection(collection5); 245 document9.save(); 246 247 Document document10 = user3Repository.createDocument("Document10", documentType3.getId()); 248 document10.setField(longField1.getId(), new Long (1985L)); 249 document10.addToCollection(collection5); 250 document10.save(); 251 252 Document document11 = user3Repository.createDocument("Document11", documentType3.getId()); 253 document11.setField(stringField1.getId(), "another hello"); 254 document11.setField(longField1.getId(), new Long (1990L)); 255 document11.addToCollection(collection5); 256 document11.setCustomField("xyz", "123"); 257 document11.save(); 258 259 Document document12 = user3Repository.createDocument("Document12", documentType3.getId()); 260 document12.save(); 261 document12.setNewVersionState(VersionState.DRAFT); 262 document12.setField(stringField1.getId(), "boe"); 263 document12.save(); 264 265 Document document13 = user3Repository.createDocument("Document13", documentType3.getId()); 266 document13.setField(stringField1.getId(), "ba"); 267 document13.setRetired(true); 268 document13.save(); 269 270 } 271 272 } 273 | Popular Tags |