svn commit: r1828795 - in /sis/branches/JDK8/core: sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java sis-referencing/src/main/java/org/apache/sis/referencing/operation/projec
Author: desruisseaux Date: Tue Apr 10 08:08:31 2018 New Revision: 1828795 URL: http://svn.apache.org/viewvc?rev=1828795&view=rev Log: Replace the use of Java2D by SIS matrix. Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java?rev=1828795&r1=1828794&r2=1828795&view=diff == --- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java [UTF-8] Tue Apr 10 08:08:31 2018 @@ -51,6 +51,7 @@ import org.apache.sis.metadata.iso.maint import org.apache.sis.metadata.iso.spatial.*; import org.apache.sis.util.iso.DefaultRecordSchema; import org.apache.sis.util.iso.SimpleInternationalString; +import org.apache.sis.util.iso.DefaultInternationalString; import org.apache.sis.util.logging.WarningListener; import org.apache.sis.measure.Units; import org.apache.sis.xml.XML; @@ -68,6 +69,7 @@ import static org.junit.Assert.*; * This class is used to test the ISO 19115-3 metadata standard implementation. * * @author Cullen Rombach (Image Matters) + * @author Martin Desruisseaux (Geomatys) * @version 1.0 * * @see https://issues.apache.org/jira/browse/SIS-400";>SIS-400 @@ -110,81 +112,141 @@ public final class MarshallingTest exten @SuppressWarnings("deprecation") private DefaultMetadata metadata() throws URISyntaxException { /* + * Metadata + * ├─Metadata identifier…… dummy-metadata + * │ └─Code space……… sis.test + * ├─Parent metadata…… A parent metadata + * │ └─Identifier……… dummy-parent-metadata + * │ └─Code space……… sis.test + * ├─Language (1 de 2) English + * ├─Language (2 de 2) French (Canada) + * ├─Character set ISO-8859-1 + * └─Metadata scope + * ├─Resource scope……… Dataset + * └─Name… Metadata for an (imaginary) data set + * * Some code are indented for readability and more local variable scopes. */ final DefaultMetadata md = new DefaultMetadata(); { // Metadata identifier -final DefaultIdentifier id = new DefaultIdentifier("fileIdentifier"); -id.setCodeSpace("fileIdentifierNamespace"); +final DefaultIdentifier id = new DefaultIdentifier("dummy-metadata"); +id.setCodeSpace("sis.test"); md.setMetadataIdentifier(id); } -// Languages -final Collection languages = Arrays.asList(Locale.US, Locale.GERMANY); +// Languages — one language only, and one (country, language) tupple. +final Collection languages = Arrays.asList(Locale.ENGLISH, Locale.CANADA_FRENCH); md.setLanguages(languages); // Character Sets (character encoding) -final Collection charSets = Collections.singleton(StandardCharsets.UTF_8); +final Collection charSets = Collections.singleton(StandardCharsets.ISO_8859_1); md.setCharacterSets(charSets); { // Parent metadata -final DefaultCitation parent = new DefaultCitation("parentMetadata"); -final DefaultIdentifier parentId = new DefaultIdentifier("parentMetadata"); -parentId.setCodeSpace("parentMetadataCodeSpace"); +final DefaultCitation parent = new DefaultCitation("A parent metadata"); +final DefaultIdentifier parentId = new DefaultIdentifier("dummy-parent-metadata"); +parentId.setCodeSpace("sis.test"); parent.getIdentifiers().add(parentId); md.setParentMetadata(parent); } // mdb:metadataScope (hierarchyLevel and hierarchyLevelName in legacy ISO 19115:2003 model) -md.getMetadataScopes().add(new DefaultMetadataScope(ScopeCode.DATASET, "hierarchyLevelName")); +md.getMetadataScopes().add(new DefaultMetadataScope(ScopeCode.DATASET, "Metadata for an (imaginary) data set")); final DefaultOnlineResource onlineResource; { -// Contact information for the parties. +/* + * Contact information for the parties. + * + * Organisation… Plato Republic + * ├─Contact info + * │ ├─Phone (1 de 2) + * │ │ ├─Number……… 555-444- +
svn commit: r1828796 - /sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java
Author: desruisseaux Date: Tue Apr 10 08:18:15 2018 New Revision: 1828796 URL: http://svn.apache.org/viewvc?rev=1828796&view=rev Log: The γc=0 case do not happen in practice. If it still happen, the generic case is sufficient. Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java?rev=1828796&r1=1828795&r2=1828796&view=diff == --- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java [UTF-8] Tue Apr 10 08:18:15 2018 @@ -243,12 +243,10 @@ public class ObliqueMercator extends Con */ getContextualParameters().getMatrix(MatrixRole.NORMALIZATION).convertAfter(0, null, -λ0); final MatrixSIS denormalize = getContextualParameters().getMatrix(MatrixRole.DENORMALIZATION); -if (γc != 0) { -final Matrix3 rotation = new Matrix3(); -rotation.m00 = rotation.m11 = cos(γc); -rotation.m10 = -(rotation.m01 = sin(γc)); -denormalize.setMatrix(denormalize.multiply(rotation)); -} +final Matrix3 rotation = new Matrix3(); +rotation.m00 = rotation.m11 = cos(γc); +rotation.m10 = -(rotation.m01 = sin(γc)); +denormalize.setMatrix(denormalize.multiply(rotation)); /* * For variant B only, an additional (uc, vc) translation is applied here. * Note that the general form of uc works even in αc = 90° special case,
svn commit: r1828799 [1/3] - in /sis/branches/JDK8: ide-project/NetBeans/nbproject/ storage/sis-sql/src/main/java/org/apache/sis/internal/ storage/sis-sql/src/main/java/org/apache/sis/internal/sql/ st
Author: jsorel Date: Tue Apr 10 08:52:43 2018 New Revision: 1828799 URL: http://svn.apache.org/viewvc?rev=1828799&view=rev Log: SQL : add database metamodel classes Added: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/ColumnMetaModel.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/InsertRelation.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/MetaDataConstants.java - copied, changed from r1828730, sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/reverse/MetaDataConstants.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/PrimaryKey.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/RelationMetaModel.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/SchemaMetaModel.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/TableMetaModel.java Removed: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/reverse/ Modified: sis/branches/JDK8/ide-project/NetBeans/nbproject/build-impl.xml sis/branches/JDK8/ide-project/NetBeans/nbproject/genfiles.properties sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/dialect/SQLDialect.java
svn commit: r1828799 [3/3] - in /sis/branches/JDK8: ide-project/NetBeans/nbproject/ storage/sis-sql/src/main/java/org/apache/sis/internal/ storage/sis-sql/src/main/java/org/apache/sis/internal/sql/ st
Modified: sis/branches/JDK8/ide-project/NetBeans/nbproject/genfiles.properties URL: http://svn.apache.org/viewvc/sis/branches/JDK8/ide-project/NetBeans/nbproject/genfiles.properties?rev=1828799&r1=1828798&r2=1828799&view=diff == --- sis/branches/JDK8/ide-project/NetBeans/nbproject/genfiles.properties [ISO-8859-1] (original) +++ sis/branches/JDK8/ide-project/NetBeans/nbproject/genfiles.properties [ISO-8859-1] Tue Apr 10 08:52:43 2018 @@ -3,6 +3,6 @@ build.xml.data.CRC32=58e6b21c build.xml.script.CRC32=462eaba0 build.xml.stylesheet.CRC32=28e38971@1.53.1.46 -nbproject/build-impl.xml.data.CRC32=85a3ca8b -nbproject/build-impl.xml.script.CRC32=9a596b34 -nbproject/build-impl.xml.stylesheet.CRC32=3a2fa800@1.88.0.48 +nbproject/build-impl.xml.data.CRC32=d50e046a +nbproject/build-impl.xml.script.CRC32=d523edae +nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 Added: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java?rev=1828799&view=auto == --- sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java (added) +++ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java Tue Apr 10 08:52:43 2018 @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.sis.internal.sql; + +import java.util.Iterator; + +/** + * For internal use of SQL store. + * + * @author Johann Sorel (Geomatys) + * @version 1.0 + * @since 1.0 + * @module + */ +public final class SQLUtilities { + +private SQLUtilities(){ +} + +/** + * Returns a graphical representation of the specified objects. This representation can be + * printed to the {@linkplain System#out standard output stream} (for example) if it uses + * a monospaced font and supports unicode. + * + * @param root The root name of the tree to format. + * @param objects The objects to format as root children. + * @return A string representation of the tree. + */ +public static String toStringTree(String root, final Iterable objects) { +final StringBuilder sb = new StringBuilder(); +if (root != null) { +sb.append(root); +} +if (objects != null) { +final Iterator ite = objects.iterator(); +while (ite.hasNext()) { +sb.append('\n'); +final Object next = ite.next(); +final boolean last = !ite.hasNext(); +sb.append(last ? "ââ " : "ââ "); + +final String[] parts = String.valueOf(next).split("\n"); +sb.append(parts[0]); +for (int k=1;khttp://svn.apache.org/viewvc/sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java?rev=1828799&view=auto == --- sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java (added) +++ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java Tue Apr 10 08:52:43 2018 @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language
svn commit: r1828799 [2/3] - in /sis/branches/JDK8: ide-project/NetBeans/nbproject/ storage/sis-sql/src/main/java/org/apache/sis/internal/ storage/sis-sql/src/main/java/org/apache/sis/internal/sql/ st
Modified: sis/branches/JDK8/ide-project/NetBeans/nbproject/build-impl.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/ide-project/NetBeans/nbproject/build-impl.xml?rev=1828799&r1=1828798&r2=1828799&view=diff == --- sis/branches/JDK8/ide-project/NetBeans/nbproject/build-impl.xml (original) +++ sis/branches/JDK8/ide-project/NetBeans/nbproject/build-impl.xml Tue Apr 10 08:52:43 2018 @@ -19,7 +19,7 @@ is divided into following sections: - cleanup --> -http://www.netbeans.org/ns/j2se-project/1"; xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3"; xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc"; xmlns:unless="ant:unless" basedir=".." default="default" name="Apache_SIS_for_JDK8-impl"> +http://www.netbeans.org/ns/j2se-project/1"; xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3"; xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc"; basedir=".." default="default" name="Apache_SIS_for_JDK8-impl"> @@ -53,72 +53,7 @@ is divided into following sections: - - - - - - - - -http://www.netbeans.org/ns/j2se-project/3";> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -141,9 +76,7 @@ is divided into following sections: - - - + @@ -161,9 +94,6 @@ is divided into following sections: - - - @@ -195,15 +125,16 @@ is divided into following sections: + + - @@ -218,15 +149,16 @@ is divided into following sections: + + - @@ -340,15 +272,16 @@ is divided into following sections: Must set src.webapp.dir Must set src.javafx.dir Must set src.console.dir +Must set src.portrayal.dir Must set src.earth-obs.dir Must set src.geotiff.dir Must set src.netcdf.dir Must set src.shapefile.dir +Must set src.sql.dir Must set src.xmlstore.dir Must set src.storage.dir Must set src.feature.dir Must set src.raster.dir -Must set src.portrayal.dir Must set src.referencing.dir Must set src.ref-by-id.dir Must set src.metadata.dir @@ -359,15 +292,16 @@ is divided into following sections: Must set test.webapp.dir Must set test.javafx.dir Must set test.console.dir +Must set test.portrayal.dir Must set test.earth-obs.dir Must set test.geotiff.dir Must set test.netcdf.dir Must set test.shapefile.dir +Must set test.sql.dir Must set test.xmlstore.dir Must set test.storage.dir Must set test.feature.dir Must set test.raster.dir -Must set test.portrayal.dir Must set test.referencing.dir Must set test.ref-by-id.dir Must set test.metadata.dir @@ -392,80 +326,11 @@ is divided into following sections: - + http://www.netbeans.org/ns/j2se-project/3";> - + - - - - - - - - -
svn commit: r1828802 - in /sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql: ./ reverse/
Author: desruisseaux Date: Tue Apr 10 10:22:54 2018 New Revision: 1828802 URL: http://svn.apache.org/viewvc?rev=1828802&view=rev Log: Set SVN properties. Modified: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/ColumnMetaModel.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/InsertRelation.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/MetaDataConstants.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/PrimaryKey.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/RelationMetaModel.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/SchemaMetaModel.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/TableMetaModel.java (props changed) Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SQLUtilities.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/ColumnMetaModel.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/ColumnMetaModel.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/InsertRelation.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/InsertRelation.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/MetaDataConstants.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/MetaDataConstants.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/PrimaryKey.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/PrimaryKey.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/RelationMetaModel.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/RelationMetaModel.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/SchemaMetaModel.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/SchemaMetaModel.java -- svn:mime-
svn commit: r1828812 - in /sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis: internal/sql/ internal/sql/reverse/ sql/ sql/dialect/
Author: jsorel Date: Tue Apr 10 12:47:48 2018 New Revision: 1828812 URL: http://svn.apache.org/viewvc?rev=1828812&view=rev Log: SQL : first version of database reverse engineering logic Added: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/AbstractSQLProvider.java Modified: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/CachedResultSet.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/ColumnMetaModel.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/AbstractSQLStore.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/dialect/SQLDialect.java Added: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java?rev=1828812&view=auto == --- sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java (added) +++ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java Tue Apr 10 12:47:48 2018 @@ -0,0 +1,216 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.sis.internal.sql; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.sis.feature.DefaultAttributeType; +import static org.apache.sis.feature.AbstractIdentifiedType.*; +import org.opengis.feature.AttributeType; +import org.opengis.referencing.crs.CoordinateReferenceSystem; +import org.opengis.util.GenericName; +import org.apache.sis.internal.feature.AttributeConvention; +import org.apache.sis.internal.system.DefaultFactories; +import org.opengis.util.NameFactory; + +/** + * + * @author Johann Sorel (Geomatys) + * @version 1.0 + * @since 1.0 + * @module + */ +public class SingleAttributeTypeBuilder { + +private final Map parameters = new HashMap<>(); +private final List> atts = new ArrayList<>(); +private Class valueClass; +private int minimumOccurs; +private int maximumOccurs; +private Object defaultValue; + +public SingleAttributeTypeBuilder() { +minimumOccurs = 1; +maximumOccurs = 1; +} + +public SingleAttributeTypeBuilder reset(){ +parameters.clear(); +atts.clear(); +valueClass = null; +minimumOccurs = 1; +maximumOccurs = 1; +defaultValue = null; +return this; +} + +public SingleAttributeTypeBuilder copy(AttributeType base){ +setName(base.getName()); +setDefinition(base.getDefinition()); +setDescription(base.getDescription()); +setDesignation(base.getDesignation()); +atts.addAll(base.characteristics().values()); +valueClass = base.getValueClass(); +minimumOccurs = base.getMinimumOccurs(); +maximumOccurs = base.getMaximumOccurs(); +defaultValue = base.getDefaultValue(); +return this; +} + +public SingleAttributeTypeBuilder setName(String localPart){ +this.setName(null,localPart); +return this; +} + +public SingleAttributeTypeBuilder setName(String namespace, String localPart){ +final GenericName name; +if (namespace == null || namespace.isEmpty()) { +name = DefaultFactories.forBuildin(NameFactory.class).createGenericName(null, localPart); +} else { +name = DefaultFactories.forBuildin(NameFactory.class).createGenericName(null, namespace, localPart); +} +setName(name); +return this; +} + +public SingleAttributeTypeBuilder setName(GenericName name) { +parameters.put(DefaultAttributeType.NAME_KEY,
[jira] [Assigned] (SIS-400) Complete MarshallingTest and add UnmarshallingTest
[ https://issues.apache.org/jira/browse/SIS-400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux reassigned SIS-400: --- Assignee: Martin Desruisseaux > Complete MarshallingTest and add UnmarshallingTest > -- > > Key: SIS-400 > URL: https://issues.apache.org/jira/browse/SIS-400 > Project: Spatial Information Systems > Issue Type: Sub-task > Components: Metadata >Affects Versions: 1.0 >Reporter: Martin Desruisseaux >Assignee: Martin Desruisseaux >Priority: Major > > {{org.apache.sis.metadata.iso.MarshallingTest}} merely tests that marshalling > a {{DefaultMetadata}} does not produce an exception. We need to improve the > tests by comparing with expected documents in both legacy ISO 19139:2007 and > new ISO 19115-3:2016 format. The XML documents produced by ImageMatters can > be used as a starting point. > Conversely, the {{UnmarshallingTest}} class on ImageMatters repository should > be adapted and included in the test suite. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
svn commit: r1828820 - in /sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis: internal/sql/SingleAttributeTypeBuilder.java internal/sql/reverse/DataBaseModel.java sql/AbstractSQLProvider.
Author: desruisseaux Date: Tue Apr 10 13:57:26 2018 New Revision: 1828820 URL: http://svn.apache.org/viewvc?rev=1828820&view=rev Log: Fix SVN properties. Modified: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/AbstractSQLProvider.java (props changed) Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/SingleAttributeTypeBuilder.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/AbstractSQLProvider.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/AbstractSQLProvider.java -- svn:mime-type = text/plain;charset=UTF-8
svn commit: r1828821 - /sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java
Author: desruisseaux Date: Tue Apr 10 14:00:35 2018 New Revision: 1828821 URL: http://svn.apache.org/viewvc?rev=1828821&view=rev Log: Set dummy values in the metadata tests. Actually this complete the modifications accidentally committed earlier today. Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java?rev=1828821&r1=1828820&r2=1828821&view=diff == --- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/MarshallingTest.java [UTF-8] Tue Apr 10 14:00:35 2018 @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.Collections; import java.util.LinkedHashMap; import java.util.logging.LogRecord; +import java.util.MissingResourceException; import java.net.URI; import java.net.URISyntaxException; import java.io.StringWriter; @@ -59,6 +60,7 @@ import org.apache.sis.xml.MarshallerPool import org.apache.sis.internal.jaxb.gcx.Anchor; import org.apache.sis.internal.jaxb.metadata.replace.ReferenceSystemMetadata; import org.apache.sis.test.XMLTestCase; +import org.apache.sis.util.iso.Names; import org.junit.Test; import static org.junit.Assert.*; @@ -94,6 +96,11 @@ public final class MarshallingTest exten private final StringWriter output; /** + * {@code true} if marshalling legacy XML instead than latest schema. + */ +private boolean legacyXML; + +/** * Initializes a new test case. * * @throws JAXBException if an error occurred while preparing the marshaller. @@ -110,28 +117,28 @@ public final class MarshallingTest exten * Creates a metadata object to marshal. */ @SuppressWarnings("deprecation") -private DefaultMetadata metadata() throws URISyntaxException { +private static DefaultMetadata metadata() throws URISyntaxException { /* * Metadata - * ├─Metadata identifier…… dummy-metadata - * │ └─Code space……… sis.test + * ├─Metadata identifier…… a-metadata-identifier + * │ └─Code space……… md.id.ns * ├─Parent metadata…… A parent metadata - * │ └─Identifier……… dummy-parent-metadata - * │ └─Code space……… sis.test + * │ └─Identifier……… a-parent-identifier + * │ └─Code space……… pmd.id.ns * ├─Language (1 de 2) English * ├─Language (2 de 2) French (Canada) * ├─Character set ISO-8859-1 * └─Metadata scope * ├─Resource scope……… Dataset - * └─Name… Metadata for an (imaginary) data set + * └─Name… Metadata for an imaginary data set * * Some code are indented for readability and more local variable scopes. */ final DefaultMetadata md = new DefaultMetadata(); { // Metadata identifier -final DefaultIdentifier id = new DefaultIdentifier("dummy-metadata"); -id.setCodeSpace("sis.test"); +final DefaultIdentifier id = new DefaultIdentifier("a-metadata-identifier"); +id.setCodeSpace("md.id.ns"); md.setMetadataIdentifier(id); } // Languages — one language only, and one (country, language) tupple. @@ -144,13 +151,13 @@ public final class MarshallingTest exten { // Parent metadata final DefaultCitation parent = new DefaultCitation("A parent metadata"); -final DefaultIdentifier parentId = new DefaultIdentifier("dummy-parent-metadata"); -parentId.setCodeSpace("sis.test"); +final DefaultIdentifier parentId = new DefaultIdentifier("a-parent-identifier"); +parentId.setCodeSpace("pmd.id.ns"); parent.getIdentifiers().add(parentId); md.setParentMetadata(parent); } // mdb:metadataScope (hierarchyLevel and hierarchyLevelName in legacy ISO 19115:2003 model) -md.getMetadataScopes().add(new DefaultMetadataScope(ScopeCode.DATASET, "Metadata for an (imaginary) data set")); +md.getMetadataScopes().add(new DefaultMetadataScope(ScopeCode.DATASET, "Metadata for an imaginary data set")); final DefaultOnlineResource onlineResource; { /* @@ -165,22 +172,22 @@ public final class MarshallingTest exten * │ │ ├─Number……… 555-555- * │ │ └─Number type…… Facsimile * │ ├─Add
svn commit: r1828826 - in /sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis: internal/sql/reverse/ sql/ sql/postgres/
Author: jsorel Date: Tue Apr 10 15:20:09 2018 New Revision: 1828826 URL: http://svn.apache.org/viewvc?rev=1828826&view=rev Log: SQL : add SQLQuery, prepare query feature set, start postgres implementation Added: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQuery.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQueryFeatureSet.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresDialect.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresProvider.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresStore.java Modified: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/AbstractSQLStore.java Modified: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java?rev=1828826&r1=1828825&r2=1828826&view=diff == --- sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java [UTF-8] (original) +++ sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/internal/sql/reverse/DataBaseModel.java [UTF-8] Tue Apr 10 15:20:09 2018 @@ -34,6 +34,7 @@ import java.util.Objects; import java.util.Set; import java.util.function.Predicate; import java.util.logging.Level; +import java.util.logging.Logger; import org.apache.sis.feature.builder.AttributeRole; import org.apache.sis.feature.builder.AttributeTypeBuilder; import org.apache.sis.feature.builder.FeatureTypeBuilder; @@ -86,12 +87,15 @@ public final class DataBaseModel { } private final AbstractSQLStore store; +private final Logger logger; +private final String databaseSchema; +private final String databaseTable; + private FeatureNaming pkIndex = new FeatureNaming<>(); private Set typeNames = new HashSet<>(); private FeatureNaming typeIndex = new FeatureNaming<>(); private Map schemas; private Set nameCache; -private final boolean simpleTypes; //various cache while analyzing model private DatabaseMetaData metadata; @@ -107,13 +111,11 @@ public final class DataBaseModel { private Set requieredSchemas; -public DataBaseModel(final AbstractSQLStore store, final boolean simpleTypes){ +public DataBaseModel(final AbstractSQLStore store, Logger logger, String schema, String table){ this.store = store; -this.simpleTypes = simpleTypes; -} - -public boolean isSimpleTypes() { -return simpleTypes; +this.logger = logger; +this.databaseSchema = schema; +this.databaseTable = table; } public Collection getSchemaMetaModels() throws DataStoreException { @@ -186,7 +188,6 @@ public final class DataBaseModel { clearCache(); schemas = new HashMap<>(); final SQLDialect dialect = store.getDialect(); -final String databaseSchema = store.getDatabaseSchema(); visitedSchemas = new HashSet<>(); requieredSchemas = new HashSet<>(); @@ -313,7 +314,7 @@ public final class DataBaseModel { //build indexes- -final String baseSchemaName = store.getDatabaseSchema(); +final String baseSchemaName = databaseSchema; final Collection candidates; if (baseSchemaName == null) { @@ -327,12 +328,7 @@ public final class DataBaseModel { if (schema != null) { for (TableMetaModel table : schema.tables.values()) { -final FeatureTypeBuilder ft; -if (simpleTypes) { -ft = table.getType(TableMetaModel.View.SIMPLE_FEATURE_TYPE); -} else { -ft = table.getType(TableMetaModel.View.COMPLEX_FEATURE_TYPE); -} +final FeatureTypeBuilder ft = table.getType(TableMetaModel.View.SIMPLE_FEATURE_TYPE); final GenericName name = ft.getName(); pkIndex.add(store, name, table.key); if (table.isSubType()) { @@ -352,7 +348,6 @@ public final class DataBaseModel { private SchemaMetaModel analyzeSchema(final String schemaName, final Connection cx) throws DataStoreException { final SchemaMetaModel schema = new SchemaMetaModel(schemaName); -final String databaseTable = store.getDatabaseTable(); try { for (Map info : cacheTables.records()) { @@ -409,7 +404,7
svn commit: r1828828 - in /sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql: SQLQuery.java SQLQueryFeatureSet.java postgres/PostgresDialect.java postgres/PostgresProvider.java postgr
Author: desruisseaux Date: Tue Apr 10 15:40:05 2018 New Revision: 1828828 URL: http://svn.apache.org/viewvc?rev=1828828&view=rev Log: Fix SVN properties. Modified: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQuery.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQueryFeatureSet.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresDialect.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresProvider.java (props changed) sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresStore.java (props changed) Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQuery.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQuery.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQueryFeatureSet.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/SQLQueryFeatureSet.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresDialect.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresDialect.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresProvider.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresProvider.java -- svn:mime-type = text/plain;charset=UTF-8 Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresStore.java -- svn:eol-style = native Propchange: sis/branches/JDK8/storage/sis-sql/src/main/java/org/apache/sis/sql/postgres/PostgresStore.java -- svn:mime-type = text/plain;charset=UTF-8
svn commit: r1828833 - in /sis/branches/JDK8: application/sis-console/src/test/java/org/apache/sis/console/ core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/cat/ core/sis-metadata/src/test
Author: desruisseaux Date: Tue Apr 10 16:56:47 2018 New Revision: 1828833 URL: http://svn.apache.org/viewvc?rev=1828833&view=rev Log: Regroup XML test files in same directories, one directory per XML schema version. Added: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/xml/ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/xml/TestUsingFile.java (with props) sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/Citation.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/Citation (legacy).xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/Extent.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/Extent (legacy).xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/Locales.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/internal/jaxb/lan/Locales (legacy).xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/PositionalAccuracy.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/PositionalAccuracy (legacy).xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/ProcessStep.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ProcessStep (legacy).xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2007/ServiceIdentification.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ServiceIdentification (legacy).xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/Citation.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/Citation.xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/Extent.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/Extent.xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/Locales.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/internal/jaxb/lan/Locales.xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/PositionalAccuracy.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/PositionalAccuracy.xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/ProcessStep.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ProcessStep.xml sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/xml/2016/ServiceIdentification.xml - copied unchanged from r1828832, sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ServiceIdentification.xml Removed: sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/internal/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/ Modified: sis/branches/JDK8/application/sis-console/src/test/java/org/apache/sis/console/MimeTypeCommandTest.java sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/cat/EnumAdapterTest.java sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/LanguageCodeTest.java sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/PT_LocaleTest.java sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation