New Compatibility Testing Framework module in the project

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

New Compatibility Testing Framework module in the project

daradurvs
Hi, Igniters!

I would like to announce new Compatibility Testing Framework module in
the project.

This module has been recently included in the project [1].

Framework provides an opportunity to start working with Ignite
instances of previously released versions.

The entire module is built on top of the Ignite Testing Framework,
especially on the MiltiJVM-mode classes. There is a class
IgniteCompatibilityAbstractTest that provides methods to start Ignite
nodes with versions which have been previously released in the Maven
repository in separate JVM and allows them to join topology. Framework
looking for artifacts of a specific version in the Maven local
repository, if they don’t exist there, they will be downloaded and
stored via Maven.

The main implemented API:
startGrid(name, version, configurationClosure);
startGrid(name, version, configurationClosure, postStartupClosure);

You can simply specify a version of Ignite, which you want to start,
define the configuration in the configurationClosure and set the
actions on the started node in the postStartupClosure. It’s very easy
to use it for writing unit tests, here is a simple example [2] which
demonstrates the main functional.

I hope this framework helps us to make our project even better.

I want to thank Anton Vinogradov for his help with API design and
Dmitriy Pavlov for sharing first-time user experience [3] [4].


[1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to
test compatibility with old releases
[2] https://github.com/apache/ignite/blob/master/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/DummyPersistenceCompatibilityTest.java
[3] http://apache-ignite-developers.2346864.n4.nabble.com/Binary-compatibility-of-persistent-storage-tp22419p22913.html
[4] https://issues.apache.org/jira/browse/IGNITE-6285 - Enhance
persistent store paths on start

--
Best Regards, Vyacheslav D.
Reply | Threaded
Open this post in threaded view
|

Re: New Compatibility Testing Framework module in the project

Dmitriy Pavlov
Hi Vyacheslav , Igniters,

I hope you don't mind I copied this description into wiki (new page):
https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Tests+How+To

Hope this helps new community members to easily find the info.

Sincerely,
Dmitriy Pavlov

вт, 17 окт. 2017 г. в 18:17, Vyacheslav Daradur <[hidden email]>:

> Hi, Igniters!
>
> I would like to announce new Compatibility Testing Framework module in
> the project.
>
> This module has been recently included in the project [1].
>
> Framework provides an opportunity to start working with Ignite
> instances of previously released versions.
>
> The entire module is built on top of the Ignite Testing Framework,
> especially on the MiltiJVM-mode classes. There is a class
> IgniteCompatibilityAbstractTest that provides methods to start Ignite
> nodes with versions which have been previously released in the Maven
> repository in separate JVM and allows them to join topology. Framework
> looking for artifacts of a specific version in the Maven local
> repository, if they don’t exist there, they will be downloaded and
> stored via Maven.
>
> The main implemented API:
> startGrid(name, version, configurationClosure);
> startGrid(name, version, configurationClosure, postStartupClosure);
>
> You can simply specify a version of Ignite, which you want to start,
> define the configuration in the configurationClosure and set the
> actions on the started node in the postStartupClosure. It’s very easy
> to use it for writing unit tests, here is a simple example [2] which
> demonstrates the main functional.
>
> I hope this framework helps us to make our project even better.
>
> I want to thank Anton Vinogradov for his help with API design and
> Dmitriy Pavlov for sharing first-time user experience [3] [4].
>
>
> [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to
> test compatibility with old releases
> [2]
> https://github.com/apache/ignite/blob/master/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/DummyPersistenceCompatibilityTest.java
> [3]
> http://apache-ignite-developers.2346864.n4.nabble.com/Binary-compatibility-of-persistent-storage-tp22419p22913.html
> [4] https://issues.apache.org/jira/browse/IGNITE-6285 - Enhance
> persistent store paths on start
>
> --
> Best Regards, Vyacheslav D.
>
Reply | Threaded
Open this post in threaded view
|

Re: New Compatibility Testing Framework module in the project

alexzaitzev
Thanks, Dmitry, but why wiki and not readme.io[1]? It has a section "Test and benchmarking", which suits well for such information.

I thought, that wiki is deprecated source of documentation. Correct me if I am wrong.

[1] https://apacheignite.readme.io/docs

27.10.2017, 20:29, "Dmitry Pavlov" <[hidden email]>:

> Hi Vyacheslav , Igniters,
>
> I hope you don't mind I copied this description into wiki (new page):
> https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Tests+How+To
>
> Hope this helps new community members to easily find the info.
>
> Sincerely,
> Dmitriy Pavlov
>
> вт, 17 окт. 2017 г. в 18:17, Vyacheslav Daradur <[hidden email]>:
>
>>  Hi, Igniters!
>>
>>  I would like to announce new Compatibility Testing Framework module in
>>  the project.
>>
>>  This module has been recently included in the project [1].
>>
>>  Framework provides an opportunity to start working with Ignite
>>  instances of previously released versions.
>>
>>  The entire module is built on top of the Ignite Testing Framework,
>>  especially on the MiltiJVM-mode classes. There is a class
>>  IgniteCompatibilityAbstractTest that provides methods to start Ignite
>>  nodes with versions which have been previously released in the Maven
>>  repository in separate JVM and allows them to join topology. Framework
>>  looking for artifacts of a specific version in the Maven local
>>  repository, if they don’t exist there, they will be downloaded and
>>  stored via Maven.
>>
>>  The main implemented API:
>>  startGrid(name, version, configurationClosure);
>>  startGrid(name, version, configurationClosure, postStartupClosure);
>>
>>  You can simply specify a version of Ignite, which you want to start,
>>  define the configuration in the configurationClosure and set the
>>  actions on the started node in the postStartupClosure. It’s very easy
>>  to use it for writing unit tests, here is a simple example [2] which
>>  demonstrates the main functional.
>>
>>  I hope this framework helps us to make our project even better.
>>
>>  I want to thank Anton Vinogradov for his help with API design and
>>  Dmitriy Pavlov for sharing first-time user experience [3] [4].
>>
>>  [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to
>>  test compatibility with old releases
>>  [2]
>>  https://github.com/apache/ignite/blob/master/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/DummyPersistenceCompatibilityTest.java
>>  [3]
>>  http://apache-ignite-developers.2346864.n4.nabble.com/Binary-compatibility-of-persistent-storage-tp22419p22913.html
>>  [4] https://issues.apache.org/jira/browse/IGNITE-6285 - Enhance
>>  persistent store paths on start
>>
>>  --
>>  Best Regards, Vyacheslav D.
Reply | Threaded
Open this post in threaded view
|

Re: New Compatibility Testing Framework module in the project

Dmitriy Pavlov
Hi Aleksei,

Wiki in apache Ignite is used for design documents, Ignite Enhancement
Proposals (IEPs), introductory for ignite developers, etc, but not for
documentation.

Readme.io is official Ignite documentation for ignite users.

Recent created page describe how Ignite developer can test compatibility
(mostly if Persistent Store enabled) using testing framework
(GridAbstractTest/GridCommonAbstractTest). These classes are not used by
end users.

Sincerely,
Dmitriy Pavlov

пн, 30 окт. 2017 г. в 10:06, Aleksei Zaitsev <[hidden email]>:

> Thanks, Dmitry, but why wiki and not readme.io[1]? It has a section "Test
> and benchmarking", which suits well for such information.
>
> I thought, that wiki is deprecated source of documentation. Correct me if
> I am wrong.
>
> [1] https://apacheignite.readme.io/docs
>
> 27.10.2017, 20:29, "Dmitry Pavlov" <[hidden email]>:
> > Hi Vyacheslav , Igniters,
> >
> > I hope you don't mind I copied this description into wiki (new page):
> > https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Tests+How+To
> >
> > Hope this helps new community members to easily find the info.
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
> > вт, 17 окт. 2017 г. в 18:17, Vyacheslav Daradur <[hidden email]>:
> >
> >>  Hi, Igniters!
> >>
> >>  I would like to announce new Compatibility Testing Framework module in
> >>  the project.
> >>
> >>  This module has been recently included in the project [1].
> >>
> >>  Framework provides an opportunity to start working with Ignite
> >>  instances of previously released versions.
> >>
> >>  The entire module is built on top of the Ignite Testing Framework,
> >>  especially on the MiltiJVM-mode classes. There is a class
> >>  IgniteCompatibilityAbstractTest that provides methods to start Ignite
> >>  nodes with versions which have been previously released in the Maven
> >>  repository in separate JVM and allows them to join topology. Framework
> >>  looking for artifacts of a specific version in the Maven local
> >>  repository, if they don’t exist there, they will be downloaded and
> >>  stored via Maven.
> >>
> >>  The main implemented API:
> >>  startGrid(name, version, configurationClosure);
> >>  startGrid(name, version, configurationClosure, postStartupClosure);
> >>
> >>  You can simply specify a version of Ignite, which you want to start,
> >>  define the configuration in the configurationClosure and set the
> >>  actions on the started node in the postStartupClosure. It’s very easy
> >>  to use it for writing unit tests, here is a simple example [2] which
> >>  demonstrates the main functional.
> >>
> >>  I hope this framework helps us to make our project even better.
> >>
> >>  I want to thank Anton Vinogradov for his help with API design and
> >>  Dmitriy Pavlov for sharing first-time user experience [3] [4].
> >>
> >>  [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to
> >>  test compatibility with old releases
> >>  [2]
> >>
> https://github.com/apache/ignite/blob/master/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/DummyPersistenceCompatibilityTest.java
> >>  [3]
> >>
> http://apache-ignite-developers.2346864.n4.nabble.com/Binary-compatibility-of-persistent-storage-tp22419p22913.html
> >>  [4] https://issues.apache.org/jira/browse/IGNITE-6285 - Enhance
> >>  persistent store paths on start
> >>
> >>  --
> >>  Best Regards, Vyacheslav D.
>
Reply | Threaded
Open this post in threaded view
|

Re: New Compatibility Testing Framework module in the project

alexzaitzev
Thanks for explanation

30.10.2017, 08:43, "Dmitry Pavlov" <[hidden email]>:

> Hi Aleksei,
>
> Wiki in apache Ignite is used for design documents, Ignite Enhancement
> Proposals (IEPs), introductory for ignite developers, etc, but not for
> documentation.
>
> Readme.io is official Ignite documentation for ignite users.
>
> Recent created page describe how Ignite developer can test compatibility
> (mostly if Persistent Store enabled) using testing framework
> (GridAbstractTest/GridCommonAbstractTest). These classes are not used by
> end users.
>
> Sincerely,
> Dmitriy Pavlov
>
> пн, 30 окт. 2017 г. в 10:06, Aleksei Zaitsev <[hidden email]>:
>
>>  Thanks, Dmitry, but why wiki and not readme.io[1]? It has a section "Test
>>  and benchmarking", which suits well for such information.
>>
>>  I thought, that wiki is deprecated source of documentation. Correct me if
>>  I am wrong.
>>
>>  [1] https://apacheignite.readme.io/docs
>>
>>  27.10.2017, 20:29, "Dmitry Pavlov" <[hidden email]>:
>>  > Hi Vyacheslav , Igniters,
>>  >
>>  > I hope you don't mind I copied this description into wiki (new page):
>>  > https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Tests+How+To
>>  >
>>  > Hope this helps new community members to easily find the info.
>>  >
>>  > Sincerely,
>>  > Dmitriy Pavlov
>>  >
>>  > вт, 17 окт. 2017 г. в 18:17, Vyacheslav Daradur <[hidden email]>:
>>  >
>>  >> Hi, Igniters!
>>  >>
>>  >> I would like to announce new Compatibility Testing Framework module in
>>  >> the project.
>>  >>
>>  >> This module has been recently included in the project [1].
>>  >>
>>  >> Framework provides an opportunity to start working with Ignite
>>  >> instances of previously released versions.
>>  >>
>>  >> The entire module is built on top of the Ignite Testing Framework,
>>  >> especially on the MiltiJVM-mode classes. There is a class
>>  >> IgniteCompatibilityAbstractTest that provides methods to start Ignite
>>  >> nodes with versions which have been previously released in the Maven
>>  >> repository in separate JVM and allows them to join topology. Framework
>>  >> looking for artifacts of a specific version in the Maven local
>>  >> repository, if they don’t exist there, they will be downloaded and
>>  >> stored via Maven.
>>  >>
>>  >> The main implemented API:
>>  >> startGrid(name, version, configurationClosure);
>>  >> startGrid(name, version, configurationClosure, postStartupClosure);
>>  >>
>>  >> You can simply specify a version of Ignite, which you want to start,
>>  >> define the configuration in the configurationClosure and set the
>>  >> actions on the started node in the postStartupClosure. It’s very easy
>>  >> to use it for writing unit tests, here is a simple example [2] which
>>  >> demonstrates the main functional.
>>  >>
>>  >> I hope this framework helps us to make our project even better.
>>  >>
>>  >> I want to thank Anton Vinogradov for his help with API design and
>>  >> Dmitriy Pavlov for sharing first-time user experience [3] [4].
>>  >>
>>  >> [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to
>>  >> test compatibility with old releases
>>  >> [2]
>>  >>
>>  https://github.com/apache/ignite/blob/master/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/DummyPersistenceCompatibilityTest.java
>>  >> [3]
>>  >>
>>  http://apache-ignite-developers.2346864.n4.nabble.com/Binary-compatibility-of-persistent-storage-tp22419p22913.html
>>  >> [4] https://issues.apache.org/jira/browse/IGNITE-6285 - Enhance
>>  >> persistent store paths on start
>>  >>
>>  >> --
>>  >> Best Regards, Vyacheslav D.
Reply | Threaded
Open this post in threaded view
|

Re: New Compatibility Testing Framework module in the project

Dmitriy Pavlov
Hi Igniters,



recently I’ve made several updates in the framework.

- Now within the test, user can declare an extended classpath (e.g. use
ignite-indexing).

- Dumping classpath was added in case detached jvm node startup failed or
hangs. In second case stack trace is additionally dumped.

- Node join timeout was made configurable for long running post-startup
closures.



I also want to thank Eduard S.,  Alexey G. for review and Anton V. for
support.



Sincerely,

Dmitriy Pavlov


вт, 31 окт. 2017 г. в 10:51, Aleksei Zaitsev <[hidden email]>:

> Thanks for explanation
>
> 30.10.2017, 08:43, "Dmitry Pavlov" <[hidden email]>:
> > Hi Aleksei,
> >
> > Wiki in apache Ignite is used for design documents, Ignite Enhancement
> > Proposals (IEPs), introductory for ignite developers, etc, but not for
> > documentation.
> >
> > Readme.io is official Ignite documentation for ignite users.
> >
> > Recent created page describe how Ignite developer can test compatibility
> > (mostly if Persistent Store enabled) using testing framework
> > (GridAbstractTest/GridCommonAbstractTest). These classes are not used by
> > end users.
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
> > пн, 30 окт. 2017 г. в 10:06, Aleksei Zaitsev <[hidden email]>:
> >
> >>  Thanks, Dmitry, but why wiki and not readme.io[1]? It has a section
> "Test
> >>  and benchmarking", which suits well for such information.
> >>
> >>  I thought, that wiki is deprecated source of documentation. Correct me
> if
> >>  I am wrong.
> >>
> >>  [1] https://apacheignite.readme.io/docs
> >>
> >>  27.10.2017, 20:29, "Dmitry Pavlov" <[hidden email]>:
> >>  > Hi Vyacheslav , Igniters,
> >>  >
> >>  > I hope you don't mind I copied this description into wiki (new page):
> >>  >
> https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Tests+How+To
> >>  >
> >>  > Hope this helps new community members to easily find the info.
> >>  >
> >>  > Sincerely,
> >>  > Dmitriy Pavlov
> >>  >
> >>  > вт, 17 окт. 2017 г. в 18:17, Vyacheslav Daradur <[hidden email]
> >:
> >>  >
> >>  >> Hi, Igniters!
> >>  >>
> >>  >> I would like to announce new Compatibility Testing Framework module
> in
> >>  >> the project.
> >>  >>
> >>  >> This module has been recently included in the project [1].
> >>  >>
> >>  >> Framework provides an opportunity to start working with Ignite
> >>  >> instances of previously released versions.
> >>  >>
> >>  >> The entire module is built on top of the Ignite Testing Framework,
> >>  >> especially on the MiltiJVM-mode classes. There is a class
> >>  >> IgniteCompatibilityAbstractTest that provides methods to start
> Ignite
> >>  >> nodes with versions which have been previously released in the Maven
> >>  >> repository in separate JVM and allows them to join topology.
> Framework
> >>  >> looking for artifacts of a specific version in the Maven local
> >>  >> repository, if they don’t exist there, they will be downloaded and
> >>  >> stored via Maven.
> >>  >>
> >>  >> The main implemented API:
> >>  >> startGrid(name, version, configurationClosure);
> >>  >> startGrid(name, version, configurationClosure, postStartupClosure);
> >>  >>
> >>  >> You can simply specify a version of Ignite, which you want to start,
> >>  >> define the configuration in the configurationClosure and set the
> >>  >> actions on the started node in the postStartupClosure. It’s very
> easy
> >>  >> to use it for writing unit tests, here is a simple example [2] which
> >>  >> demonstrates the main functional.
> >>  >>
> >>  >> I hope this framework helps us to make our project even better.
> >>  >>
> >>  >> I want to thank Anton Vinogradov for his help with API design and
> >>  >> Dmitriy Pavlov for sharing first-time user experience [3] [4].
> >>  >>
> >>  >> [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide
> API to
> >>  >> test compatibility with old releases
> >>  >> [2]
> >>  >>
> >>
> https://github.com/apache/ignite/blob/master/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/DummyPersistenceCompatibilityTest.java
> >>  >> [3]
> >>  >>
> >>
> http://apache-ignite-developers.2346864.n4.nabble.com/Binary-compatibility-of-persistent-storage-tp22419p22913.html
> >>  >> [4] https://issues.apache.org/jira/browse/IGNITE-6285 - Enhance
> >>  >> persistent store paths on start
> >>  >>
> >>  >> --
> >>  >> Best Regards, Vyacheslav D.
>