Revision 3459 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.lib/org.gvsig.vcsgis.lib.impl/src/main/java/org/gvsig/vcsgis/lib/workspace/VCSGisWorkspaceImpl.java
VCSGisWorkspaceImpl.java | ||
---|---|---|
165 | 165 |
private final ChangeListenerHelper workspaceEntitiesChangeListeners; |
166 | 166 |
private final ChangeListenerHelper repositoryEntitiesChangeListeners; |
167 | 167 |
|
168 |
private String currentUser; |
|
168 |
private String currentUserCode;
|
|
169 | 169 |
private String authenticationToken; |
170 | 170 |
private VCSGisUserIdentificationRequester userIdentificationRequester; |
171 | 171 |
|
... | ... | |
181 | 181 |
this.label = label; |
182 | 182 |
this.workspaceEntitiesChangeListeners = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper(); |
183 | 183 |
this.repositoryEntitiesChangeListeners = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper(); |
184 |
this.currentUser = null; |
|
184 |
this.currentUserCode = null;
|
|
185 | 185 |
this.authenticationToken = null; |
186 | 186 |
this.userIdentificationRequester = null; |
187 | 187 |
// LOGGER.debug("===: CREATE WORKSPACE "+ hexId(this)+ " (init label='"+this.label+"')"); |
... | ... | |
203 | 203 |
if (this.code == null) { |
204 | 204 |
throw new RuntimeException("Can't retrieve code from workspace '" + this.getMessageLabel() + "'"); |
205 | 205 |
} |
206 |
this.currentUser = varsTable.get(this, "USER"); |
|
206 |
this.currentUserCode = varsTable.get(this, "USER");
|
|
207 | 207 |
this.authenticationToken = varsTable.get(this, "AUTHENTICATIONTOKEN"); |
208 | 208 |
this.reloadWorkspaceEntities(); |
209 | 209 |
this.repository = (VCSGisRepository) Json.toObject(varsTable.get(this, "REPOSITORY")); |
... | ... | |
1586 | 1586 |
reloadRepositoryEntities(status); |
1587 | 1587 |
request = this.getRepository().createCommitRequest(); |
1588 | 1588 |
request.setAuthenticationToken(this.authenticationToken); |
1589 |
request.setUserCode(this.currentUser); |
|
1589 |
request.setUserCode(this.currentUserCode);
|
|
1590 | 1590 |
|
1591 | 1591 |
boolean useSeleccion = this.prepareCommitRequest(request, entityCodes, revisiondate, efectivedate, comment, status); |
1592 | 1592 |
|
... | ... | |
1679 | 1679 |
reloadRepositoryEntities(status); |
1680 | 1680 |
request = this.getRepository().createCheckoutRequest(tableName); |
1681 | 1681 |
request.setAuthenticationToken(this.authenticationToken); |
1682 |
request.setUserCode(this.currentUser); |
|
1682 |
request.setUserCode(this.currentUserCode);
|
|
1683 | 1683 |
request.setEfectiveDate((Timestamp) null); |
1684 | 1684 |
request.setRevisionCode(revisionCode); |
1685 | 1685 |
|
... | ... | |
1763 | 1763 |
|
1764 | 1764 |
} |
1765 | 1765 |
} |
1766 |
|
|
1767 |
@Override |
|
1768 |
public int checkout(List<String> tableNames, SimpleTaskStatus status){ |
|
1769 |
for (String tableName : tableNames) { |
|
1770 |
int r = checkout(tableName, null, status); |
|
1771 |
if(r != ERR_NO_ERROR){ |
|
1772 |
return r; |
|
1773 |
} |
|
1774 |
} |
|
1775 |
return ERR_NO_ERROR; |
|
1776 |
} |
|
1766 | 1777 |
|
1778 |
|
|
1767 | 1779 |
private void updateUsersFromRepository(SimpleTaskStatus status) { |
1768 | 1780 |
FeatureStore usersStore = null; |
1769 | 1781 |
VCSGisUsersRequest request = null; |
1770 | 1782 |
try { |
1771 | 1783 |
request = this.getRepository().createUsersRequest(); |
1772 | 1784 |
request.setAuthenticationToken(this.authenticationToken); |
1773 |
request.setUserCode(this.currentUser); |
|
1785 |
request.setUserCode(this.currentUserCode);
|
|
1774 | 1786 |
|
1775 | 1787 |
status.message("Executing users request"); |
1776 | 1788 |
if ( execute(request) != ERR_OK) { |
... | ... | |
1804 | 1816 |
try { |
1805 | 1817 |
request = this.getRepository().createTopologyPlansRequest(); |
1806 | 1818 |
request.setAuthenticationToken(this.authenticationToken); |
1807 |
request.setUserCode(this.currentUser); |
|
1819 |
request.setUserCode(this.currentUserCode);
|
|
1808 | 1820 |
|
1809 | 1821 |
status.message("Executing topology plans request"); |
1810 | 1822 |
if ( execute(request) != ERR_OK) { |
... | ... | |
1912 | 1924 |
request = this.getRepository().createUpdateRequest(tableName); |
1913 | 1925 |
transaction.add(request); |
1914 | 1926 |
request.setAuthenticationToken(this.authenticationToken); |
1915 |
request.setUserCode(this.currentUser); |
|
1927 |
request.setUserCode(this.currentUserCode);
|
|
1916 | 1928 |
EntityRow lentity = this.getWorkspaceEntityByName(tableName); |
1917 | 1929 |
if (lentity != null) { |
1918 | 1930 |
request.setLocalRevisionCode(lentity.getLocalRevisionCode()); |
... | ... | |
2602 | 2614 |
status.message("Getting repository table metadata"); |
2603 | 2615 |
VCSGisEntitiesRequest request = this.getRepository().createEntitiesRequest(); |
2604 | 2616 |
request.setAuthenticationToken(this.authenticationToken); |
2605 |
request.setUserCode(this.currentUser); |
|
2617 |
request.setUserCode(this.currentUserCode);
|
|
2606 | 2618 |
if ( execute(request) != ERR_OK) { |
2607 | 2619 |
throw new VCSGisRuntimeException(request.getLastErrorCode(), request.getLastErrorMessage()); |
2608 | 2620 |
} |
... | ... | |
2742 | 2754 |
transaction.add(request); |
2743 | 2755 |
|
2744 | 2756 |
request.setAuthenticationToken(this.authenticationToken); |
2745 |
request.setUserCode(this.currentUser); |
|
2757 |
request.setUserCode(this.currentUserCode);
|
|
2746 | 2758 |
request.setDateRange(minDate, maxDate); |
2747 | 2759 |
request.setMaxNumberOfRevisions(maxNumberOfRevisions); |
2748 | 2760 |
request.setRevisionNumberRange(-1, -1); |
... | ... | |
2849 | 2861 |
transaction.add(request); |
2850 | 2862 |
|
2851 | 2863 |
request.setAuthenticationToken(this.authenticationToken); |
2852 |
request.setUserCode(this.currentUser); |
|
2864 |
request.setUserCode(this.currentUserCode);
|
|
2853 | 2865 |
request.setDateRange(null, null); |
2854 | 2866 |
request.setMaxNumberOfRevisions(maxNumberOfRevisions); |
2855 | 2867 |
request.setRevisionNumberRange(-1, minRevision); |
... | ... | |
2981 | 2993 |
|
2982 | 2994 |
DataTransaction transaction = DALLocator.getDataManager().createTransaction(); |
2983 | 2995 |
try { |
2984 |
LOGGER.debug("===: REMOVE ENTITY " + entity.getEntityName()); |
|
2996 |
err = doRemoveEntity(entity, transaction); |
|
2997 |
forceReloadWorkspaceEntities(); |
|
2998 |
transaction.commit(); |
|
2999 |
return ERR_OK; |
|
3000 |
} catch (Exception ex) { |
|
3001 |
LOGGER.warn("Can't remove entity.", ex); |
|
3002 |
transaction.rollbackQuietly(); |
|
3003 |
return err; |
|
3004 |
} finally { |
|
3005 |
transaction.dispose(); |
|
3006 |
} |
|
3007 |
} |
|
2985 | 3008 |
|
3009 |
@Override |
|
3010 |
public int removeEntities(List<String> namesOrCodes) { |
|
3011 |
int err = ERR_NO_ERROR; |
|
3012 |
DataTransaction transaction = DALLocator.getDataManager().createTransaction(); |
|
3013 |
|
|
3014 |
try { |
|
3015 |
for (String nameOrCode : namesOrCodes) { |
|
3016 |
EntityRow entity = this.getWorkspaceEntity(nameOrCode); |
|
3017 |
if(entity == null){ |
|
3018 |
err = ERR_ENTITY_NOT_EXISTS; |
|
3019 |
return err; |
|
3020 |
} |
|
2986 | 3021 |
|
2987 |
//Eliminamos todos los cambios de esta entidad |
|
2988 |
err = ERR_CANT_REMOVE_CHANGES; |
|
2989 |
FeatureStore changesStore = this.openFeatureStore(WorkspaceChangesTable.TABLE_NAME); |
|
2990 |
transaction.add(changesStore); |
|
2991 |
changesStore.edit(MODE_FULLEDIT); |
|
2992 |
changesStore.delete("\""+WorkspaceChangesTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
2993 |
changesStore.finishEditing(); |
|
2994 |
|
|
2995 |
FeatureStore remoteChangesStore = this.openFeatureStore(RemoteChangesTable.TABLE_NAME); |
|
2996 |
transaction.add(remoteChangesStore); |
|
2997 |
remoteChangesStore.edit(MODE_FULLEDIT); |
|
2998 |
remoteChangesStore.delete("\""+RemoteChangesTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
2999 |
remoteChangesStore.finishEditing(); |
|
3000 |
|
|
3001 |
//Eliminamos las revisiones locales |
|
3002 |
FeatureStore revisionsStore = openFeatureStore(LocalRevisionsTable.TABLE_NAME); |
|
3003 |
transaction.add(revisionsStore); |
|
3004 |
revisionsStore.edit(MODE_FULLEDIT); |
|
3005 |
revisionsStore.delete("\""+LocalRevisionsTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
3006 |
revisionsStore.finishEditing(); |
|
3007 |
err = ERR_CANT_REMOVE_ENTITY; |
|
3008 |
|
|
3009 |
|
|
3010 |
//Eliminamos la entidad |
|
3011 |
FeatureStore entitiesStore = openFeatureStore(EntitiesTable.TABLE_NAME); |
|
3012 |
transaction.add(entitiesStore); |
|
3013 |
entitiesStore.edit(MODE_FULLEDIT); |
|
3014 |
entitiesStore.delete("\""+EntitiesTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
3015 |
entitiesStore.finishEditing(); |
|
3016 |
err = ERR_CANT_REMOVE_ENTITY; |
|
3017 |
|
|
3018 |
|
|
3019 |
//Eliminamos el DALFILE |
|
3020 |
FeatureStore store = this.openFeatureStore(entity); |
|
3021 |
if(store != null){ |
|
3022 |
transaction.add(store); |
|
3023 |
ResourcesStorage resourcesStorage = store.getResourcesStorage(); |
|
3024 |
if (resourcesStorage != null) { |
|
3025 |
Resource resource = resourcesStorage.getResource("dal"); |
|
3026 |
if (resource != null) { |
|
3027 |
resourcesStorage.remove(resource.getName()); |
|
3028 |
} |
|
3029 |
} |
|
3030 |
|
|
3031 |
//Eliminamos el store |
|
3032 |
transaction.add(this.wsexplorer, false); |
|
3033 |
this.wsexplorer.remove(store.getParameters()); |
|
3022 |
doRemoveEntity(entity, transaction); |
|
3034 | 3023 |
} |
3035 | 3024 |
|
3036 | 3025 |
forceReloadWorkspaceEntities(); |
... | ... | |
3046 | 3035 |
|
3047 | 3036 |
} |
3048 | 3037 |
|
3038 |
private int doRemoveEntity(EntityRow entity, DataTransaction transaction) throws DataException { |
|
3039 |
int err; |
|
3040 |
LOGGER.debug("===: REMOVE ENTITY " + entity.getEntityName()); |
|
3041 |
//Eliminamos todos los cambios de esta entidad |
|
3042 |
err = ERR_CANT_REMOVE_CHANGES; |
|
3043 |
FeatureStore changesStore = this.openFeatureStore(WorkspaceChangesTable.TABLE_NAME); |
|
3044 |
transaction.add(changesStore); |
|
3045 |
changesStore.edit(MODE_FULLEDIT); |
|
3046 |
changesStore.delete("\""+WorkspaceChangesTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
3047 |
changesStore.finishEditing(); |
|
3048 |
FeatureStore remoteChangesStore = this.openFeatureStore(RemoteChangesTable.TABLE_NAME); |
|
3049 |
transaction.add(remoteChangesStore); |
|
3050 |
remoteChangesStore.edit(MODE_FULLEDIT); |
|
3051 |
remoteChangesStore.delete("\""+RemoteChangesTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
3052 |
remoteChangesStore.finishEditing(); |
|
3053 |
//Eliminamos las revisiones locales |
|
3054 |
FeatureStore revisionsStore = openFeatureStore(LocalRevisionsTable.TABLE_NAME); |
|
3055 |
transaction.add(revisionsStore); |
|
3056 |
revisionsStore.edit(MODE_FULLEDIT); |
|
3057 |
revisionsStore.delete("\""+LocalRevisionsTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
3058 |
revisionsStore.finishEditing(); |
|
3059 |
err = ERR_CANT_REMOVE_ENTITY; |
|
3060 |
//Eliminamos la entidad |
|
3061 |
FeatureStore entitiesStore = openFeatureStore(EntitiesTable.TABLE_NAME); |
|
3062 |
transaction.add(entitiesStore); |
|
3063 |
entitiesStore.edit(MODE_FULLEDIT); |
|
3064 |
entitiesStore.delete("\""+EntitiesTable.COD_ENTITY+"\"='"+entity.getEntityCode()+"'"); |
|
3065 |
entitiesStore.finishEditing(); |
|
3066 |
err = ERR_CANT_REMOVE_ENTITY; |
|
3067 |
//Eliminamos el DALFILE |
|
3068 |
FeatureStore store = this.openFeatureStore(entity); |
|
3069 |
if(store != null){ |
|
3070 |
transaction.add(store); |
|
3071 |
ResourcesStorage resourcesStorage = store.getResourcesStorage(); |
|
3072 |
if (resourcesStorage != null) { |
|
3073 |
Resource resource = resourcesStorage.getResource("dal"); |
|
3074 |
if (resource != null) { |
|
3075 |
resourcesStorage.remove(resource.getName()); |
|
3076 |
} |
|
3077 |
} |
|
3078 |
|
|
3079 |
//Eliminamos el store |
|
3080 |
transaction.add(this.wsexplorer, false); |
|
3081 |
this.wsexplorer.remove(store.getParameters()); |
|
3082 |
} |
|
3083 |
return err; |
|
3084 |
} |
|
3085 |
|
|
3049 | 3086 |
@Override |
3050 | 3087 |
public boolean authenticate(SimpleTaskStatus status) { |
3051 |
if( this.currentUser != null ) {
|
|
3088 |
if( StringUtils.isNotBlank(this.currentUserCode) ) {
|
|
3052 | 3089 |
return true; |
3053 | 3090 |
} |
3054 | 3091 |
int r = authenticate(null, null, status); |
... | ... | |
3091 | 3128 |
VarsTable varsTable = new VarsTable(); |
3092 | 3129 |
varsTable.set(this,"USER",request.getUserCode()); |
3093 | 3130 |
varsTable.set(this,"AUTHENTICATIONTOKEN",request.getAuthenticationToken()); |
3094 |
this.currentUser = request.getUserCode(); |
|
3131 |
this.currentUserCode = request.getUserCode();
|
|
3095 | 3132 |
this.authenticationToken = request.getAuthenticationToken(); |
3096 | 3133 |
this.getRepository().setAuthenticationToken(request.getAuthenticationToken()); |
3097 | 3134 |
this.getRepository().setUserCode(request.getUserCode()); |
... | ... | |
3130 | 3167 |
int r = this.authenticate(this.userIdentificationRequester.getUserId(), this.userIdentificationRequester.getPassword(), null); |
3131 | 3168 |
if(r == ERR_OK){ |
3132 | 3169 |
request.setAuthenticationToken(this.authenticationToken); |
3133 |
request.setUserCode(this.currentUser); |
|
3170 |
request.setUserCode(this.currentUserCode);
|
|
3134 | 3171 |
} |
3135 | 3172 |
continue; |
3136 | 3173 |
} |
... | ... | |
3398 | 3435 |
reloadRepositoryEntities(status); |
3399 | 3436 |
request = this.getRepository().createCheckoutRequest(entityName); |
3400 | 3437 |
request.setAuthenticationToken(this.authenticationToken); |
3401 |
request.setUserCode(this.currentUser); |
|
3438 |
request.setUserCode(this.currentUserCode);
|
|
3402 | 3439 |
request.setEfectiveDate(efectiveDate); |
3403 | 3440 |
request.setRevisionCode(revisionCode); |
3404 | 3441 |
|
Also available in: Unified diff