Revision 45614

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/PerformChangesOperation.java
33 33
import org.apache.commons.collections.CollectionUtils;
34 34
import org.apache.commons.lang3.StringUtils;
35 35
import org.gvsig.expressionevaluator.ExpressionBuilder;
36
import org.gvsig.expressionevaluator.ExpressionBuilder.Parameter;
36 37
import org.gvsig.expressionevaluator.ExpressionBuilder.Variable;
37 38
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
38 39
import org.gvsig.fmap.dal.DataTypes;
......
43 44
import org.gvsig.fmap.dal.feature.FeatureType.FeatureTypeChanged;
44 45
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
45 46
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices;
46
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
47
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
48 47
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecuteSQLException;
49 48
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCSQLException;
50 49
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCUpdateWithoutChangesException;
51
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
50
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
52 51
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
53 52
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
53
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
54 54
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_FEATURE_TYPE;
55 55
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_TABLE;
56 56
import org.gvsig.tools.dispose.Disposable;
......
221 221
                PROP_FEATURE_TYPE, featureType,
222 222
                PROP_TABLE, table
223 223
        );
224
        sqlbuilder.setProperties(
225
                Parameter.class, 
226
                PROP_FEATURE_TYPE, featureType,
227
                PROP_TABLE, table
228
        );
224 229
        String sql = sqlbuilder.insert().toString();
225 230
        return sql;
226 231
    }
......
302 307
                PROP_FEATURE_TYPE, this.featureType,
303 308
                PROP_TABLE, table
304 309
        );
310
        sqlbuilder.setProperties(
311
                Parameter.class, 
312
                PROP_FEATURE_TYPE, featureType,
313
                PROP_TABLE, table
314
        );
315
        
305 316
        String sql = sqlbuilder.update().toString();
306 317
        return sql;
307 318
    }
......
409 420
                Variable.class, 
410 421
                PROP_TABLE, table
411 422
        );
412
        
413 423
        List<String> sqls = sqlbuilder.alter_table().toStrings();
414 424
        sqls.addAll(buildCreateIndexSQL());
415 425
        return sqls;
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCServerExplorerBase.java
24 24
package org.gvsig.fmap.dal.store.jdbc2.spi;
25 25

  
26 26
import java.io.File;
27
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
28 27
import java.util.ArrayList;
29 28
import java.util.Arrays;
30 29
import java.util.Collections;
......
53 52
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_CONFIGURATION_NAME;
54 53
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES_NAME;
55 54
import org.gvsig.fmap.dal.NewDataStoreParameters;
55
import org.gvsig.fmap.dal.SQLBuilder;
56
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
56 57
import org.gvsig.fmap.dal.exception.CloseException;
57 58
import org.gvsig.fmap.dal.exception.DataException;
58 59
import org.gvsig.fmap.dal.exception.InitializeException;
59 60
import org.gvsig.fmap.dal.exception.OpenException;
60 61
import org.gvsig.fmap.dal.exception.RemoveException;
62
import org.gvsig.fmap.dal.feature.EditableFeature;
61 63
import org.gvsig.fmap.dal.feature.EditableFeatureType;
62
import org.gvsig.fmap.dal.feature.FeatureType;
63
import org.gvsig.fmap.dal.SQLBuilder;
64
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
65
import org.gvsig.fmap.dal.feature.EditableFeature;
66 64
import org.gvsig.fmap.dal.feature.Feature;
67 65
import org.gvsig.fmap.dal.feature.FeatureStore;
66
import org.gvsig.fmap.dal.feature.FeatureType;
68 67
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
69 68
import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
70 69
import org.gvsig.fmap.dal.serverexplorer.db.spi.AbstractDBServerExplorer;
......
77 76
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
78 77
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecuteSQLException;
79 78
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
79
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
80 80
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
81 81
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CanCreateTablesOperation;
82 82
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CreateTableOperation;
83
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.DropTableOperation;
84
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ExecuteOperation;
83 85
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.FetchFeatureTypeOperation;
84 86
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ListTablesOperation;
85
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.DropTableOperation;
86
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ExecuteOperation;
87 87
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.UpdateTableStatisticsOperation;
88 88
import org.gvsig.json.Json;
89 89
import org.gvsig.json.JsonObjectBuilder;
......
204 204
        private final int mode;
205 205
        private final JDBCServerExplorerParameters serverParameters;
206 206
        private final boolean informationTables;
207
        private final JDBCHelper helper;
207
        private JDBCHelper helper;
208 208

  
209 209
        public CachedTablesValue(JDBCHelper helper, int mode, JDBCServerExplorerParameters serverParameters, boolean informationTables) {
210 210
            this.mode = mode;
......
224 224
        @Override
225 225
        protected void reload() {
226 226
            List<JDBCStoreParameters> tables = null;
227
            if(helper == null){
228
                this.setValue(tables);
229
                return;
230
            }
227 231
            OperationsFactory operations = helper.getOperations();
228 232
            if (operations == null) {
229 233
                this.setValue(null);
......
240 244
            }
241 245
            this.setValue(tables);
242 246
        }
247
        
248
        public JDBCHelper getHelper(){
249
            return this.helper;
250
        }
251
        
252
        public void dispose() {
253
            this.helper = null;
254
        }
243 255
    }
