You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/09/04 15:31:46 UTC
[14/37] ignite git commit: IGNITE-1348: Moved GridGain's .Net module
to Ignite.
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceConfiguration.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceConfiguration.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceConfiguration.cs
new file mode 100644
index 0000000..e91656f
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceConfiguration.cs
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Services
+{
+ using Apache.Ignite.Core.Cluster;
+
+ /// <summary>
+ /// Service configuration.
+ /// </summary>
+ public class ServiceConfiguration
+ {
+ /// <summary>
+ /// Gets or sets the service name.
+ /// </summary>
+ public string Name { get; set; }
+
+ /// <summary>
+ /// Gets or sets the service instance.
+ /// </summary>
+ public IService Service { get; set; }
+
+ /// <summary>
+ /// Gets or sets the total number of deployed service instances in the cluster, 0 for unlimited.
+ /// </summary>
+ public int TotalCount { get; set; }
+
+ /// <summary>
+ /// Gets or sets maximum number of deployed service instances on each node, 0 for unlimited.
+ /// </summary>
+ public int MaxPerNodeCount { get; set; }
+
+ /// <summary>
+ /// Gets or sets cache name used for key-to-node affinity calculation.
+ /// </summary>
+ public string CacheName { get; set; }
+
+ /// <summary>
+ /// Gets or sets affinity key used for key-to-node affinity calculation.
+ /// </summary>
+ public object AffinityKey { get; set; }
+
+ /// <summary>
+ /// Gets or sets node filter used to filter nodes on which the service will be deployed.
+ /// </summary>
+ public IClusterNodeFilter NodeFilter { get; set; }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceInvocationException.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceInvocationException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceInvocationException.cs
new file mode 100644
index 0000000..fe83cbc
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Services/ServiceInvocationException.cs
@@ -0,0 +1,101 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Services
+{
+ using System;
+ using System.Runtime.Serialization;
+ using Apache.Ignite.Core.Common;
+ using Apache.Ignite.Core.Portable;
+
+ /// <summary>
+ /// Indicates an error during Grid Services invocation.
+ /// </summary>
+ [Serializable]
+ public class ServiceInvocationException : IgniteException
+ {
+ /** Serializer key. */
+ private const string KeyPortableCause = "PortableCause";
+
+ /** Cause. */
+ private readonly IPortableObject _portableCause;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ServiceInvocationException"/> class.
+ /// </summary>
+ public ServiceInvocationException()
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ServiceInvocationException"/> class.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ public ServiceInvocationException(string message) : base(message)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ServiceInvocationException"/> class.
+ /// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="cause">The cause.</param>
+ public ServiceInvocationException(string message, Exception cause) : base(message, cause)
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ServiceInvocationException"/> class.
+ /// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="portableCause">The portable cause.</param>
+ public ServiceInvocationException(string message, IPortableObject portableCause)
+ :base(message)
+ {
+ _portableCause = portableCause;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="IgniteException"/> class.
+ /// </summary>
+ /// <param name="info">Serialization information.</param>
+ /// <param name="ctx">Streaming context.</param>
+ protected ServiceInvocationException(SerializationInfo info, StreamingContext ctx)
+ : base(info, ctx)
+ {
+ _portableCause = (IPortableObject) info.GetValue(KeyPortableCause, typeof (IPortableObject));
+ }
+
+ /// <summary>
+ /// Gets the portable cause.
+ /// </summary>
+ public IPortableObject PortableCause
+ {
+ get { return _portableCause; }
+ }
+
+ /** <inheritdoc /> */
+ public override void GetObjectData(SerializationInfo info, StreamingContext context)
+ {
+ info.AddValue(KeyPortableCause, _portableCause);
+
+ base.GetObjectData(info, context);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransaction.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransaction.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransaction.cs
new file mode 100644
index 0000000..e85d577
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransaction.cs
@@ -0,0 +1,230 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+ using System.Collections.Generic;
+ using Apache.Ignite.Core.Common;
+
+ /// <summary>
+ /// Grid cache transaction.
+ /// <para />
+ /// Cache transactions support the following isolation levels:
+ /// <list type="bullet">
+ /// <item>
+ /// <description><see cref="TransactionIsolation.ReadCommitted"/> isolation level
+ /// means that always a committed value will be provided for read operations. With this isolation
+ /// level values are always read from cache global memory or persistent store every time a value
+ /// is accessed. In other words, if the same key is accessed more than once within the same transaction,
+ /// it may have different value every time since global cache memory may be updated concurrently by
+ /// other threads.</description>
+ /// </item>
+ /// <item>
+ /// <description><see cref="TransactionIsolation.RepeatableRead"/> isolation level
+ /// means that if a value was read once within transaction, then all consecutive reads will provide
+ /// the same in-transaction value. With this isolation level accessed values are stored within
+ /// in-transaction memory, so consecutive access to the same key within the same transaction will always
+ /// return the value that was previously read or updated within this transaction. If concurrency is
+ /// <see cref="TransactionConcurrency.Pessimistic"/>, then a lock on the key will be
+ /// acquired prior to accessing the value.</description>
+ /// </item>
+ /// <item>
+ /// <description><see cref="TransactionIsolation.Serializable"/> isolation level means
+ /// that all transactions occur in a completely isolated fashion, as if all transactions in the system
+ /// had executed serially, one after the other. Read access with this level happens the same way as with
+ /// <see cref="TransactionIsolation.RepeatableRead"/> level. However, in
+ /// <see cref="TransactionConcurrency.Optimistic"/> mode, if some transactions cannot be
+ /// serially isolated from each other, then one winner will be picked and the other transactions in
+ /// conflict will result in <c>TransactionOptimisticException</c> being thrown on Java side.</description>
+ /// </item>
+ /// </list>
+ /// Cache transactions support the following concurrency models:
+ /// <list type="bullet">
+ /// <item>
+ /// <description><see cref="TransactionConcurrency.Optimistic"/> - in this mode all cache
+ /// operations
+ /// are not distributed to other nodes until <see cref="ITransaction.Commit()"/>.
+ /// In this mode one <c>PREPARE</c> message will
+ /// be sent to participating cache nodes to start acquiring per-transaction locks, and once all nodes
+ /// reply <c>OK</c> (i.e. <c>Phase 1</c> completes successfully), a one-way <c>COMMIT</c> message is sent
+ /// without waiting for reply. If it is necessary to know whenever remote nodes have committed as well,
+ /// synchronous commit or synchronous rollback should be enabled via
+ /// <c>CacheConfiguration.setWriteSynchronizationMode</c>.
+ /// <para />
+ /// Note that in this mode, optimistic failures are only possible in conjunction with
+ /// <see cref="TransactionIsolation.Serializable"/> isolation level. In all other cases,
+ /// optimistic transactions will never fail optimistically and will always be identically ordered on all
+ /// participating Ignite nodes.</description>
+ /// </item>
+ /// <item>
+ /// <description><see cref="TransactionConcurrency.Pessimistic"/> - in this mode a lock is
+ /// acquired on all cache operations with exception of read operations in
+ /// <see cref="TransactionIsolation.ReadCommitted"/> mode. All optional filters passed
+ /// into cache operations will be evaluated after successful lock acquisition. Whenever
+ /// <see cref="ITransaction.Commit()"/> is called, a single one-way <c>COMMIT</c>
+ /// message is sent to participating cache nodes without waiting for reply. Note that there is no reason
+ /// for distributed <c>PREPARE</c> step, as all locks have been already acquired. Just like with
+ /// optimistic mode, it is possible to configure synchronous commit or rollback and wait till
+ /// transaction commits on all participating remote nodes.</description>
+ /// </item>
+ /// </list>
+ /// <para />
+ /// In addition to standard <c>CacheAtomicityMode.TRANSACTIONAL</c> behavior, Ignite also supports
+ /// a lighter <c>CacheAtomicityMode.ATOMIC</c> mode as well. In this mode distributed transactions
+ /// and distributed locking are not supported. Disabling transactions and locking allows to achieve much higher
+ /// performance and throughput ratios. It is recommended that <c>CacheAtomicityMode.TRANSACTIONAL</c> mode
+ /// is used whenever full <c>ACID</c>-compliant transactions are not needed.
+ /// <example>
+ /// You can use cache transactions as follows:
+ /// <code>
+ /// ICacheTx tx = cache.TxStart();
+ ///
+ /// try
+ /// {
+ /// int v1 = cache<string, int>.Get("k1");
+ ///
+ /// // Check if v1 satisfies some condition before doing a put.
+ /// if (v1 > 0)
+ /// cache.Put<string, int>("k1", 2);
+ ///
+ /// cache.Removex("k2);
+ ///
+ /// // Commit the transaction.
+ /// tx.Commit();
+ /// }
+ /// finally
+ /// {
+ /// tx.Dispose();
+ /// }
+ ///
+ /// </code>
+ /// </example>
+ /// </summary>
+ public interface ITransaction : IDisposable, IAsyncSupport<ITransaction>
+ {
+ /// <summary>
+ /// ID of the node on which this transaction started.
+ /// </summary>
+ /// <value>
+ /// Originating node ID.
+ /// </value>
+ Guid NodeId { get; }
+
+ /// <summary>
+ /// ID of the thread in which this transaction started.
+ /// </summary>
+ long ThreadId
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Start time of this transaction on this node.
+ /// </summary>
+ DateTime StartTime
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Transaction isolation level.
+ /// </summary>
+ TransactionIsolation Isolation
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Transaction concurrency mode.
+ /// </summary>
+ TransactionConcurrency Concurrency
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Current transaction state.
+ /// </summary>
+ TransactionState State
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Timeout value in milliseconds for this transaction. If transaction times
+ /// out prior to it's completion, an exception will be thrown.
+ /// </summary>
+ TimeSpan Timeout
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Gets a value indicating whether this transaction was marked as rollback-only.
+ /// </summary>
+ bool IsRollbackOnly
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Modify the transaction associated with the current thread such that the
+ /// only possible outcome of the transaction is to roll back the transaction.
+ /// </summary>
+ /// <returns>
+ /// True if rollback-only flag was set as a result of this operation,
+ /// false if it was already set prior to this call or could not be set
+ /// because transaction is already finishing up committing or rolling back.
+ /// </returns>
+ bool SetRollbackonly();
+
+ /// <summary>
+ /// Commits this transaction.
+ /// </summary>
+ [AsyncSupported]
+ void Commit();
+
+ /// <summary>
+ /// Rolls back this transaction.
+ /// </summary>
+ [AsyncSupported]
+ void Rollback();
+
+ /// <summary>
+ /// Adds a new metadata.
+ /// </summary>
+ /// <param name="name">Metadata name.</param>
+ /// <param name="val">Metadata value.</param>
+ void AddMeta<TV>(string name, TV val);
+
+ /// <summary>
+ /// Gets metadata by name.
+ /// </summary>
+ /// <param name="name">Metadata name.</param>
+ /// <returns>Metadata value.</returns>
+ /// <exception cref="KeyNotFoundException">If metadata key was not found.</exception>
+ TV Meta<TV>(string name);
+
+ /// <summary>
+ /// Removes metadata by name.
+ /// </summary>
+ /// <param name="name">Metadata name.</param>
+ /// <returns>Value of removed metadata or default value for <code>V</code> type.</returns>
+ TV RemoveMeta<TV>(string name);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactionMetrics.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactionMetrics.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactionMetrics.cs
new file mode 100644
index 0000000..565dd34
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactionMetrics.cs
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+
+ /// <summary>
+ /// Transaction metrics, shared across all caches.
+ /// </summary>
+ public interface ITransactionMetrics
+ {
+ /// <summary>
+ /// Gets the last time transaction was committed.
+ /// </summary>
+ DateTime CommitTime { get; }
+
+ /// <summary>
+ /// Gets the last time transaction was rolled back.
+ /// </summary>
+ DateTime RollbackTime { get; }
+
+ /// <summary>
+ /// Gets the total number of transaction commits.
+ /// </summary>
+ int TxCommits { get; }
+
+ /// <summary>
+ /// Gets the total number of transaction rollbacks.
+ /// </summary>
+ int TxRollbacks { get; }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactions.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactions.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactions.cs
new file mode 100644
index 0000000..83f12a5
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/ITransactions.cs
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+
+ /// <summary>
+ /// Transactions facade.
+ /// <para/>
+ /// All members are thread-safe and may be used concurrently from multiple threads.
+ /// </summary>
+ public interface ITransactions
+ {
+ /// <summary>
+ /// Starts a transaction with default isolation, concurrency, timeout, and invalidation policy.
+ /// All defaults are set in CacheConfiguration at startup.
+ /// </summary>
+ /// <returns>New transaction.</returns>
+ ITransaction TxStart();
+
+ /// <summary>
+ /// Starts new transaction with the specified concurrency and isolation.
+ /// </summary>
+ /// <param name="concurrency">Concurrency.</param>
+ /// <param name="isolation">Isolation.</param>
+ /// <returns>New transaction.</returns>
+ ITransaction TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation);
+
+ /// <summary>
+ /// Starts new transaction with the specified concurrency and isolation.
+ /// </summary>
+ /// <param name="concurrency">Concurrency.</param>
+ /// <param name="isolation">Isolation.</param>
+ /// <param name="timeout">Timeout.</param>
+ /// <param name="txSize">Number of entries participating in transaction (may be approximate).</param>
+ /// <returns>New transaction.</returns>
+ ITransaction TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation,
+ TimeSpan timeout, int txSize);
+
+ /// <summary>
+ /// Gets transaction started by this thread or null if this thread does not have a transaction.
+ /// </summary>
+ /// <value>
+ /// Transaction started by this thread or null if this thread does not have a transaction.
+ /// </value>
+ ITransaction Tx { get; }
+
+ /// <summary>
+ /// Gets the metrics.
+ /// </summary>
+ ITransactionMetrics GetMetrics();
+
+ /// <summary>
+ /// Resets the metrics.
+ /// </summary>
+ void ResetMetrics();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionConcurrency.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionConcurrency.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionConcurrency.cs
new file mode 100644
index 0000000..4025607
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionConcurrency.cs
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ /// <summary>
+ /// Transaction concurrency control. See <see cref="ITransaction"/> for more
+ /// information on transaction concurrency controls.
+ /// </summary>
+ public enum TransactionConcurrency
+ {
+ /// <summary>
+ /// Optimistic concurrency control.
+ /// </summary>
+ Optimistic = 0,
+
+ /// <summary>
+ /// Pessimistic concurrency control.
+ /// </summary>
+ Pessimistic = 1
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionHeuristicException.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionHeuristicException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionHeuristicException.cs
new file mode 100644
index 0000000..cb46902
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionHeuristicException.cs
@@ -0,0 +1,72 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+ using System.Runtime.Serialization;
+ using Apache.Ignite.Core.Common;
+
+ /// <summary>
+ /// Exception thrown whenever Ignite transaction enters an unknown state.
+ /// This exception is usually thrown whenever commit partially succeeds.
+ /// Cache will still resolve this situation automatically to ensure data
+ /// integrity, by invalidating all values participating in this transaction
+ /// on remote nodes.
+ /// </summary>
+ [Serializable]
+ public class TransactionHeuristicException : IgniteException
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionHeuristicException"/> class.
+ /// </summary>
+ public TransactionHeuristicException()
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionHeuristicException"/> class.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ public TransactionHeuristicException(string message) : base(message)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionHeuristicException"/> class.
+ /// </summary>
+ /// <param name="info">Serialization information.</param>
+ /// <param name="ctx">Streaming context.</param>
+ protected TransactionHeuristicException(SerializationInfo info, StreamingContext ctx)
+ : base(info, ctx)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionHeuristicException"/> class.
+ /// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="cause">The cause.</param>
+ public TransactionHeuristicException(string message, Exception cause) : base(message, cause)
+ {
+ // No-op.
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionIsolation.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionIsolation.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionIsolation.cs
new file mode 100644
index 0000000..2a7723f
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionIsolation.cs
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ /// <summary>
+ /// Defines different cache transaction isolation levels. See <see cref="ITransaction"/>
+ /// documentation for more information about cache transaction isolation levels.
+ /// </summary>
+ public enum TransactionIsolation
+ {
+ /// <summary>
+ /// Read committed isolation level.
+ /// </summary>
+ ReadCommitted = 0,
+
+ /// <summary>
+ /// Repeatable read isolation level.
+ /// </summary>
+ RepeatableRead = 1,
+
+ /// <summary>
+ /// Serializable isolation level.
+ /// </summary>
+ Serializable = 2
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionOptimisticException.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionOptimisticException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionOptimisticException.cs
new file mode 100644
index 0000000..2b64370
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionOptimisticException.cs
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+ using System.Runtime.Serialization;
+ using Apache.Ignite.Core.Common;
+
+ /// <summary>
+ /// Exception thrown whenever Ignite transactions fail optimistically.
+ /// </summary>
+ [Serializable]
+ public class TransactionOptimisticException : IgniteException
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionOptimisticException"/> class.
+ /// </summary>
+ public TransactionOptimisticException()
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionOptimisticException"/> class.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ public TransactionOptimisticException(string message) : base(message)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionOptimisticException"/> class.
+ /// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="cause">The cause.</param>
+ public TransactionOptimisticException(string message, Exception cause)
+ : base(message, cause)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionOptimisticException"/> class.
+ /// </summary>
+ /// <param name="info">Serialization information.</param>
+ /// <param name="ctx">Streaming context.</param>
+ protected TransactionOptimisticException(SerializationInfo info, StreamingContext ctx)
+ : base(info, ctx)
+ {
+ // No-op.
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionRollbackException.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionRollbackException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionRollbackException.cs
new file mode 100644
index 0000000..c1f25c8
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionRollbackException.cs
@@ -0,0 +1,68 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+ using System.Runtime.Serialization;
+ using Apache.Ignite.Core.Common;
+
+ /// <summary>
+ /// Exception thrown whenever Ignite transactions has been automatically rolled back.
+ /// </summary>
+ [Serializable]
+ public class TransactionRollbackException : IgniteException
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionRollbackException"/> class.
+ /// </summary>
+ public TransactionRollbackException()
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionRollbackException"/> class.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ public TransactionRollbackException(string message) : base(message)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionRollbackException"/> class.
+ /// </summary>
+ /// <param name="info">Serialization information.</param>
+ /// <param name="ctx">Streaming context.</param>
+ protected TransactionRollbackException(SerializationInfo info, StreamingContext ctx)
+ : base(info, ctx)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionRollbackException"/> class.
+ /// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="cause">The cause.</param>
+ public TransactionRollbackException(string message, Exception cause) : base(message, cause)
+ {
+ // No-op.
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionState.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionState.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionState.cs
new file mode 100644
index 0000000..eecf72b
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionState.cs
@@ -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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ /// <summary>
+ /// Cache transaction state.
+ /// </summary>
+ public enum TransactionState
+ {
+ /// <summary>
+ /// Transaction started.
+ /// </summary>
+ Active,
+
+ /// <summary>
+ /// Transaction validating.
+ /// </summary>
+ Preparing,
+
+ /// <summary>
+ /// Transaction validation succeeded.
+ /// </summary>
+ Prepared,
+
+ /// <summary>
+ /// Transaction is marked for rollback.
+ /// </summary>
+ MarkedRollback,
+
+ /// <summary>
+ /// Transaction commit started (validating finished).
+ /// </summary>
+ Committing,
+
+ /// <summary>
+ /// Transaction commit succeeded.
+ /// </summary>
+ Committed,
+
+ /// <summary>
+ /// Transaction rollback started (validation failed).
+ /// </summary>
+ RollingBack,
+
+ /// <summary>
+ /// Transaction rollback succeeded.
+ /// </summary>
+ RolledBack,
+
+ /// <summary>
+ /// Transaction rollback failed or is otherwise unknown state.
+ /// </summary>
+ Unknown
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionTimeoutException.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionTimeoutException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionTimeoutException.cs
new file mode 100644
index 0000000..f1e492a
--- /dev/null
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Transactions/TransactionTimeoutException.cs
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Transactions
+{
+ using System;
+ using System.Runtime.Serialization;
+ using Apache.Ignite.Core.Common;
+
+ /// <summary>
+ /// Exception thrown whenever Ignite transactions time out.
+ /// </summary>
+ [Serializable]
+ public class TransactionTimeoutException : IgniteException
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionTimeoutException"/> class.
+ /// </summary>
+ public TransactionTimeoutException()
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionTimeoutException"/> class.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ public TransactionTimeoutException(string message)
+ : base(message)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionTimeoutException"/> class.
+ /// </summary>
+ /// <param name="info">Serialization information.</param>
+ /// <param name="ctx">Streaming context.</param>
+ protected TransactionTimeoutException(SerializationInfo info, StreamingContext ctx)
+ : base(info, ctx)
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TransactionTimeoutException"/> class.
+ /// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="cause">The cause.</param>
+ public TransactionTimeoutException(string message, Exception cause) : base(message, cause)
+ {
+ // No-op.
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/dotnet/Apache.Ignite.sln
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.sln b/modules/platform/src/main/dotnet/Apache.Ignite.sln
index 91bd2b6..11fc4ce 100644
--- a/modules/platform/src/main/dotnet/Apache.Ignite.sln
+++ b/modules/platform/src/main/dotnet/Apache.Ignite.sln
@@ -1,9 +1,16 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.31101.0
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.Core", "Apache.Ignite.Core\Apache.Ignite.Core.csproj", "{4CD2F726-7E2B-46C4-A5BA-057BB82EECB6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.Core.Tests", "..\..\test\dotnet\Apache.Ignite.Core.Tests\Apache.Ignite.Core.Tests.csproj", "{6A62F66C-DA5B-4FBB-8CE7-A95F740FDC7A}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\cpp\common\project\vs\common.vcxproj", "{4F7E4917-4612-4B96-9838-025711ADE391}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.Core.Tests.TestDll", "..\..\test\dotnet\Apache.Ignite.Core.Tests.TestDll\Apache.Ignite.Core.Tests.TestDll.csproj", "{F4A69E2D-908E-4F0F-A794-84D508D60E5F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -28,6 +35,22 @@ Global
{6A62F66C-DA5B-4FBB-8CE7-A95F740FDC7A}.Release|x64.Build.0 = Release|x64
{6A62F66C-DA5B-4FBB-8CE7-A95F740FDC7A}.Release|x86.ActiveCfg = Release|x86
{6A62F66C-DA5B-4FBB-8CE7-A95F740FDC7A}.Release|x86.Build.0 = Release|x86
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Debug|x64.ActiveCfg = Debug|x64
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Debug|x64.Build.0 = Debug|x64
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Debug|x86.ActiveCfg = Debug|Win32
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Debug|x86.Build.0 = Debug|Win32
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Release|x64.ActiveCfg = Release|x64
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Release|x64.Build.0 = Release|x64
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Release|x86.ActiveCfg = Release|Win32
+ {4F7E4917-4612-4B96-9838-025711ADE391}.Release|x86.Build.0 = Release|Win32
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Debug|x64.ActiveCfg = Debug|x64
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Debug|x64.Build.0 = Debug|x64
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Debug|x86.ActiveCfg = Debug|x86
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Debug|x86.Build.0 = Debug|x86
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Release|x64.ActiveCfg = Release|x64
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Release|x64.Build.0 = Release|x64
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Release|x86.ActiveCfg = Release|x86
+ {F4A69E2D-908E-4F0F-A794-84D508D60E5F}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetConfiguration.java b/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetConfiguration.java
deleted file mode 100644
index 80f4b26..0000000
--- a/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetConfiguration.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * 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.platform.dotnet;
-
-import org.apache.ignite.configuration.PlatformConfiguration;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.portable.PortableException;
-import org.apache.ignite.portable.PortableMarshalAware;
-import org.apache.ignite.portable.PortableRawReader;
-import org.apache.ignite.portable.PortableRawWriter;
-import org.apache.ignite.portable.PortableReader;
-import org.apache.ignite.portable.PortableWriter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Mirror of .Net class Configuration.cs
- */
-public class PlatformDotNetConfiguration implements PlatformConfiguration, PortableMarshalAware {
- /** */
- private PlatformDotNetPortableConfiguration portableCfg;
-
- /** */
- private List<String> assemblies;
-
- /**
- * Default constructor.
- */
- public PlatformDotNetConfiguration() {
- // No-op.
- }
-
- /**
- * Copy constructor.
- *
- * @param cfg Configuration to copy.
- */
- public PlatformDotNetConfiguration(PlatformDotNetConfiguration cfg) {
- if (cfg.getPortableConfiguration() != null)
- portableCfg = new PlatformDotNetPortableConfiguration(cfg.getPortableConfiguration());
-
- if (cfg.getAssemblies() != null)
- assemblies = new ArrayList<>(cfg.getAssemblies());
- }
-
- /**
- * @return Configuration.
- */
- public PlatformDotNetPortableConfiguration getPortableConfiguration() {
- return portableCfg;
- }
-
- /**
- * @param portableCfg Configuration.
- */
- public void setPortableConfiguration(PlatformDotNetPortableConfiguration portableCfg) {
- this.portableCfg = portableCfg;
- }
-
- /**
- * @return Assemblies.
- */
- public List<String> getAssemblies() {
- return assemblies;
- }
-
- /**
- *
- * @param assemblies Assemblies.
- */
- public void setAssemblies(List<String> assemblies) {
- this.assemblies = assemblies;
- }
-
- /**
- * @return Configuration copy.
- */
- @SuppressWarnings("UnusedDeclaration")
- private PlatformDotNetConfiguration copy() {
- return new PlatformDotNetConfiguration(this);
- }
-
- /** {@inheritDoc} */
- @Override public void writePortable(PortableWriter writer) throws PortableException {
- PortableRawWriter rawWriter = writer.rawWriter();
-
- rawWriter.writeObject(portableCfg);
- rawWriter.writeCollection(assemblies);
- }
-
- /** {@inheritDoc} */
- @Override public void readPortable(PortableReader reader) throws PortableException {
- PortableRawReader rawReader = reader.rawReader();
-
- portableCfg = rawReader.readObject();
- assemblies = (List<String>)rawReader.<String>readCollection();
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(PlatformDotNetConfiguration.class, this);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableConfiguration.java b/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableConfiguration.java
deleted file mode 100644
index 644a8e6..0000000
--- a/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableConfiguration.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * 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.platform.dotnet;
-
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.portable.PortableException;
-import org.apache.ignite.portable.PortableMarshalAware;
-import org.apache.ignite.portable.PortableRawReader;
-import org.apache.ignite.portable.PortableRawWriter;
-import org.apache.ignite.portable.PortableReader;
-import org.apache.ignite.portable.PortableWriter;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-/**
- * Mirror of .Net class PortableConfiguration.cs
- */
-public class PlatformDotNetPortableConfiguration implements PortableMarshalAware {
- /** Type cfgs. */
- private Collection<PlatformDotNetPortableTypeConfiguration> typesCfg;
-
- /** Types. */
- private Collection<String> types;
-
- /** Default name mapper. */
- private String dfltNameMapper;
-
- /** Default id mapper. */
- private String dfltIdMapper;
-
- /** Default serializer. */
- private String dfltSerializer;
-
- /** Default metadata enabled. */
- private boolean dfltMetadataEnabled = true;
-
- /** Whether to cache deserialized value in IGridPortableObject */
- private boolean dfltKeepDeserialized = true;
-
- /**
- * Default constructor.
- */
- public PlatformDotNetPortableConfiguration() {
- // No-op.
- }
-
- /**
- * Copy constructor.
- * @param cfg configuration to copy.
- */
- public PlatformDotNetPortableConfiguration(PlatformDotNetPortableConfiguration cfg) {
- if (cfg.getTypesConfiguration() != null) {
- typesCfg = new ArrayList<>();
-
- for (PlatformDotNetPortableTypeConfiguration typeCfg : cfg.getTypesConfiguration())
- typesCfg.add(new PlatformDotNetPortableTypeConfiguration(typeCfg));
- }
-
- if (cfg.getTypes() != null)
- types = new ArrayList<>(cfg.getTypes());
-
- dfltNameMapper = cfg.getDefaultNameMapper();
- dfltIdMapper = cfg.getDefaultIdMapper();
- dfltSerializer = cfg.getDefaultSerializer();
- dfltMetadataEnabled = cfg.isDefaultMetadataEnabled();
- dfltKeepDeserialized = cfg.isDefaultKeepDeserialized();
- }
-
- /**
- * @return Type cfgs.
- */
- public Collection<PlatformDotNetPortableTypeConfiguration> getTypesConfiguration() {
- return typesCfg;
- }
-
- /**
- * @param typesCfg New type cfgs.
- */
- public void setTypesConfiguration(Collection<PlatformDotNetPortableTypeConfiguration> typesCfg) {
- this.typesCfg = typesCfg;
- }
-
- /**
- * @return Types.
- */
- public Collection<String> getTypes() {
- return types;
- }
-
- /**
- * @param types New types.
- */
- public void setTypes(Collection<String> types) {
- this.types = types;
- }
-
- /**
- * @return Default name mapper.
- */
- public String getDefaultNameMapper() {
- return dfltNameMapper;
- }
-
- /**
- * @param dfltNameMapper New default name mapper.
- */
- public void setDefaultNameMapper(String dfltNameMapper) {
- this.dfltNameMapper = dfltNameMapper;
- }
-
- /**
- * @return Default id mapper.
- */
- public String getDefaultIdMapper() {
- return dfltIdMapper;
- }
-
- /**
- * @param dfltIdMapper New default id mapper.
- */
- public void setDefaultIdMapper(String dfltIdMapper) {
- this.dfltIdMapper = dfltIdMapper;
- }
-
- /**
- * @return Default serializer.
- */
- public String getDefaultSerializer() {
- return dfltSerializer;
- }
-
- /**
- * @param dfltSerializer New default serializer.
- */
- public void setDefaultSerializer(String dfltSerializer) {
- this.dfltSerializer = dfltSerializer;
- }
-
- /**
- * Gets default metadata enabled flag. See {@link #setDefaultMetadataEnabled(boolean)} for more information.
- *
- * @return Default metadata enabled flag.
- */
- public boolean isDefaultMetadataEnabled() {
- return dfltMetadataEnabled;
- }
-
- /**
- * Sets default metadata enabled flag. When set to {@code true} all portable types will save it's metadata to
- * cluster.
- * <p />
- * Can be overridden for particular type using
- * {@link PlatformDotNetPortableTypeConfiguration#setMetadataEnabled(Boolean)}.
- *
- * @param dfltMetadataEnabled Default metadata enabled flag.
- */
- public void setDefaultMetadataEnabled(boolean dfltMetadataEnabled) {
- this.dfltMetadataEnabled = dfltMetadataEnabled;
- }
-
- /**
- * Gets default keep deserialized flag. See {@link #setDefaultKeepDeserialized(boolean)} for more information.
- *
- * @return Flag indicates whether to cache deserialized value in IGridPortableObject.
- */
- public boolean isDefaultKeepDeserialized() {
- return dfltKeepDeserialized;
- }
-
- /**
- * Sets default keep deserialized flag.
- * <p />
- * Can be overridden for particular type using
- * {@link PlatformDotNetPortableTypeConfiguration#setKeepDeserialized(Boolean)}.
- *
- * @param keepDeserialized Keep deserialized flag.
- */
- public void setDefaultKeepDeserialized(boolean keepDeserialized) {
- this.dfltKeepDeserialized = keepDeserialized;
- }
-
- /** {@inheritDoc} */
- @Override public void writePortable(PortableWriter writer) throws PortableException {
- PortableRawWriter rawWriter = writer.rawWriter();
-
- rawWriter.writeCollection(typesCfg);
- rawWriter.writeCollection(types);
- rawWriter.writeString(dfltNameMapper);
- rawWriter.writeString(dfltIdMapper);
- rawWriter.writeString(dfltSerializer);
- rawWriter.writeBoolean(dfltMetadataEnabled);
- rawWriter.writeBoolean(dfltKeepDeserialized);
- }
-
- /** {@inheritDoc} */
- @Override public void readPortable(PortableReader reader) throws PortableException {
- PortableRawReader rawReader = reader.rawReader();
-
- typesCfg = rawReader.readCollection();
- types = rawReader.readCollection();
- dfltNameMapper = rawReader.readString();
- dfltIdMapper = rawReader.readString();
- dfltSerializer = rawReader.readString();
- dfltMetadataEnabled = rawReader.readBoolean();
- dfltKeepDeserialized = rawReader.readBoolean();
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(PlatformDotNetPortableConfiguration.class, this);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableTypeConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableTypeConfiguration.java b/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableTypeConfiguration.java
deleted file mode 100644
index b6fdbde..0000000
--- a/modules/platform/src/main/java/org/apache/ignite/platform/dotnet/PlatformDotNetPortableTypeConfiguration.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * 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.platform.dotnet;
-
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.portable.PortableException;
-import org.apache.ignite.portable.PortableMarshalAware;
-import org.apache.ignite.portable.PortableRawReader;
-import org.apache.ignite.portable.PortableRawWriter;
-import org.apache.ignite.portable.PortableReader;
-import org.apache.ignite.portable.PortableWriter;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Mirror of .Net class GridDotNetPortableTypeConfiguration.cs
- */
-public class PlatformDotNetPortableTypeConfiguration implements PortableMarshalAware {
- /** Assembly name. */
- private String assemblyName;
-
- /** Type name. */
- private String typeName;
-
- /** Name mapper. */
- private String nameMapper;
-
- /** Id mapper. */
- private String idMapper;
-
- /** Serializer. */
- private String serializer;
-
- /** Affinity key field name. */
- private String affinityKeyFieldName;
-
- /** Metadata enabled. */
- private Boolean metadataEnabled;
-
- /** Whether to cache deserialized value in IGridPortableObject. */
- private Boolean keepDeserialized;
-
- /**
- * Default constructor.
- */
- public PlatformDotNetPortableTypeConfiguration() {
- // No-op.
- }
-
- /**
- * Copy constructor.
- * @param cfg configuration to copy.
- */
- public PlatformDotNetPortableTypeConfiguration(PlatformDotNetPortableTypeConfiguration cfg) {
- assemblyName = cfg.getAssemblyName();
- typeName = cfg.getTypeName();
- nameMapper = cfg.getNameMapper();
- idMapper = cfg.getIdMapper();
- serializer = cfg.getSerializer();
- affinityKeyFieldName = cfg.getAffinityKeyFieldName();
- metadataEnabled = cfg.getMetadataEnabled();
- keepDeserialized = cfg.isKeepDeserialized();
- }
-
- /**
- * @return Assembly name.
- */
- public String getAssemblyName() {
- return assemblyName;
- }
-
- /**
- * @param assemblyName New assembly name.
- */
- public void setAssemblyName(String assemblyName) {
- this.assemblyName = assemblyName;
- }
-
- /**
- * @return Type name.
- */
- public String getTypeName() {
- return typeName;
- }
-
- /**
- * @param typeName New type name.
- */
- public void setTypeName(String typeName) {
- this.typeName = typeName;
- }
-
- /**
- * @return Name mapper.
- */
- public String getNameMapper() {
- return nameMapper;
- }
-
- /**
- * @param nameMapper New name mapper.
- */
- public void setNameMapper(String nameMapper) {
- this.nameMapper = nameMapper;
- }
-
- /**
- * @return Id mapper.
- */
- public String getIdMapper() {
- return idMapper;
- }
-
- /**
- * @param idMapper New id mapper.
- */
- public void setIdMapper(String idMapper) {
- this.idMapper = idMapper;
- }
-
- /**
- * @return Serializer.
- */
- public String getSerializer() {
- return serializer;
- }
-
- /**
- * @param serializer New serializer.
- */
- public void setSerializer(String serializer) {
- this.serializer = serializer;
- }
-
- /**
- * Gets metadata enabled flag. See {@link #setMetadataEnabled(Boolean)} for more information.
- *
- * @return Metadata enabled flag.
- */
- public Boolean getMetadataEnabled() {
- return metadataEnabled;
- }
-
- /**
- * Sets metadata enabled flag.
- * <p />
- * When set to {@code null} default value taken from
- * {@link PlatformDotNetPortableConfiguration#isDefaultMetadataEnabled()} will be used.
- *
- * @param metadataEnabled New metadata enabled.
- */
- public void setMetadataEnabled(Boolean metadataEnabled) {
- this.metadataEnabled = metadataEnabled;
- }
-
- /**
- * @return Affinity key field name.
- */
- public String getAffinityKeyFieldName() {
- return affinityKeyFieldName;
- }
-
- /**
- * @param affinityKeyFieldName Affinity key field name.
- */
- public void setAffinityKeyFieldName(String affinityKeyFieldName) {
- this.affinityKeyFieldName = affinityKeyFieldName;
- }
-
- /**
- * Gets keep deserialized flag.
- *
- * @return Flag indicates whether to cache deserialized value in IGridPortableObject.
- * @deprecated Use {@link #getKeepDeserialized()} instead.
- */
- @Deprecated
- @Nullable public Boolean isKeepDeserialized() {
- return keepDeserialized;
- }
-
- /**
- * Gets keep deserialized flag. See {@link #setKeepDeserialized(Boolean)} for more information.
- *
- * @return Flag indicates whether to cache deserialized value in IGridPortableObject.
- */
- @Nullable public Boolean getKeepDeserialized() {
- return keepDeserialized;
- }
-
- /**
- * Sets keep deserialized flag.
- * <p />
- * When set to {@code null} default value taken from
- * {@link PlatformDotNetPortableConfiguration#isDefaultKeepDeserialized()} will be used.
- *
- * @param keepDeserialized Keep deserialized flag.
- */
- public void setKeepDeserialized(@Nullable Boolean keepDeserialized) {
- this.keepDeserialized = keepDeserialized;
- }
-
- /** {@inheritDoc} */
- @Override public void writePortable(PortableWriter writer) throws PortableException {
- PortableRawWriter rawWriter = writer.rawWriter();
-
- rawWriter.writeString(assemblyName);
- rawWriter.writeString(typeName);
- rawWriter.writeString(nameMapper);
- rawWriter.writeString(idMapper);
- rawWriter.writeString(serializer);
- rawWriter.writeString(affinityKeyFieldName);
- rawWriter.writeObject(metadataEnabled);
- rawWriter.writeObject(keepDeserialized);
- }
-
- /** {@inheritDoc} */
- @Override public void readPortable(PortableReader reader) throws PortableException {
- PortableRawReader rawReader = reader.rawReader();
-
- assemblyName = rawReader.readString();
- typeName = rawReader.readString();
- nameMapper = rawReader.readString();
- idMapper = rawReader.readString();
- serializer = rawReader.readString();
- affinityKeyFieldName = rawReader.readString();
- metadataEnabled = rawReader.readObject();
- keepDeserialized = rawReader.readObject();
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(PlatformDotNetPortableTypeConfiguration.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Apache.Ignite.Core.Tests.TestDll.csproj
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Apache.Ignite.Core.Tests.TestDll.csproj b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Apache.Ignite.Core.Tests.TestDll.csproj
new file mode 100644
index 0000000..f213b34
--- /dev/null
+++ b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Apache.Ignite.Core.Tests.TestDll.csproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{F4A69E2D-908E-4F0F-A794-84D508D60E5F}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Apache.Ignite.Core.Tests.TestDll</RootNamespace>
+ <AssemblyName>Apache.Ignite.Core.Tests.TestDll</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+ <PlatformTarget>x86</PlatformTarget>
+ <OutputPath>bin\x86\Debug\</OutputPath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+ <PlatformTarget>x86</PlatformTarget>
+ <OutputPath>bin\x86\Release\</OutputPath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <PlatformTarget>x64</PlatformTarget>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <PlatformTarget>x64</PlatformTarget>
+ <OutputPath>bin\x64\Release\</OutputPath>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="TestClass.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..2401c25
--- /dev/null
+++ b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Apache.Ignite.Core.Tests.TestDll")]
+[assembly: AssemblyDescription("Apache Ignite .NET Core Tests Testing Library")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("Apache.Ignite.Core.Tests.TestDll")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("086e5873-013b-4ffb-93d2-d67881f75bc2")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/TestClass.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/TestClass.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/TestClass.cs
new file mode 100644
index 0000000..1199f2c
--- /dev/null
+++ b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests.TestDll/TestClass.cs
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.TestDll
+{
+ /// <summary>
+ /// Test class.
+ /// </summary>
+ public class TestClass
+ {
+ /// <summary>
+ /// Gets or sets the Id.
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// Gets or sets the Name.
+ /// </summary>
+ public string Name { get; set; }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5cec202c/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index 418f467..62440a1 100644
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@ -18,20 +18,27 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\x64\Debug\</OutputPath>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DefineConstants>DEBUG</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\x64\Release\</OutputPath>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\x86\Debug\</OutputPath>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DefineConstants>DEBUG</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\x86\Release\</OutputPath>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="Microsoft.CSharp" />
<Reference Include="nunit-console-runner">
<HintPath>..\libs\nunit-console-runner.dll</HintPath>
</Reference>
@@ -41,18 +48,174 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.XML" />
</ItemGroup>
<ItemGroup>
- <Compile Include="IgnitionTest.cs" />
+ <Compile Include="Cache\CacheDynamicStartTest.cs" />
+ <Compile Include="Cache\CacheTestAsyncWrapper.cs" />
+ <Compile Include="Cache\CacheAbstractTest.cs" />
+ <Compile Include="Cache\CacheAffinityTest.cs" />
+ <Compile Include="Cache\CacheEntryTest.cs" />
+ <Compile Include="Cache\CacheForkedTest.cs" />
+ <Compile Include="Cache\CacheLocalAtomicTest.cs" />
+ <Compile Include="Cache\CacheLocalTest.cs" />
+ <Compile Include="Cache\CachePartitionedAtomicNearEnabledTest.cs" />
+ <Compile Include="Cache\CachePartitionedAtomicTest.cs" />
+ <Compile Include="Cache\CachePartitionedNearEnabledTest.cs" />
+ <Compile Include="Cache\CachePartitionedTest.cs" />
+ <Compile Include="Cache\CacheReplicatedAtomicTest.cs" />
+ <Compile Include="Cache\CacheReplicatedTest.cs" />
+ <Compile Include="Cache\Query\Continuous\ContinuousQueryAbstractTest.cs" />
+ <Compile Include="Cache\Query\Continuous\ContinuousQueryAtomicBackupTest.cs" />
+ <Compile Include="Cache\Query\Continuous\ContinuousQueryAtomicNoBackupTest.cs" />
+ <Compile Include="Cache\Query\Continuous\ContinuousQueryNoBackupAbstractTest.cs" />
+ <Compile Include="Cache\Query\Continuous\ContinuousQueryTransactionalBackupTest.cs" />
+ <Compile Include="Cache\Query\Continuous\ContinuousQueryTransactionalNoBackupTest.cs" />
+ <Compile Include="Cache\Query\CacheQueriesTest.cs" />
+ <Compile Include="Cache\Store\CacheParallelLoadStoreTest.cs" />
+ <Compile Include="Cache\Store\CacheStoreSessionTest.cs" />
+ <Compile Include="Cache\Store\CacheStoreTest.cs" />
+ <Compile Include="Cache\Store\CacheTestParallelLoadStore.cs" />
+ <Compile Include="Cache\Store\CacheTestStore.cs" />
+ <Compile Include="Compute\Forked\ForkedPortableClosureTaskTest.cs" />
+ <Compile Include="Compute\Forked\ForkedResourceTaskTest.cs" />
+ <Compile Include="Compute\Forked\ForkedSerializableClosureTaskTest.cs" />
+ <Compile Include="Compute\Forked\ForkedTaskAdapterTest.cs" />
+ <Compile Include="Compute\AbstractTaskTest.cs" />
+ <Compile Include="Compute\ClosureTaskTest.cs" />
+ <Compile Include="Compute\ComputeApiTest.cs" />
+ <Compile Include="Compute\ComputeMultithreadedTest.cs" />
+ <Compile Include="Compute\IgniteExceptionTaskSelfTest.cs" />
+ <Compile Include="Compute\FailoverTaskSelfTest.cs" />
+ <Compile Include="Compute\PortableClosureTaskTest.cs" />
+ <Compile Include="Compute\PortableTaskTest.cs" />
+ <Compile Include="Compute\ResourceTaskTest.cs" />
+ <Compile Include="Compute\SerializableClosureTaskTest.cs" />
+ <Compile Include="Compute\TaskAdapterTest.cs" />
+ <Compile Include="Compute\TaskResultTest.cs" />
+ <Compile Include="Dataload\DataStreamerTest.cs" />
+ <Compile Include="EventsTest.cs" />
+ <Compile Include="ExceptionsTest.cs" />
+ <Compile Include="ExecutableTest.cs" />
+ <Compile Include="FutureTest.cs" />
+ <Compile Include="LifecycleTest.cs" />
+ <Compile Include="LoadDllTest.cs" />
+ <Compile Include="IgniteManagerTest.cs" />
+ <Compile Include="MarshallerTest.cs" />
+ <Compile Include="MessagingTest.cs" />
+ <Compile Include="PortableConfigurationTest.cs" />
+ <Compile Include="SerializationTest.cs" />
+ <Compile Include="IgniteStartStopTest.cs" />
+ <Compile Include="TestUtils.cs" />
<Compile Include="Memory\InteropMemoryTest.cs" />
+ <Compile Include="Portable\PortableApiSelfTest.cs" />
+ <Compile Include="Portable\PortableSelfTest.cs" />
+ <Compile Include="Process\IgniteProcess.cs" />
+ <Compile Include="Process\IgniteProcessConsoleOutputReader.cs" />
+ <Compile Include="Process\IIgniteProcessOutputReader.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Query\ImplicitPortablePerson.cs" />
+ <Compile Include="Query\NoDefPortablePerson.cs" />
+ <Compile Include="Query\PortablePerson.cs" />
+ <Compile Include="Services\ServicesTest.cs" />
+ <Compile Include="Services\ServicesTestAsync.cs" />
+ <Compile Include="Services\ServiceProxyTest.cs" />
+ <Compile Include="Services\ServicesAsyncWrapper.cs" />
<Compile Include="TestRunner.cs" />
+ <Compile Include="TypeResolverTest.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\main\dotnet\Apache.Ignite.Core\Apache.Ignite.Core.csproj">
<Project>{4CD2F726-7E2B-46C4-A5BA-057BB82EECB6}</Project>
<Name>Apache.Ignite.Core</Name>
</ProjectReference>
+ <ProjectReference Include="..\Apache.Ignite.Core.Tests.TestDll\Apache.Ignite.Core.Tests.TestDll.csproj">
+ <Project>{F4A69E2D-908E-4F0F-A794-84D508D60E5F}</Project>
+ <Name>Apache.Ignite.Core.Tests.TestDll</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="Config\cache-portables.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\cache-query-continuous.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\cache-query.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Cache\Store\cache-store-session.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Compute\compute-grid1.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Compute\compute-grid2.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Compute\compute-grid3.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Compute\compute-standalone.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Dynamic\dynamic-client.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Dynamic\dynamic-data-no-cfg.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Dynamic\dynamic-data.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Lifecycle\lifecycle-beans.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Lifecycle\lifecycle-no-beans.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\marshaller-default.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\marshaller-invalid.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\marshaller-portable.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\native-client-test-cache-affinity.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\native-client-test-cache-parallel-store.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\native-client-test-cache-portables.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\native-client-test-cache-store.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\native-client-test-cache.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\portable.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\start-test-grid1.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\start-test-grid2.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\start-test-grid3.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="Config\Ignite.exe.config.test">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.