Changeset 15103
- Timestamp:
- 03/16/10 21:22:12 (2 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
-
Jav_Src/src/com/scenari/src/feature/fields/IFieldsUpdaterAspect.java (modified) (1 diff)
-
Jav_Wsp/src/com/scenari/m/bdp/item/ItemDataKeys.java (modified) (1 diff)
-
Jav_Wsp/src/com/scenari/m/bdp/item/fs/WspSrcNodeItem.java (modified) (8 diffs)
-
Jav_Wsp/src/com/scenari/m/bdp/item/fs/XItemCache.java (modified) (1 diff)
-
Jav_Wsp/src/com/scenari/m/bdp/module/rename/HModuleRenameXsl.java (modified) (3 diffs)
-
Jav_Wsp/src/com/scenari/m/bdp/module/rename/IHModuleRename.java (modified) (2 diffs)
-
Jav_Wsp/src/com/scenari/m/bdp/module/rename/multi/HModuleRenameMulti.java (modified) (3 diffs)
-
Jav_Wsp/src/com/scenari/m/bdp/module/rename/uii/HModuleRenameUii.java (modified) (3 diffs)
-
Jav_Wsp/src/eu/scenari/wsp/provider/IWspProvider.java (modified) (1 diff)
-
Jav_Wsp/src/eu/scenari/wsp/service/repos/SvcRepos.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Jav_Src/src/com/scenari/src/feature/fields/IFieldsUpdaterAspect.java
r14602 r15103 60 60 * à {@link #updateField(String, Object)}. L'envoi des données peut ainsi être buffurisé 61 61 * pour un envoi groupé vers le système de stockage. L'implémentation peut ne pas prendre 62 * en considération cet teindice et mettre à jour le système de stockage à chaque62 * en considération cet indice et mettre à jour le système de stockage à chaque 63 63 * appel à {@link #updateField(String, Object)}.</p> 64 64 * -
trunk/Jav_Wsp/src/com/scenari/m/bdp/item/ItemDataKeys.java
r14471 r15103 89 89 90 90 /** 91 * DataKey pour placer l'objet {@link IHItem} dans un field. Attention, un tel champ 92 * peut ne pas être sérialisable. 93 */ 94 public static final String DATAKEY_ITEMOBJECT = "itItemObject"; 95 96 /** 91 97 * Alias de DataKeys regroupant les fields de base des items. 92 98 * <ul> -
trunk/Jav_Wsp/src/com/scenari/m/bdp/item/fs/WspSrcNodeItem.java
r15098 r15103 84 84 import com.scenari.src.feature.fields.IFieldsCollector; 85 85 import com.scenari.src.feature.fields.IFieldsProviderAspect; 86 import com.scenari.src.feature.fields.IFieldsUpdaterAspect; 86 87 import com.scenari.src.feature.ids.IFindContentByIdAspect; 87 88 import com.scenari.src.feature.ids.IFindNodeByIdAspect; … … 334 335 335 336 public void writeFrom(InputStream pIn) throws Exception { 336 HWorkspaceFs vWsp = fItemCacheData.getItemCache().getWsp(); 337 HStreamHandler vStreamHandler = new HStreamHandler(pIn); 338 IHItemDef vItemDef; 339 synchronized (vWsp) { 340 vItemDef = fItemCacheData.getItemCache().hCreateItemDefFromCache(); 341 } 342 IHItemType vItemType = HTreatIdentif.findItemType(vWsp, getSrcUri(), null, vStreamHandler); 343 IUser vUser = ThreadUser.getUser(); 344 int vClientId = ContextBdp.getThreadClientInt(); 345 vItemType.hGetModuleSave().hSaveItem(vItemDef, xGetUriRes(), vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 337 IFieldsUpdaterAspect vFieldsUpdater = getSubSrcNode().getAspect(IFieldsUpdaterAspect.TYPE); 338 try { 339 if (vFieldsUpdater != null) vFieldsUpdater.startUpdateFields(); 340 HWorkspaceFs vWsp = fItemCacheData.getItemCache().getWsp(); 341 HStreamHandler vStreamHandler = new HStreamHandler(pIn); 342 IHItemDef vItemDef; 343 synchronized (vWsp) { 344 vItemDef = fItemCacheData.getItemCache().hCreateItemDefFromCache(); 345 } 346 IHItemType vItemType = HTreatIdentif.findItemType(vWsp, getSrcUri(), null, vStreamHandler); 347 IUser vUser = ThreadUser.getUser(); 348 int vClientId = ContextBdp.getThreadClientInt(); 349 IHItem vNewItem = vItemType.hGetModuleSave().hSaveItem(vItemDef, xGetUriRes(), vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 350 if (vFieldsUpdater != null) vFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vNewItem); 351 } finally { 352 if (vFieldsUpdater != null) vFieldsUpdater.endUpdateFields(); 353 } 346 354 } 347 355 … … 379 387 vRenamingPlan = new HRenamingPlanItem(pFrom.getSrcUri(), SrcFeatureIds.getSrcId(pFrom), getSrcUri(), SrcFeatureIds.getSrcId(getSubSrcNode())); 380 388 } 381 vRenameModuleFrom.hRenameItem(vRenamingPlan, vItemDefFrom, vItemDefTo, vUser, vClientId, null); 389 IFieldsUpdaterAspect vFieldsUpdater = getSubSrcNode().getAspect(IFieldsUpdaterAspect.TYPE); 390 try { 391 if (vFieldsUpdater != null) vFieldsUpdater.startUpdateFields(); 392 IHItem vNewItem = vRenameModuleFrom.hRenameItem(vRenamingPlan, vItemDefFrom, vItemDefTo, vUser, vClientId, null); 393 if (vFieldsUpdater != null) vFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vNewItem); 394 } finally { 395 if (vFieldsUpdater != null) vFieldsUpdater.endUpdateFields(); 396 } 382 397 } else { 383 398 //Pas de module de renommage … … 391 406 if (vSubCopyMove != null) { 392 407 //Notre item renommé est géré par ID et la sub-source gère le copy-move 408 IFieldsUpdaterAspect vFromFieldsUpdater = pFrom.getAspect(IFieldsUpdaterAspect.TYPE); 409 IFieldsUpdaterAspect vTargetFieldsUpdater = getAspect(IFieldsUpdaterAspect.TYPE); 393 410 try { 394 vSubCopyMove.moveFrom(pFrom); 411 if (vFromFieldsUpdater != null) vFromFieldsUpdater.startUpdateFields(); 412 if (vTargetFieldsUpdater != null) vTargetFieldsUpdater.startUpdateFields(); 413 try { 414 vSubCopyMove.moveFrom(pFrom); 415 } finally { 416 //On force une revalidation de l'item source et target. 417 IHItem vFromItem = xValidateItem(pFrom); 418 if (vFromItem != null && vFromFieldsUpdater != null) vFromFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vFromItem); 419 IHItem vTargetItem = xValidateItem(this); 420 if (vTargetItem != null && vTargetFieldsUpdater != null) vFromFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vTargetItem); 421 } 395 422 } finally { 396 //On force un revalidation de l'item source et target. 397 //FIXME sauf si listener auto sur subSrc 398 xValidateItem(pFrom); 399 xValidateItem(this); 423 if (vFromFieldsUpdater != null) vFromFieldsUpdater.endUpdateFields(); 424 if (vTargetFieldsUpdater != null) vTargetFieldsUpdater.endUpdateFields(); 400 425 } 401 426 String vIdTarget = SrcFeatureIds.getSrcId(getSubSrcNode()); … … 430 455 * Revalide un item suite à des modif directement effectuées par les SubSources. 431 456 */ 432 protected void xValidateItem(ISrcNode pFrom) {457 protected IHItem xValidateItem(ISrcNode pSrc) { 433 458 try { 434 if (p From.getContentStatus() <= ISrcContent.STATUS_NONE) {435 IHWorkspace vWspFrom = p From.getAspect(IWspSrc.WORKSPACE_ASPECT_TYPE);459 if (pSrc.getContentStatus() <= ISrcContent.STATUS_NONE) { 460 IHWorkspace vWspFrom = pSrc.getAspect(IWspSrc.WORKSPACE_ASPECT_TYPE); 436 461 if (vWspFrom != null) { 437 vWspFrom.refreshUri(p From.getSrcUri());462 vWspFrom.refreshUri(pSrc.getSrcUri()); 438 463 } 439 464 } else { 440 IHItemDef vItemDefFrom = p From.getAspect(IWspSrc.ITEMDEF_ASPECT_TYPE);465 IHItemDef vItemDefFrom = pSrc.getAspect(IWspSrc.ITEMDEF_ASPECT_TYPE); 441 466 if (vItemDefFrom != null) { 442 InputStream vIn = p From.newInputStream(false);467 InputStream vIn = pSrc.newInputStream(false); 443 468 HStreamHandler vStreamHandler = vIn != null ? new HStreamHandler(vIn) : null; 444 469 try { 445 IHItemType vItemType = HTreatIdentif.findItemType(vItemDefFrom.hGetWorkspace(), p From.getSrcUri(), null, vStreamHandler);470 IHItemType vItemType = HTreatIdentif.findItemType(vItemDefFrom.hGetWorkspace(), pSrc.getSrcUri(), null, vStreamHandler); 446 471 IUser vUser = ThreadUser.getUser(); 447 472 int vClientId = ContextBdp.getThreadClientInt(); 448 vItemType.hGetModuleSave().hValidateItem(vItemDefFrom, vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null);473 return vItemType.hGetModuleSave().hValidateItem(vItemDefFrom, vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 449 474 } finally { 450 475 if (vStreamHandler != null) vStreamHandler.hCloseAndPurgeCache(); … … 455 480 LogMgr.publishException(e); 456 481 } 482 return null; 457 483 } 458 484 … … 483 509 IHModuleRename vModuleRename = vItemType.hGetModuleRename(); 484 510 if (vModuleRename != null) { 485 vModuleRename.hRenameItem(vRenamingPlan, vItemDef, vItemDef, vUser, IContextBdp.CLIENTID_NONE, null); 511 IFieldsUpdaterAspect vFieldsUpdater = getSubSrcNode().getAspect(IFieldsUpdaterAspect.TYPE); 512 try { 513 if (vFieldsUpdater != null) vFieldsUpdater.startUpdateFields(); 514 IHItem vNewItem = vModuleRename.hRenameItem(vRenamingPlan, vItemDef, vItemDef, vUser, IContextBdp.CLIENTID_NONE, null); 515 if (vFieldsUpdater != null) vFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vNewItem); 516 } finally { 517 if (vFieldsUpdater != null) vFieldsUpdater.endUpdateFields(); 518 } 486 519 } 487 520 } … … 505 538 Iterator<ISearchResultRow> vIt = SrcFeatureSearch.execute(vReq, getWorkspace().findNodeByUri(URI_ROOT)); 506 539 while (vIt.hasNext()) { 507 XItemCache vItemCache = fItemCacheData.getItemCache().getWsp().xGetOrCreateItemCache(vIt.next().getRowUri(), false); 508 vItemCache.xUnlinkChilds(); 509 vItemCache.xLinkChilds(); 540 HWorkspaceFs vWsp = fItemCacheData.getItemCache().getWsp(); 541 synchronized (vWsp) { 542 XItemCache vItemCache = vWsp.xGetOrCreateItemCache(vIt.next().getRowUri(), false); 543 vItemCache.xUnlinkChilds(); 544 vItemCache.xLinkChilds(); 545 } 510 546 } 511 547 } -
trunk/Jav_Wsp/src/com/scenari/m/bdp/item/fs/XItemCache.java
r15098 r15103 705 705 fItemType = null; 706 706 fAttrs = null; 707 fTitle = null; 707 708 fFirstContentProblem = null; 708 709 fMemLastModif = ISrcContent.LAST_MODIF_SRCNULL; -
trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/HModuleRenameXsl.java
r14497 r15103 44 44 45 45 import com.scenari.m.bdp.context.IContextBdp; 46 import com.scenari.m.bdp.item.IHItem; 46 47 import com.scenari.m.bdp.item.IHItemDef; 47 48 import com.scenari.m.bdp.itemtype.IHItemType; … … 88 89 * 89 90 */ 90 public voidhRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception {91 public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 91 92 InputStream vStreamSrc = null; 92 93 HStreamHandler vStream = null; … … 105 106 } 106 107 //Enregistrment 107 vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, IContextBdp.CLIENTID_NONE, null);108 return vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, IContextBdp.CLIENTID_NONE, null); 108 109 } catch (Exception e) { 109 110 throw (Exception) LogMgr.addMessage(e, "Echec au renommage de l'item " + pItemSrc); -
trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/IHModuleRename.java
r14497 r15103 41 41 import java.io.InputStream; 42 42 43 import com.scenari.m.bdp.item.IHItem; 43 44 import com.scenari.m.bdp.item.IHItemDef; 44 45 import com.scenari.m.bdp.module.IHModule; … … 66 67 * 67 68 */ 68 public voidhRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception;69 public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception; 69 70 70 71 } -
trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/multi/HModuleRenameMulti.java
r14497 r15103 44 44 import java.util.regex.Pattern; 45 45 46 import com.scenari.m.bdp.item.IHItem; 46 47 import com.scenari.m.bdp.item.IHItemDef; 47 48 import com.scenari.m.bdp.item.IHProblem; … … 107 108 * 108 109 */ 109 public voidhRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception {110 public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 110 111 IHWorkspace vDestWsp = pItemDst.hGetWorkspace(); 111 112 try { … … 152 153 153 154 //Validation finale de l'item renommé. 154 vItemType.hGetModuleSave().hValidateItem(pItemDst, null, (pUser != null) ? pUser.getAccount() : null, pClientId, null);155 return vItemType.hGetModuleSave().hValidateItem(pItemDst, null, (pUser != null) ? pUser.getAccount() : null, pClientId, null); 155 156 } catch (Exception e) { 156 157 throw e; -
trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/uii/HModuleRenameUii.java
r14497 r15103 42 42 43 43 import com.scenari.m.bdp.item.HQCode; 44 import com.scenari.m.bdp.item.IHItem; 44 45 import com.scenari.m.bdp.item.IHItemDef; 45 46 import com.scenari.m.bdp.itemtype.IHItemType; … … 88 89 * 89 90 */ 90 public voidhRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception {91 public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 91 92 InputStream vStreamSrc = null; 92 93 HStreamHandler vStream = null; … … 105 106 } 106 107 //Enregistrment 107 vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, pClientId, pTransaction);108 return vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, pClientId, pTransaction); 108 109 } catch (Exception e) { 109 110 throw (Exception) LogMgr.addMessage(e, "Echec au renommage de l'item " + pItemSrc); -
trunk/Jav_Wsp/src/eu/scenari/wsp/provider/IWspProvider.java
r14498 r15103 99 99 */ 100 100 public int removeWspDefListener(IWspDefListener pListener, int pOrder); 101 102 /** 103 * Méthodes optionnelles supplémentaires. 104 */ 105 public interface IWspProviderInternal extends IWspProvider { 106 107 /** 108 * Repository associé à ce provider. 109 */ 110 public void setRepository(IRepository pRepos); 111 } 101 112 } -
trunk/Jav_Wsp/src/eu/scenari/wsp/service/repos/SvcRepos.java
r15005 r15103 47 47 48 48 import eu.scenari.wsp.provider.IWspProvider; 49 import eu.scenari.wsp.provider.IWspProvider.IWspProviderInternal; 49 50 50 51 /** … … 108 109 ((HRepositoryFs2) fRepos).wInitFs2(vInternData, fUpdtMgr, vSsOfSs, fWspProvider, vTransfCache, vModeAllItemsLoaded, vCheckUpdateItems, vSharedWspTypes); 109 110 fRepos.addWspHandlerListener(this); 111 if (fWspProvider instanceof IWspProviderInternal) { 112 ((IWspProviderInternal) fWspProvider).setRepository(fRepos); 113 } 110 114 } 111 115
Note: See TracChangeset
for help on using the changeset viewer.