ignite-471: merging ignite-sprint-4
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/50cb10f3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/50cb10f3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/50cb10f3 Branch: refs/heads/ignite-471 Commit: 50cb10f3c4f002f6e233d667cb1b1c185185d24b Parents: 519ffea 0c13a08 Author: Denis Magda <[email protected]> Authored: Fri May 8 12:50:05 2015 +0300 Committer: Denis Magda <[email protected]> Committed: Fri May 8 12:50:05 2015 +0300 ---------------------------------------------------------------------- DEVNOTES.txt | 4 +- assembly/release-base.xml | 2 + assembly/release-schema-import.xml | 50 ++ examples/pom.xml | 2 +- .../streaming/wordcount/CacheConfig.java | 5 - modules/aop/pom.xml | 2 +- modules/aws/pom.xml | 2 +- .../config/grid-client-config.properties | 50 +- modules/clients/pom.xml | 2 +- .../ClientPropertiesConfigurationSelfTest.java | 12 +- modules/cloud/pom.xml | 6 +- modules/codegen/pom.xml | 2 +- .../ignite/codegen/MessageCodeGenerator.java | 57 +- modules/core/pom.xml | 2 +- .../java/org/apache/ignite/IgniteCache.java | 5 + .../org/apache/ignite/IgniteJdbcDriver.java | 81 ++- .../configuration/CacheConfiguration.java | 259 +++++++-- .../configuration/IgniteConfiguration.java | 344 +++++++++--- .../ignite/internal/GridDirectCollection.java | 3 + .../ignite/internal/GridUpdateNotifier.java | 66 ++- .../ignite/internal/IgniteComponentType.java | 36 +- .../apache/ignite/internal/IgniteKernal.java | 83 ++- .../org/apache/ignite/internal/IgnitionEx.java | 15 +- .../client/GridClientConfiguration.java | 2 +- .../managers/communication/GridIoManager.java | 30 +- .../communication/GridIoMessageFactory.java | 12 +- .../managers/indexing/GridIndexingManager.java | 14 +- .../processors/cache/CacheObjectImpl.java | 2 +- .../cache/DynamicCacheDescriptor.java | 16 +- .../processors/cache/GridCacheAdapter.java | 518 +++++++++--------- .../processors/cache/GridCacheMapEntry.java | 27 +- .../GridCachePartitionExchangeManager.java | 3 + .../processors/cache/GridCacheProcessor.java | 192 ++++--- .../processors/cache/GridCacheSwapManager.java | 35 +- .../processors/cache/GridCacheTtlManager.java | 156 +++--- .../processors/cache/GridCacheUtils.java | 6 +- ...ridCacheOptimisticCheckPreparedTxFuture.java | 434 --------------- ...idCacheOptimisticCheckPreparedTxRequest.java | 232 -------- ...dCacheOptimisticCheckPreparedTxResponse.java | 179 ------- .../distributed/GridCacheTxRecoveryFuture.java | 506 ++++++++++++++++++ .../distributed/GridCacheTxRecoveryRequest.java | 261 +++++++++ .../GridCacheTxRecoveryResponse.java | 182 +++++++ .../GridDistributedTxRemoteAdapter.java | 2 +- .../distributed/dht/GridDhtLocalPartition.java | 2 +- .../dht/GridPartitionedGetFuture.java | 2 +- .../cache/query/GridCacheQueryManager.java | 18 +- .../cache/query/GridCacheSqlQuery.java | 137 ++++- .../cache/query/GridCacheTwoStepQuery.java | 25 +- .../cache/transactions/IgniteInternalTx.java | 5 +- .../cache/transactions/IgniteTxAdapter.java | 2 +- .../cache/transactions/IgniteTxHandler.java | 38 +- .../transactions/IgniteTxLocalAdapter.java | 2 +- .../cache/transactions/IgniteTxManager.java | 173 ++---- .../datastreamer/DataStreamerImpl.java | 2 + .../processors/igfs/IgfsDataManager.java | 3 + .../processors/igfs/IgfsMetaManager.java | 2 +- .../internal/processors/igfs/IgfsUtils.java | 11 +- .../processors/query/GridQueryIndexing.java | 19 +- .../processors/query/GridQueryProcessor.java | 76 ++- .../messages/GridQueryNextPageResponse.java | 68 ++- .../h2/twostep/messages/GridQueryRequest.java | 22 +- .../util/spring/IgniteSpringHelper.java | 4 +- .../internal/visor/cache/VisorCacheMetrics.java | 53 +- .../cache/VisorCacheNearConfiguration.java | 4 +- .../visor/cache/VisorCacheStartTask.java | 155 ++++++ .../internal/visor/query/VisorQueryArg.java | 14 +- .../internal/visor/query/VisorQueryJob.java | 2 + .../internal/visor/util/VisorTaskUtils.java | 10 + .../apache/ignite/lang/IgniteAsyncSupport.java | 4 +- .../org/apache/ignite/spi/IgniteSpiAdapter.java | 19 +- .../discovery/tcp/TcpClientDiscoverySpi.java | 4 - .../spi/discovery/tcp/TcpDiscoverySpi.java | 4 - .../discovery/tcp/TcpDiscoverySpiAdapter.java | 8 +- .../resources/META-INF/classnames.properties | 23 +- .../core/src/main/resources/ignite.properties | 2 +- .../internal/GridUpdateNotifierSelfTest.java | 30 +- .../processors/cache/CacheGetFromJobTest.java | 110 ++++ .../GridCacheAbstractFailoverSelfTest.java | 4 +- .../IgniteCacheEntryListenerAbstractTest.java | 4 +- ...CacheLoadingConcurrentGridStartSelfTest.java | 154 ++++++ .../GridCacheAbstractNodeRestartSelfTest.java | 94 ++-- ...GridCacheLoadingConcurrentGridStartTest.java | 154 ------ ...xOriginatingNodeFailureAbstractSelfTest.java | 2 +- .../dht/GridCacheDhtPreloadSelfTest.java | 2 +- ...rDisabledPrimaryNodeFailureRecoveryTest.java | 31 ++ ...rtitionedPrimaryNodeFailureRecoveryTest.java | 31 ++ ...woBackupsPrimaryNodeFailureRecoveryTest.java | 37 ++ ...ePrimaryNodeFailureRecoveryAbstractTest.java | 533 +++++++++++++++++++ .../GridCachePartitionedNodeRestartTest.java | 4 +- ...ePartitionedOptimisticTxNodeRestartTest.java | 4 +- .../GridCacheReplicatedNodeRestartSelfTest.java | 2 + .../IgniteCacheExpiryPolicyAbstractTest.java | 2 +- .../IgniteCacheExpiryPolicyTestSuite.java | 2 + .../expiry/IgniteCacheTtlCleanupSelfTest.java | 85 +++ .../igfs/IgfsClientCacheSelfTest.java | 132 +++++ .../processors/igfs/IgfsOneClientNodeTest.java | 133 +++++ .../processors/igfs/IgfsStreamsSelfTest.java | 2 +- .../tcp/TcpClientDiscoverySelfTest.java | 8 + .../testsuites/IgniteCacheRestartTestSuite.java | 5 +- .../ignite/testsuites/IgniteCacheTestSuite.java | 5 +- .../IgniteCacheTxRecoverySelfTestSuite.java | 4 + .../ignite/testsuites/IgniteIgfsTestSuite.java | 3 + modules/extdata/p2p/pom.xml | 2 +- modules/extdata/uri/pom.xml | 2 +- modules/gce/pom.xml | 6 +- modules/geospatial/pom.xml | 2 +- modules/hadoop/pom.xml | 2 +- modules/hibernate/pom.xml | 2 +- modules/indexing/pom.xml | 2 +- .../processors/query/h2/IgniteH2Indexing.java | 173 +++++- .../query/h2/opt/GridH2AbstractKeyValueRow.java | 92 +--- .../query/h2/opt/GridH2KeyValueRowOffheap.java | 7 +- .../query/h2/opt/GridH2KeyValueRowOnheap.java | 6 +- .../query/h2/opt/GridH2RowDescriptor.java | 14 +- .../processors/query/h2/opt/GridH2Table.java | 10 +- .../query/h2/opt/GridH2ValueCacheObject.java | 191 +++++++ .../query/h2/opt/GridLuceneIndex.java | 95 ++-- .../processors/query/h2/sql/GridSqlQuery.java | 20 + .../query/h2/sql/GridSqlQueryParser.java | 10 +- .../query/h2/sql/GridSqlQuerySplitter.java | 11 +- .../processors/query/h2/sql/GridSqlSelect.java | 2 +- .../processors/query/h2/sql/GridSqlUnion.java | 2 +- .../query/h2/twostep/GridMapQueryExecutor.java | 24 +- .../query/h2/twostep/GridMergeIndex.java | 6 +- .../h2/twostep/GridMergeIndexUnsorted.java | 4 +- .../h2/twostep/GridReduceQueryExecutor.java | 128 ++++- .../query/h2/twostep/GridResultPage.java | 80 ++- .../query/h2/twostep/msg/GridH2Array.java | 124 +++++ .../query/h2/twostep/msg/GridH2Boolean.java | 112 ++++ .../query/h2/twostep/msg/GridH2Byte.java | 113 ++++ .../query/h2/twostep/msg/GridH2Bytes.java | 113 ++++ .../query/h2/twostep/msg/GridH2CacheObject.java | 148 +++++ .../query/h2/twostep/msg/GridH2Date.java | 115 ++++ .../query/h2/twostep/msg/GridH2Decimal.java | 134 +++++ .../query/h2/twostep/msg/GridH2Double.java | 113 ++++ .../query/h2/twostep/msg/GridH2Float.java | 113 ++++ .../query/h2/twostep/msg/GridH2Geometry.java | 134 +++++ .../query/h2/twostep/msg/GridH2Integer.java | 113 ++++ .../query/h2/twostep/msg/GridH2JavaObject.java | 113 ++++ .../query/h2/twostep/msg/GridH2Long.java | 113 ++++ .../query/h2/twostep/msg/GridH2Null.java | 78 +++ .../query/h2/twostep/msg/GridH2Short.java | 113 ++++ .../query/h2/twostep/msg/GridH2String.java | 115 ++++ .../query/h2/twostep/msg/GridH2Time.java | 116 ++++ .../query/h2/twostep/msg/GridH2Timestamp.java | 133 +++++ .../query/h2/twostep/msg/GridH2Uuid.java | 133 +++++ .../h2/twostep/msg/GridH2ValueMessage.java | 49 ++ .../twostep/msg/GridH2ValueMessageFactory.java | 201 +++++++ .../IgniteCacheAbstractFieldsQuerySelfTest.java | 21 + .../IgniteCacheQueryMultiThreadedSelfTest.java | 6 +- .../h2/GridIndexingSpiAbstractSelfTest.java | 130 ++++- modules/jcl/pom.xml | 2 +- modules/jta/pom.xml | 2 +- modules/log4j/pom.xml | 2 +- modules/rest-http/pom.xml | 2 +- modules/scalar/pom.xml | 2 +- modules/schedule/pom.xml | 2 +- modules/schema-import/pom.xml | 8 +- .../ignite/schema/generator/CodeGenerator.java | 41 +- modules/slf4j/pom.xml | 2 +- modules/spring/pom.xml | 2 +- .../util/spring/IgniteSpringHelperImpl.java | 2 +- modules/ssh/pom.xml | 2 +- ...gniteProjectionStartStopRestartSelfTest.java | 26 +- modules/tools/pom.xml | 2 +- modules/urideploy/pom.xml | 2 +- modules/visor-console/pom.xml | 2 +- .../commands/cache/VisorCacheCommand.scala | 2 +- .../commands/cache/VisorCacheScanCommand.scala | 2 +- modules/visor-plugins/pom.xml | 2 +- modules/web/pom.xml | 2 +- modules/yardstick/pom.xml | 2 +- pom.xml | 226 +++++++- 173 files changed, 7858 insertions(+), 2414 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java index 2ee690a,7a0e140..b48f887 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java @@@ -86,21 -94,30 +94,30 @@@ public class GridCacheSqlQuery implemen return params; } - /** {@inheritDoc} */ - @Override public void writeExternal(ObjectOutput out) throws IOException { - U.writeString(out, alias); - U.writeString(out, qry); - U.writeArray(out, params); + /** + * @param m Marshaller. + * @throws IgniteCheckedException If failed. + */ + public void marshallParams(Marshaller m) throws IgniteCheckedException { + if (paramsBytes != null) + return; + + assert params != null; + - paramsBytes = m.marshal(params); ++ paramsBytes = m.marshal(params).array(); } - /** {@inheritDoc} */ - @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - alias = U.readString(in); - qry = U.readString(in); - params = U.readArray(in); + /** + * @param m Marshaller. + * @throws IgniteCheckedException If failed. + */ + public void unmarshallParams(Marshaller m) throws IgniteCheckedException { + if (params != null) + return; + + assert paramsBytes != null; - if (F.isEmpty(params)) - params = EMPTY_PARAMS; - params = m.unmarshal(paramsBytes, null); ++ params = m.unmarshal(ByteBuffer.wrap(paramsBytes), null); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/core/src/main/resources/META-INF/classnames.properties ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java ---------------------------------------------------------------------- diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index 6709a89,975378c..c16579f --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@@ -62,8 -64,8 +64,9 @@@ import javax.cache.* import java.io.*; import java.lang.reflect.*; import java.math.*; +import java.nio.*; import java.sql.*; + import java.sql.Date; import java.text.*; import java.util.*; import java.util.concurrent.*; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java ---------------------------------------------------------------------- diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java index 0000000,0a37674..55c09cd mode 000000,100644..100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java @@@ -1,0 -1,191 +1,191 @@@ + /* + * 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.ignite.internal.processors.query.h2.opt; + + import org.apache.ignite.*; + import org.apache.ignite.internal.processors.cache.CacheObject; + import org.apache.ignite.internal.processors.cache.*; + import org.h2.message.*; + import org.h2.util.*; + import org.h2.value.*; + + import java.sql.*; + + /** + * H2 Value over {@link CacheObject}. Replacement for {@link ValueJavaObject}. + */ + public class GridH2ValueCacheObject extends Value { + /** */ + private CacheObject obj; + + /** */ + private GridCacheContext<?,?> cctx; + + /** + * @param cctx Cache context. + * @param obj Object. + */ + public GridH2ValueCacheObject(GridCacheContext<?,?> cctx, CacheObject obj) { + assert obj != null; + + this.obj = obj; + this.cctx = cctx; // Allowed to be null in tests. + } + + /** + * @return Cache object. + */ + public CacheObject getCacheObject() { + return obj; + } + + /** + * @return Cache context. + */ + public GridCacheContext<?,?> getCacheContext() { + return cctx; + } + + /** {@inheritDoc} */ + @Override public String getSQL() { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public int getType() { + return Value.JAVA_OBJECT; + } + + /** {@inheritDoc} */ + @Override public long getPrecision() { + return 0; + } + + /** {@inheritDoc} */ + @Override public int getDisplaySize() { + return 64; + } + + /** {@inheritDoc} */ + @Override public String getString() { + return getObject().toString(); + } + + /** {@inheritDoc} */ + @Override public byte[] getBytes() { + return Utils.cloneByteArray(getBytesNoCopy()); + } + + /** + * @return Cache object context. + */ + private CacheObjectContext objectContext() { + return cctx == null ? null : cctx.cacheObjectContext(); + } + + /** {@inheritDoc} */ + @Override public byte[] getBytesNoCopy() { + if (obj.type() == CacheObject.TYPE_REGULAR) { + // Result must be the same as `marshaller.marshall(obj.value(coctx, false));` + try { - return obj.valueBytes(objectContext()); ++ return obj.valueBytes(objectContext()).array(); + } + catch (IgniteCheckedException e) { + throw DbException.convert(e); + } + } + + // For portables and byte array cache object types. + return Utils.serialize(obj.value(objectContext(), false), null); + } + + /** {@inheritDoc} */ + @Override public Object getObject() { + return obj.value(objectContext(), false); + } + + /** {@inheritDoc} */ + @Override public void set(PreparedStatement prep, int parameterIndex) throws SQLException { + prep.setObject(parameterIndex, getObject(), Types.JAVA_OBJECT); + } + + /** {@inheritDoc} */ + @SuppressWarnings("unchecked") + @Override protected int compareSecure(Value v, CompareMode mode) { + Object o1 = getObject(); + Object o2 = v.getObject(); + + boolean o1Comparable = o1 instanceof Comparable; + boolean o2Comparable = o2 instanceof Comparable; + + if (o1Comparable && o2Comparable && + Utils.haveCommonComparableSuperclass(o1.getClass(), o2.getClass())) { + Comparable<Object> c1 = (Comparable<Object>)o1; + + return c1.compareTo(o2); + } + + // Group by types. + if (o1.getClass() != o2.getClass()) { + if (o1Comparable != o2Comparable) + return o1Comparable ? -1 : 1; + + return o1.getClass().getName().compareTo(o2.getClass().getName()); + } + + // Compare hash codes. + int h1 = hashCode(); + int h2 = v.hashCode(); + + if (h1 == h2) { + if (o1.equals(o2)) + return 0; + + return Utils.compareNotNullSigned(getBytesNoCopy(), v.getBytesNoCopy()); + } + + return h1 > h2 ? 1 : -1; + } + + /** {@inheritDoc} */ + @Override public int hashCode() { + return getObject().hashCode(); + } + + /** {@inheritDoc} */ + @Override public boolean equals(Object other) { + if (!(other instanceof Value)) + return false; + + Value otherVal = (Value)other; + + return otherVal.getType() == Value.JAVA_OBJECT + && getObject().equals(otherVal.getObject()); + } + + /** {@inheritDoc} */ + @Override public Value convertPrecision(long precision, boolean force) { + return this; + } + + /** {@inheritDoc} */ + @Override public int getMemory() { + return 0; + } + } + http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java ---------------------------------------------------------------------- diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java index ca2186e,f2f11be..b3dae86 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java @@@ -167,7 -173,7 +174,7 @@@ public class GridLuceneIndex implement } } - String keyStr = org.apache.commons.codec.binary.Base64.encodeBase64String(U.toArray(marshaller.marshal(key))); - String keyStr = org.apache.commons.codec.binary.Base64.encodeBase64String(k.valueBytes(coctx)); ++ String keyStr = org.apache.commons.codec.binary.Base64.encodeBase64String(k.valueBytes(coctx).array()); try { // Delete first to avoid duplicates. @@@ -178,19 -184,8 +185,8 @@@ doc.add(new Field(KEY_FIELD_NAME, keyStr, Field.Store.YES, Field.Index.NOT_ANALYZED)); - if (storeVal && type.valueClass() != String.class) { - ByteBuffer buf = marshaller.marshal(val); - - if (buf.hasArray()) - doc.add(new Field(VAL_FIELD_NAME, buf.array(), buf.position(), buf.remaining())); - else { - byte[] bytes = new byte[buf.remaining()]; - - buf.get(bytes); - - doc.add(new Field(VAL_FIELD_NAME, bytes)); - } - } + if (type.valueClass() != String.class) - doc.add(new Field(VAL_FIELD_NAME, v.valueBytes(coctx))); ++ doc.add(new Field(VAL_FIELD_NAME, v.valueBytes(coctx).array())); doc.add(new Field(VER_FIELD_NAME, ver)); @@@ -213,10 -208,10 +209,10 @@@ * @param key Key. * @throws IgniteCheckedException If failed. */ - public void remove(Object key) throws IgniteCheckedException { + public void remove(CacheObject key) throws IgniteCheckedException { try { writer.deleteDocuments(new Term(KEY_FIELD_NAME, - org.apache.commons.codec.binary.Base64.encodeBase64String(U.toArray(marshaller.marshal(key))))); - org.apache.commons.codec.binary.Base64.encodeBase64String(key.valueBytes(objectContext())))); ++ org.apache.commons.codec.binary.Base64.encodeBase64String(key.valueBytes(objectContext()).array()))); } catch (IOException e) { throw new IgniteCheckedException(e); @@@ -341,6 -341,20 +342,20 @@@ } /** + * @param bytes Bytes. + * @param ldr Class loader. + * @return Object. + * @throws IgniteCheckedException If failed. + */ + @SuppressWarnings("unchecked") + private <Z> Z unmarshall(byte[] bytes, ClassLoader ldr) throws IgniteCheckedException { + if (coctx == null) // For tests. + return (Z)Utils.deserialize(bytes, null); + - return (Z)coctx.processor().unmarshal(coctx, bytes, ldr); ++ return (Z)coctx.unmarshal(ByteBuffer.wrap(bytes), ldr); + } + + /** * Finds next element. * * @throws IgniteCheckedException If failed. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractFieldsQuerySelfTest.java ---------------------------------------------------------------------- diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractFieldsQuerySelfTest.java index 23fa81f,3159589..c91e430 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractFieldsQuerySelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractFieldsQuerySelfTest.java @@@ -27,7 -27,9 +27,8 @@@ import org.apache.ignite.internal.* import org.apache.ignite.internal.processors.cache.query.*; import org.apache.ignite.internal.processors.datastructures.*; import org.apache.ignite.internal.processors.query.*; + import org.apache.ignite.internal.processors.query.h2.sql.*; import org.apache.ignite.internal.util.typedef.*; -import org.apache.ignite.marshaller.optimized.*; import org.apache.ignite.spi.discovery.*; import org.apache.ignite.spi.discovery.tcp.*; import org.apache.ignite.spi.discovery.tcp.ipfinder.*; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50cb10f3/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java ---------------------------------------------------------------------- diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java index d52e173,3ec67b2..fa4bae2 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java @@@ -526,4 -540,68 +540,68 @@@ public abstract class GridIndexingSpiAb return textIdx == null; } } + + /** + */ + private static class TestCacheObject implements CacheObject { + /** */ + private Object val; + + /** + * @param val Value. + */ + private TestCacheObject(Object val) { + this.val = val; + } + + /** {@inheritDoc} */ + @Nullable @Override public <T> T value(CacheObjectContext ctx, boolean cpy) { + return (T)val; + } + + /** {@inheritDoc} */ - @Override public byte[] valueBytes(CacheObjectContext ctx) throws IgniteCheckedException { - return Utils.serialize(val, null); ++ @Override public ByteBuffer valueBytes(CacheObjectContext ctx) throws IgniteCheckedException { ++ return ByteBuffer.wrap(Utils.serialize(val, null)); + } + + /** {@inheritDoc} */ + @Override public byte type() { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public CacheObject prepareForCache(CacheObjectContext ctx) { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public void finishUnmarshal(CacheObjectContext ctx, ClassLoader ldr) throws IgniteCheckedException { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public void prepareMarshal(CacheObjectContext ctx) throws IgniteCheckedException { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public byte directType() { + throw new UnsupportedOperationException(); + } + + /** {@inheritDoc} */ + @Override public byte fieldsCount() { + throw new UnsupportedOperationException(); + } + } }