244 256

  
245 257
    public JDBCServerExplorerBase(
......
431 443

  
432 444
    @Override
433 445
    protected void doDispose() throws BaseException {
434
        helper.dispose();
435
        helper = null;
446
        synchronized (CACHED_TABLES) {
447
            List<String> toRemove = new ArrayList<>();
448
            for (Map.Entry<String, CachedValue<List<JDBCStoreParameters>>> entry : CACHED_TABLES.entrySet()) {
449
                CachedTablesValue value = (CachedTablesValue) entry.getValue();
450
                if (value.getHelper() == this.helper) {
451
                    toRemove.add(entry.getKey());
452
                    value.dispose();
453
                }
454
            }
455
            for (String key : toRemove) {
456
                CACHED_TABLES.remove(key);
457
            }
458
            helper.dispose();
459
            helper = null;
460
        }
436 461
    }
437 462

  
438 463
    @Override
......
550 575
        boolean informationTables = BooleanUtils.isTrue(
551 576
                this.getParameters().getShowInformationDBTables()
552 577
        );
553
        CACHED_TABLES.remove(buildKeyForCachedTables(MODE_ALL, this.getParameters(), informationTables));
554
        CACHED_TABLES.remove(buildKeyForCachedTables(MODE_FEATURE, this.getParameters(), informationTables));
555
        CACHED_TABLES.remove(buildKeyForCachedTables(MODE_GEOMETRY, this.getParameters(), informationTables));
578
        synchronized(CACHED_TABLES){
579
            CACHED_TABLES.remove(buildKeyForCachedTables(MODE_ALL, this.getParameters(), informationTables));
580
            CACHED_TABLES.remove(buildKeyForCachedTables(MODE_FEATURE, this.getParameters(), informationTables));
581
            CACHED_TABLES.remove(buildKeyForCachedTables(MODE_GEOMETRY, this.getParameters(), informationTables));
582
        }
556 583
    }
557 584

  
558 585
    @Override
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCStoreProviderBase.java
24 24
package org.gvsig.fmap.dal.store.jdbc2.spi;
25 25

  
26 26
import java.text.MessageFormat;
27
import org.gvsig.fmap.dal.store.jdbc2.JDBCStoreProvider;
28 27
import java.util.Arrays;
29 28
import java.util.Collections;
30 29
import java.util.Iterator;
......
65 64
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
66 65
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
67 66
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
67
import org.gvsig.fmap.dal.store.jdbc2.JDBCStoreProvider;
68 68
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
69 69
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
70 70
import org.gvsig.fmap.dal.store.jdbc2.ResulSetControler;
......
92 92
        extends AbstractFeatureStoreProvider
93 93
        implements ResourceConsumer, JDBCStoreProvider {
94 94

  
95
    final static private Logger LOGGER = LoggerFactory.getLogger(JDBCStoreProviderBase.class);
95
    final static protected Logger LOGGER = LoggerFactory.getLogger(JDBCStoreProviderBase.class);
96 96

  
97 97
    public class CountValue implements CalculatedValue<Long> {
98 98
        
......
527 527
        List<FeatureType> types = Collections.singletonList(defaultType);
528 528
        this.getStoreServices().setFeatureTypes(types, defaultType);
529 529
    }
530
    
530

  
531 531
    @Override
532 532
    protected FeatureProvider internalGetFeatureProviderByReference(
533 533
            FeatureReferenceProviderServices reference, 
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureStore.java
91 91
import org.gvsig.fmap.dal.feature.FeatureType;
92 92
import org.gvsig.fmap.dal.feature.FeatureType.FeatureTypeChanged;
93 93
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
94
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
95 94
import org.gvsig.fmap.dal.feature.exception.AlreadyEditingException;
96 95
import org.gvsig.fmap.dal.feature.exception.ConcurrentDataModificationException;
97 96
import org.gvsig.fmap.dal.feature.exception.CreateFeatureException;
......
320 319
        this.metadataChildren = new HashSet();
321 320
        this.metadataChildren.add(provider);
322 321
        loadDALFile();
323
        
322

  
324 323
        // Habria que crear un metodo en el proveedor para que de prioidad
325 324
        // a los parametros frente a lo que se a leido en el fichero dal
326 325
        // DataStoreProvider arreglalo segun los parametros del usuario
......
341 340
            LOGGER.warn("Can't patch DAL file",th);
342 341
        }
343 342
    }
344

  
343
        
345 344
    @Override
346 345
    public DataStoreParameters getParameters() {
347 346
        if( this.parameters==null ) {
trunk/org.gvsig.desktop/pom.xml
2814 2814

  
2815 2815
        <jython.artifactId>jython-standalone</jython.artifactId>
2816 2816
        <!-- External project versions -->
2817
        <gvsig.tools.version>3.0.279</gvsig.tools.version>
2817
        <gvsig.tools.version>3.0.280-SNAPSHOT</gvsig.tools.version>
2818 2818
        <gvsig.proj.version>1.0.31</gvsig.proj.version>
2819 2819
        <gvsig.projection.api.version>2.0.56</gvsig.projection.api.version>
2820 2820
    </properties>

Also available in: Unified diff