Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4CCA2181D9 for ; Thu, 26 Nov 2015 13:13:45 +0000 (UTC) Received: (qmail 11230 invoked by uid 500); 26 Nov 2015 13:13:45 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 11110 invoked by uid 500); 26 Nov 2015 13:13:45 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 10241 invoked by uid 99); 26 Nov 2015 13:13:44 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Nov 2015 13:13:44 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3EC84E2C53; Thu, 26 Nov 2015 13:13:44 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: yzhdanov@apache.org To: commits@ignite.apache.org Date: Thu, 26 Nov 2015 13:14:02 -0000 Message-Id: <36cf533dd3fd435993db3e2452f3b51a@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [20/43] ignite git commit: IGNITE-1990 Added missing classed to classnames-jdk.properties. IGNITE-1990 Added missing classed to classnames-jdk.properties. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3c42da8b Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3c42da8b Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3c42da8b Branch: refs/heads/ignite-1.5-cache-get-opts Commit: 3c42da8b08973fab850a5ebc48b71915ce02f992 Parents: 97270bf Author: AKuznetsov Authored: Thu Nov 26 07:21:18 2015 +0700 Committer: AKuznetsov Committed: Thu Nov 26 07:21:18 2015 +0700 ---------------------------------------------------------------------- .../visor/cache/VisorCacheConfiguration.java | 4 +- .../cache/VisorCacheTypeFieldMetadata.java | 30 ++++- .../visor/cache/VisorCacheTypeMetadata.java | 133 +++++++++++++++++-- .../META-INF/classnames-jdk.properties | 2 + 4 files changed, 152 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/3c42da8b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheConfiguration.java index 073ad22..69eb311 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheConfiguration.java @@ -138,7 +138,7 @@ public class VisorCacheConfiguration implements Serializable { maxConcurrentAsyncOps = ccfg.getMaxConcurrentAsyncOperations(); memoryMode = ccfg.getMemoryMode(); interceptor = compactClass(ccfg.getInterceptor()); - typeMeta = VisorCacheTypeMetadata.list(ccfg.getTypeMetadata()); + typeMeta = VisorCacheTypeMetadata.list(ccfg.getQueryEntities(), ccfg.getCacheStoreFactory(), ccfg.getTypeMetadata()); statisticsEnabled = ccfg.isStatisticsEnabled(); mgmtEnabled = ccfg.isManagementEnabled(); ldrFactory = compactClass(ccfg.getCacheLoaderFactory()); @@ -350,4 +350,4 @@ public class VisorCacheConfiguration implements Serializable { @Override public String toString() { return S.toString(VisorCacheConfiguration.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/3c42da8b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java index c21354b..323e536 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java @@ -45,14 +45,30 @@ public class VisorCacheTypeFieldMetadata implements Serializable { * @return Data transfer object for given cache field metadata. */ public static VisorCacheTypeFieldMetadata from(CacheTypeFieldMetadata f) { - VisorCacheTypeFieldMetadata fieldMetadata = new VisorCacheTypeFieldMetadata(); + return new VisorCacheTypeFieldMetadata(f.getDatabaseName(), f.getDatabaseType(), + f.getJavaName(), U.compact(f.getJavaType().getName())); + } - fieldMetadata.dbName = f.getDatabaseName(); - fieldMetadata.dbType = f.getDatabaseType(); - fieldMetadata.javaName = f.getJavaName(); - fieldMetadata.javaType = U.compact(f.getJavaType().getName()); + /** + * Empty constructor. + */ + public VisorCacheTypeFieldMetadata() { + // No-op. + } - return fieldMetadata; + /** + * Full constructor. + * + * @param dbName Column name in database. + * @param dbType Column JDBC type in database. + * @param javaName Field name in java object. + * @param javaType Corresponding java type. + */ + public VisorCacheTypeFieldMetadata(String dbName, int dbType, String javaName, String javaType) { + this.dbName = dbName; + this.dbType = dbType; + this.javaName = javaName; + this.javaType = javaType; } /** @@ -82,4 +98,4 @@ public class VisorCacheTypeFieldMetadata implements Serializable { public String javaType() { return javaType; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/3c42da8b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java index 2a00ec1..ec7a114 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java @@ -25,10 +25,17 @@ import java.util.LinkedHashMap; import java.util.Map; import org.apache.ignite.cache.CacheTypeFieldMetadata; import org.apache.ignite.cache.CacheTypeMetadata; +import org.apache.ignite.cache.QueryEntity; +import org.apache.ignite.cache.QueryIndex; +import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory; +import org.apache.ignite.cache.store.jdbc.JdbcType; +import org.apache.ignite.cache.store.jdbc.JdbcTypeField; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; +import javax.cache.configuration.Factory; + /** * Data transfer object for {@link CacheTypeMetadata}. */ @@ -77,19 +84,129 @@ public class VisorCacheTypeMetadata implements Serializable { private Map>> grps; /** + * @param qryEntities Collection of query entities. + * @param factory Store factory to extract JDBC types info. * @param types Cache types metadata configurations. * @return Data transfer object for cache type metadata configurations. */ - public static Collection list(Collection types) { - if (types == null) - return Collections.emptyList(); + public static Collection list(Collection qryEntities, Factory factory, + Collection types) { + final Collection metas = new ArrayList<>(); + + Map metaMap = + U.newHashMap(qryEntities != null ? qryEntities.size() : 0); + + // Add query entries. + if (qryEntities != null) + for (QueryEntity qryEntity : qryEntities) { + VisorCacheTypeMetadata meta = from(qryEntity); + + metas.add(meta); + + metaMap.put(meta.keyType, meta); + } + + // Add JDBC types. + if (factory != null && factory instanceof CacheJdbcPojoStoreFactory) { + CacheJdbcPojoStoreFactory jdbcFactory = (CacheJdbcPojoStoreFactory) factory; + + for (JdbcType jdbcType : jdbcFactory.getTypes()) { + VisorCacheTypeMetadata meta = metaMap.get(jdbcType.getKeyType()); + + boolean notFound = meta == null; + + if (notFound) { + meta = new VisorCacheTypeMetadata(); + + meta.keyType = jdbcType.getKeyType(); + meta.valType = jdbcType.getValueType(); + + meta.qryFlds = Collections.emptyMap(); + meta.ascFlds = Collections.emptyMap(); + meta.descFlds = Collections.emptyMap(); + meta.txtFlds = Collections.emptyList(); + meta.grps = Collections.emptyMap(); + } - final Collection cfgs = new ArrayList<>(types.size()); + meta.dbSchema = jdbcType.getDatabaseSchema(); + meta.dbTbl = jdbcType.getDatabaseTable(); - for (CacheTypeMetadata type : types) - cfgs.add(from(type)); + JdbcTypeField[] keyFields = jdbcType.getKeyFields(); + + meta.keyFields = new ArrayList<>(keyFields.length); + + for (JdbcTypeField fld : keyFields) + meta.keyFields.add(new VisorCacheTypeFieldMetadata( + fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), + fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); + + JdbcTypeField[] valFields = jdbcType.getValueFields(); + + meta.valFields = new ArrayList<>(valFields.length); + + for (JdbcTypeField fld : valFields) + meta.valFields.add(new VisorCacheTypeFieldMetadata( + fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), + fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); + + if (notFound) + metas.add(meta); + } + } + + // Add old deprecated CacheTypeMetadata for compatibility. + if (types != null) + for (CacheTypeMetadata type : types) + metas.add(from(type)); + + return metas; + } - return cfgs; + /** + * @param q Actual cache query entities. + * @return Data transfer object for given cache type metadata. + */ + public static VisorCacheTypeMetadata from(QueryEntity q) { + assert q != null; + + VisorCacheTypeMetadata metadata = new VisorCacheTypeMetadata(); + + metadata.keyType = q.getKeyType(); + metadata.valType = q.getValueType(); + + metadata.dbSchema = ""; + metadata.dbTbl = ""; + + metadata.keyFields = Collections.emptyList(); + metadata.valFields = Collections.emptyList(); + + LinkedHashMap qryFields = q.getFields(); + + metadata.qryFlds = new LinkedHashMap<>(qryFields); + + metadata.ascFlds = Collections.emptyMap(); + metadata.descFlds = Collections.emptyMap(); + metadata.txtFlds = Collections.emptyList(); + + Collection qryIdxs = q.getIndexes(); + + metadata.grps = new LinkedHashMap<>(qryIdxs.size()); + + for (QueryIndex qryIdx : qryIdxs) { + LinkedHashMap qryIdxFlds = qryIdx.getFields(); + + LinkedHashMap> grpFlds = new LinkedHashMap<>(); + + for (Map.Entry qryIdxFld : qryIdxFlds.entrySet()) { + String fldName = qryIdxFld.getKey(); + + grpFlds.put(fldName, new IgniteBiTuple<>(qryFields.get(fldName), !qryIdxFld.getValue())); + } + + metadata.grps.put(qryIdx.getName(), grpFlds); + } + + return metadata; } /** @@ -246,4 +363,4 @@ public class VisorCacheTypeMetadata implements Serializable { public Map>> grps() { return grps; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/3c42da8b/modules/core/src/main/resources/META-INF/classnames-jdk.properties ---------------------------------------------------------------------- diff --git a/modules/core/src/main/resources/META-INF/classnames-jdk.properties b/modules/core/src/main/resources/META-INF/classnames-jdk.properties index 4dd20b7..bc74998 100644 --- a/modules/core/src/main/resources/META-INF/classnames-jdk.properties +++ b/modules/core/src/main/resources/META-INF/classnames-jdk.properties @@ -141,6 +141,8 @@ java.lang.reflect.MalformedParameterizedTypeException java.lang.reflect.Proxy java.lang.reflect.ReflectPermission java.lang.reflect.UndeclaredThrowableException +java.math.BigDecimal +java.math.BigInteger java.net.Authenticator$RequestorType java.net.BindException java.net.ConnectException