You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by na...@apache.org on 2021/04/07 07:23:54 UTC

[ignite-extensions] branch ignite-spring-tx-ext-1.0.0 created (now d8af9fc)

This is an automated email from the ASF dual-hosted git repository.

namelchev pushed a change to branch ignite-spring-tx-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


      at d8af9fc  IGNITE-14480 Add release notes for performance-statistics-ext, spring-data*-ext, spring-tx-ext extensions 1.0.0 version (#54)

This branch includes the following new commits:

     new aa22e7e  IGNITE-14434 Adds examples of using thin client with spring-tx-ext. (#50)
     new ff16eac  IGNITE-14456 Change copyrights to 2021 (#53)
     new d8af9fc  IGNITE-14480 Add release notes for performance-statistics-ext, spring-data*-ext, spring-tx-ext extensions 1.0.0 version (#54)

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[ignite-extensions] 01/03: IGNITE-14434 Adds examples of using thin client with spring-tx-ext. (#50)

Posted by na...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

namelchev pushed a commit to branch ignite-spring-tx-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git

commit aa22e7ec8af60a195d0bdb3695272409a7a456bd
Author: Mikhail Petrov <32...@users.noreply.github.com>
AuthorDate: Tue Mar 30 09:41:03 2021 +0300

    IGNITE-14434 Adds examples of using thin client with spring-tx-ext. (#50)
    
    (cherry picked from commit ae950fd4735173f122758e045611034747b4056b)
---
 .../examples/IgniteClientTransactionalService.java | 135 +++++++++++++++++++++
 .../spring/examples/SpringTransactionExample.java  | 128 +++++++++++++++++++
 modules/spring-tx-ext/pom.xml                      |  48 ++++++++
 3 files changed, 311 insertions(+)

diff --git a/modules/spring-tx-ext/examples/main/java/org/apache/ignite/transactions/spring/examples/IgniteClientTransactionalService.java b/modules/spring-tx-ext/examples/main/java/org/apache/ignite/transactions/spring/examples/IgniteClientTransactionalService.java
new file mode 100644
index 0000000..1d37301
--- /dev/null
+++ b/modules/spring-tx-ext/examples/main/java/org/apache/ignite/transactions/spring/examples/IgniteClientTransactionalService.java
@@ -0,0 +1,135 @@
+/*
+ * 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.transactions.spring.examples;
+
+import java.io.Serializable;
+import java.util.Objects;
+import org.apache.ignite.client.ClientCache;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import static org.springframework.transaction.annotation.Isolation.READ_COMMITTED;
+import static org.springframework.transaction.annotation.Isolation.REPEATABLE_READ;
+
+/**
+ * Represents Spring Service that uses Ignite thin client to access Ignite cluster and perform cache transactional
+ * operations.
+ */
+@Service
+public class IgniteClientTransactionalService {
+    /** Ignite cache representation that uses thin client to communicate with Ignite cluster. */
+    private ClientCache<String, Account> cache;
+
+    /**
+     * The emitters transfer the specified funds to the broker. When both funds are received, they are transferred to
+     * the recipient, excluding the fee which the broker keeps for himself. If an error occurs at any step of this
+     * operation, it is rolled back.
+     */
+    @Transactional(isolation = REPEATABLE_READ)
+    public void transferFundsWithBroker(
+        String firstEmitter,
+        String secondEmitter,
+        String recipient,
+        String broker,
+        int funds,
+        int fee
+    ) {
+        transferFunds(firstEmitter, broker, funds);
+
+        transferFunds(secondEmitter, broker, funds);
+
+        transferFunds(broker, recipient, funds * 2 - fee);
+    }
+
+    /** Transfers funds between two accounts that belong to users with the specified names. */
+    @Transactional(isolation = REPEATABLE_READ)
+    public void transferFunds(String emitter, String recipient, int funds) {
+        Account emitterAcc = cache.get(emitter);
+        Account recipientAcc = cache.get(recipient);
+
+        if (emitterAcc.balance < funds)
+            throw new RuntimeException("Insufficient funds in " + emitter + "'s account");
+
+        emitterAcc.balance -= funds;
+        recipientAcc.balance += funds;
+
+        saveAccount(emitterAcc);
+        saveAccount(recipientAcc);
+
+        System.out.println(">>> " + emitter + " transfers " + funds + " coins to " + recipient);
+    }
+
+    /** Gets current balance of the account with the specified name.*/
+    @Transactional(isolation = READ_COMMITTED)
+    public int getBalance(String login) {
+        return cache.get(login).balance;
+    }
+
+    /** Creates account with the specified user login and balance. */
+    public Account createAccount(String login, int balance) {
+        Account acc = new Account(login);
+
+        acc.balance = balance;
+
+        cache.put(login, acc);
+
+        return acc;
+    }
+
+    /** Sets an Ignite cache representation that uses thin client to communicate with the Ignite cluster. */
+    public void setCache(ClientCache<String, Account> cache) {
+        this.cache = cache;
+    }
+
+    /** Puts the specified account into the cache. */
+    private void saveAccount(Account acc) {
+        cache.put(acc.login, acc);
+    }
+
+    /** Represents the user account. */
+    private static class Account implements Serializable {
+        /** Account owner login. */
+        private final String login;
+
+        /** Balance. */
+        private int balance;
+
+        /** Creates an account with the specified owner name. */
+        public Account(String login) {
+            this.login = login;
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean equals(Object other) {
+            if (this == other)
+                return true;
+
+            if (other == null || getClass() != other.getClass())
+                return false;
+
+            Account acc = (Account)other;
+
+            return balance == acc.balance && Objects.equals(login, acc.login);
+        }
+
+        /** {@inheritDoc} */
+        @Override public int hashCode() {
+            return Objects.hash(login, balance);
+        }
+    }
+}
diff --git a/modules/spring-tx-ext/examples/main/java/org/apache/ignite/transactions/spring/examples/SpringTransactionExample.java b/modules/spring-tx-ext/examples/main/java/org/apache/ignite/transactions/spring/examples/SpringTransactionExample.java
new file mode 100644
index 0000000..e534334
--- /dev/null
+++ b/modules/spring-tx-ext/examples/main/java/org/apache/ignite/transactions/spring/examples/SpringTransactionExample.java
@@ -0,0 +1,128 @@
+/*
+ * 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.transactions.spring.examples;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.client.ClientCacheConfiguration;
+import org.apache.ignite.client.IgniteClient;
+import org.apache.ignite.configuration.ClientConfiguration;
+import org.apache.ignite.transactions.spring.IgniteClientSpringTransactionManager;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static org.apache.ignite.configuration.ClientConnectorConfiguration.DFLT_PORT;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+
+/** Represents example of using Ignite Spring Transactions integration with the thin client. */
+public class SpringTransactionExample {
+    /** Ignite cache name. */
+    public static final String ACCOUNT_CACHE_NAME = "example-account-cache";
+
+    /** */
+    public static void main(String[] args) {
+        try (
+            Ignite ignored = Ignition.start(); // Starts an Ignite cluster consisting of one server node.
+            AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext()
+        ) {
+            ctx.register(SpringApplicationConfiguration.class);
+            ctx.refresh();
+
+            IgniteClientTransactionalService svc = ctx.getBean(IgniteClientTransactionalService.class);
+
+            svc.createAccount("Bob", 1000);
+            svc.createAccount("Alice", 100);
+            svc.createAccount("Eve", 0);
+            svc.createAccount("Dave", 0);
+
+            doFundTransferWithBroker(svc, "Bob", "Alice", "Eve", "Dave", 1000, 10);
+
+            doFundTransferWithBroker(svc, "Bob", "Alice", "Eve", "Dave", 100, 10);
+        }
+    }
+
+    /** Delegates funds transfer operation to {@link IgniteClientTransactionalService} and logs the result. */
+    private static void doFundTransferWithBroker(
+        IgniteClientTransactionalService svc,
+        String firstEmitter,
+        String secondEmitter,
+        String recipient,
+        String broker,
+        int cash,
+        int fee
+    ) {
+        System.out.println("+--------------Fund transfer operation--------------+");
+
+        try {
+            svc.transferFundsWithBroker(firstEmitter, secondEmitter, recipient, broker, cash, fee);
+
+            System.out.println(">>> Operation completed successfully");
+        }
+        catch (RuntimeException e) {
+            System.out.println(">>> Operation was rolled back [error = " + e.getMessage() + ']');
+        }
+
+        System.out.println("\n>>> Account statuses:");
+
+        System.out.println(">>> " + firstEmitter + " balance: " + svc.getBalance(firstEmitter));
+        System.out.println(">>> " + secondEmitter + " balance: " + svc.getBalance(secondEmitter));
+        System.out.println(">>> " + recipient + " balance: " + svc.getBalance(recipient));
+        System.out.println(">>> " + broker + " balance: " + svc.getBalance(broker));
+        System.out.println("+---------------------------------------------------+");
+    }
+
+    /** Spring application configuration. */
+    @Configuration
+    @EnableTransactionManagement
+    public static class SpringApplicationConfiguration {
+        /**
+         * Ignite thin client instance that will be used to both initialize
+         * {@link IgniteClientSpringTransactionManager} and perform transactional cache operations.
+         */
+        @Bean
+        public IgniteClient igniteClient() {
+            return Ignition.startClient(new ClientConfiguration().setAddresses("127.0.0.1:" + DFLT_PORT));
+        }
+
+        /** Ignite implementation of the Spring Transactions manager interface. */
+        @Bean
+        public IgniteClientSpringTransactionManager transactionManager(IgniteClient cli) {
+            IgniteClientSpringTransactionManager mgr = new IgniteClientSpringTransactionManager();
+
+            mgr.setClientInstance(cli);
+            mgr.setTransactionConcurrency(PESSIMISTIC);
+
+            return mgr;
+        }
+
+        /** Service instance that uses declarative transaction management when working with the Ignite cache. */
+        @Bean
+        public IgniteClientTransactionalService transactionalService(IgniteClient cli) {
+            IgniteClientTransactionalService svc = new IgniteClientTransactionalService();
+
+            svc.setCache(cli.getOrCreateCache(new ClientCacheConfiguration()
+                .setName(ACCOUNT_CACHE_NAME)
+                .setAtomicityMode(TRANSACTIONAL)));
+
+            return svc;
+        }
+    }
+}
diff --git a/modules/spring-tx-ext/pom.xml b/modules/spring-tx-ext/pom.xml
index adfe9ea..6bc4195 100644
--- a/modules/spring-tx-ext/pom.xml
+++ b/modules/spring-tx-ext/pom.xml
@@ -88,4 +88,52 @@
             </testResource>
         </testResources>
     </build>
+
+    <profiles>
+        <profile>
+            <id>examples</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <configuration>
+                                    <sources>
+                                        <source>examples/main/java</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+
+            <dependencies>
+                <dependency>
+                    <groupId>org.apache.ignite</groupId>
+                    <artifactId>ignite-spring</artifactId>
+                    <version>${ignite.version}</version>
+                </dependency>
+
+                <dependency>
+                    <groupId>org.apache.ignite</groupId>
+                    <artifactId>ignite-core</artifactId>
+                    <version>${ignite.version}</version>
+                </dependency>
+
+                <dependency>
+                    <groupId>org.springframework</groupId>
+                    <artifactId>spring-tx</artifactId>
+                    <version>${spring.version}</version>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
 </project>

[ignite-extensions] 02/03: IGNITE-14456 Change copyrights to 2021 (#53)

Posted by na...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

namelchev pushed a commit to branch ignite-spring-tx-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git

commit ff16eacfeb263537a39a0611617123f8d48735c4
Author: Nikita Amelchev <ns...@gmail.com>
AuthorDate: Thu Apr 1 14:03:32 2021 +0300

    IGNITE-14456 Change copyrights to 2021 (#53)
    
    (cherry picked from commit 800ed9d1676bd49423915dc75dd2acf2e3ed9bdf)
---
 NOTICE                                                     |  2 +-
 .../springdata20/repository/query/DeclaredQuery.java       | 12 +++++++-----
 .../springdata20/repository/query/EmptyDeclaredQuery.java  | 12 +++++++-----
 .../repository/query/ExpressionBasedStringQuery.java       | 12 +++++++-----
 .../ignite/springdata20/repository/query/QueryUtils.java   | 12 +++++++-----
 .../ignite/springdata20/repository/query/StringQuery.java  | 12 +++++++-----
 .../springdata20/repository/query/spel/SpelEvaluator.java  | 14 ++++++++------
 .../repository/query/spel/SpelQueryContext.java            | 14 ++++++++------
 .../springdata22/repository/query/DeclaredQuery.java       | 12 +++++++-----
 .../springdata22/repository/query/EmptyDeclaredQuery.java  | 12 +++++++-----
 .../repository/query/ExpressionBasedStringQuery.java       | 12 +++++++-----
 .../ignite/springdata22/repository/query/QueryUtils.java   | 12 +++++++-----
 .../ignite/springdata22/repository/query/StringQuery.java  | 12 +++++++-----
 13 files changed, 87 insertions(+), 63 deletions(-)

diff --git a/NOTICE b/NOTICE
index 84204dd..f7eb3cb 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Ignite Extensions
-Copyright 2019 The Apache Software Foundation
+Copyright 2021 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/DeclaredQuery.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/DeclaredQuery.java
index 297d35c..fa5043d 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/DeclaredQuery.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/DeclaredQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2018-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query;
 
 import java.util.List;
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/EmptyDeclaredQuery.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/EmptyDeclaredQuery.java
index 34fdb8c..4714f38 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/EmptyDeclaredQuery.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/EmptyDeclaredQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2018-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query;
 
 import java.util.Collections;
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/ExpressionBasedStringQuery.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/ExpressionBasedStringQuery.java
index b7559a5..b1115ae 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/ExpressionBasedStringQuery.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/ExpressionBasedStringQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2013-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query;
 
 import java.util.regex.Pattern;
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/QueryUtils.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/QueryUtils.java
index c586770..a44ae6c 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/QueryUtils.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/QueryUtils.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2008-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query;
 
 import java.util.HashSet;
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/StringQuery.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/StringQuery.java
index 7280276..40752b5 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/StringQuery.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/StringQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2013-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query;
 
 import java.lang.reflect.Array;
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelEvaluator.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelEvaluator.java
index 1c30673..c442b68 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelEvaluator.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelEvaluator.java
@@ -1,11 +1,12 @@
 /*
- * Copyright 2018-2019 the original author or authors.
+ * 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
  *
- * Licensed 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
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
+ *      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,
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query.spel;
 
 import java.util.Map;
diff --git a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelQueryContext.java b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelQueryContext.java
index 40de67a..44bfec8 100644
--- a/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelQueryContext.java
+++ b/modules/spring-data-2.0-ext/src/main/java/org/apache/ignite/springdata20/repository/query/spel/SpelQueryContext.java
@@ -1,11 +1,12 @@
 /*
- * Copyright 2018-2019 the original author or authors.
+ * 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
  *
- * Licensed 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
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
+ *      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,
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata20.repository.query.spel;
 
 import java.util.ArrayList;
diff --git a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/DeclaredQuery.java b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/DeclaredQuery.java
index 74ab2cc..dad35e2 100644
--- a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/DeclaredQuery.java
+++ b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/DeclaredQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2018-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata22.repository.query;
 
 import java.util.List;
diff --git a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/EmptyDeclaredQuery.java b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/EmptyDeclaredQuery.java
index 7803537..6f697a2 100644
--- a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/EmptyDeclaredQuery.java
+++ b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/EmptyDeclaredQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2018-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata22.repository.query;
 
 import java.util.Collections;
diff --git a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/ExpressionBasedStringQuery.java b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/ExpressionBasedStringQuery.java
index bdbd81d..9279da7 100644
--- a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/ExpressionBasedStringQuery.java
+++ b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/ExpressionBasedStringQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2013-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata22.repository.query;
 
 import java.util.regex.Pattern;
diff --git a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/QueryUtils.java b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/QueryUtils.java
index 711d297..90cc292 100644
--- a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/QueryUtils.java
+++ b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/QueryUtils.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2008-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata22.repository.query;
 
 import java.util.HashSet;
diff --git a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/StringQuery.java b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/StringQuery.java
index 8957e69..01af166 100644
--- a/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/StringQuery.java
+++ b/modules/spring-data-2.2-ext/src/main/java/org/apache/ignite/springdata22/repository/query/StringQuery.java
@@ -1,9 +1,10 @@
 /*
- * Copyright 2013-2019 the original author or authors.
- *
- * Licensed 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
+ * 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
  *
@@ -13,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.springdata22.repository.query;
 
 import java.lang.reflect.Array;

[ignite-extensions] 03/03: IGNITE-14480 Add release notes for performance-statistics-ext, spring-data*-ext, spring-tx-ext extensions 1.0.0 version (#54)

Posted by na...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

namelchev pushed a commit to branch ignite-spring-tx-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git

commit d8af9fcd2ebbf268331ba390c14e259a067de745
Author: Nikita Amelchev <ns...@gmail.com>
AuthorDate: Mon Apr 5 19:32:38 2021 +0300

    IGNITE-14480 Add release notes for performance-statistics-ext, spring-data*-ext, spring-tx-ext extensions 1.0.0 version (#54)
    
    (cherry picked from commit c8de80ee14d1fb76d6cbb0b18513bb70b499c3cb)
---
 RELEASE_NOTES.txt | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 8451780..22f8d66 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,6 +1,34 @@
 Apache Ignite Extensions Release Notes
 ===========================
 
+Apache Ignite Performance Statistics Module 1.0
+-------------------------------------
+
+* Added the tool to build the cluster performance report
+* Added the utility to print performance statistics operations to a console or to a file in JSON format
+
+
+Apache Ignite Spring Data Modules 1.0
+-------------------------------------
+
+* Added the ability to connect to the Ignite cluster through the Ignite thin client for the Spring Data extensions
+* Fixed closing of Spring Data Ignite resources after destroying the Spring context if they were automatically started by the manager
+
+The following integrations were migrated to the Apache Ignite Extensions repository:
+* Spring Data 2.2 extension
+* Spring Data 2.0 extension
+* Spring Data extension
+
+
+Apache Ignite Spring Transactions Module 1.0
+-------------------------------------
+
+* Added the ability to connect to the Ignite cluster through the Ignite thin client
+
+The following integration was migrated to the Apache Ignite Extensions repository:
+* Spring Transactions extension
+
+
 Apache Ignite Streamer Extension Modules 1.0
 -------------------------------------
 The following integrations were migrated the Apache Ignite Extensions repository: