[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2017-01-19 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15830003#comment-15830003
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


Merged to ignite-2.0

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2017-01-16 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15823996#comment-15823996
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


* Refactored plugin startup to use purely .NET mechanism so that {{IIgnite}} 
instance is available in all callbacks
* Made sure that when plugin startup fails, all plugins are stopped properly in 
reverse order

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2017-01-16 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15823886#comment-15823886
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


That's because at the moment of {{onKernalStart}}, {{IIgnite}} instance in .NET 
does not exist yet. So this particular callback can not be done using common 
Java component lifecycle.

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2017-01-11 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15818335#comment-15818335
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


Refactored plugin lifecycle handling to PlatformPluginProcessor grid component.

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-26 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778305#comment-15778305
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


1) Fixed.
2) Added sample.
3) Refactored to PlatformProcessor.startPlugins() which is called from kernal 
right after Java plugins.

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-26 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778100#comment-15778100
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


1) As explained in the docs, this is not needed. Plugin author can always 
subscribe to {{IIgnite.Stopping}} and {{IIgnite.Stopped}}. No reason to force 
plugin authors to implement one more method.

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-23 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15772496#comment-15772496
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


* {{CreateProvider}} removed, {{[PluginProviderType]}} added instead
* Generic {{IPluginContext.PluginConfiguration}} added

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-22 Thread Vladimir Ozerov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15769893#comment-15769893
 ] 

Vladimir Ozerov commented on IGNITE-4441:
-

It would also be cool to have a shortcut method to get plugin configuration 
inside {{IPluginContext}}. E.g.:
{code}
T pluginConfiguration();
{code}

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-22 Thread Vladimir Ozerov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15769877#comment-15769877
 ] 

Vladimir Ozerov commented on IGNITE-4441:
-

Pavel,
I am a bit concerned about {{IPluginConfiguration.CreateProvider}} method. 
Ideally user should not have access to this method. Can we define an attribute 
on concrete configuration which will point to a plugin class name?

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Vladimir Ozerov
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-19 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15761416#comment-15761416
 ] 

ASF GitHub Bot commented on IGNITE-4441:


GitHub user ptupitsyn opened a pull request:

https://github.com/apache/ignite/pull/1362

IGNITE-4441 Define plugin API in .NET



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-4441

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/1362.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1362






> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-19 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15761412#comment-15761412
 ] 

ASF GitHub Bot commented on IGNITE-4441:


Github user ptupitsyn closed the pull request at:

https://github.com/apache/ignite/pull/1359


> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-19 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15761268#comment-15761268
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


Cache plugins extracted to a separate task, since they are unrelated to Ignite 
plugins: IGNITE-4457

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{IPluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-19 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15760954#comment-15760954
 ] 

ASF GitHub Bot commented on IGNITE-4441:


GitHub user ptupitsyn opened a pull request:

https://github.com/apache/ignite/pull/1359

IGNITE-4441 Define plugin API in .NET



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/ptupitsyn/ignite ignite-4441

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/1359.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1359


commit 8b94746b63a8278e1532bdea47516cfde09b59a0
Author: Pavel Tupitsyn 
Date:   2016-12-16T10:20:15Z

IGNITE-4441 Define plugin API in .NET

commit f3ac70c8a034e3d34eb1bc34c426b1458c225679
Author: Pavel Tupitsyn 
Date:   2016-12-16T10:50:36Z

wip

commit fe988bc6e3f921308f261f748811a492144b0e96
Author: Pavel Tupitsyn 
Date:   2016-12-16T10:54:19Z

wip

commit a64dc0499146e116da9733fc21e87163ae511d28
Author: Pavel Tupitsyn 
Date:   2016-12-16T12:03:35Z

wip

commit be84c3f2cb25240b4346410abaaa2439ee6dc911
Author: Pavel Tupitsyn 
Date:   2016-12-16T12:11:54Z

wip

commit 43b47c56cee5dd68cc47d17013fc74816bb198d5
Author: Pavel Tupitsyn 
Date:   2016-12-16T12:22:04Z

IPluginProvider done

commit d84b05afeb1dfdd0fbb41a26c1ad99fe4a909e21
Author: Pavel Tupitsyn 
Date:   2016-12-16T12:24:29Z

IPluginConfiguration

commit f1dbc9d6a0650e8f688b155b2541c2320b59e112
Author: Pavel Tupitsyn 
Date:   2016-12-16T12:27:03Z

Plugin configuration

commit 338913d8bb8270d5886ed399b59a7aeb43d87522
Author: Pavel Tupitsyn 
Date:   2016-12-16T13:11:30Z

Add test

commit da58fea7a92f6555cfe5be380aebc235eeb91034
Author: Pavel Tupitsyn 
Date:   2016-12-16T13:30:25Z

wip PluginContext

commit 0451bf7ca5553e273df469f5b1d1b4b72c0e3189
Author: Pavel Tupitsyn 
Date:   2016-12-16T13:32:08Z

wip

commit 8de48dae3f61e5318e8f74d356d87bdc68eb2c57
Author: Pavel Tupitsyn 
Date:   2016-12-16T13:47:10Z

wip

commit 5b746b66508239ff238e85740c145e3d5a95607d
Author: Pavel Tupitsyn 
Date:   2016-12-16T14:02:55Z

wip

commit cc8b15ed98a81810e47409f89534218465475cc2
Author: Pavel Tupitsyn 
Date:   2016-12-16T14:16:06Z

wip

commit 926d1c09e134c1ce2ce4e723c09317b05067f6c8
Author: Pavel Tupitsyn 
Date:   2016-12-16T14:27:09Z

wip GetPlugin

commit e6d3f2e6c4101fe6149acc0e8dcc9a62792976d1
Author: Pavel Tupitsyn 
Date:   2016-12-16T14:27:22Z

wip

commit 57c0a159b32aca777fd44f1c4f4466e7f57d46cf
Author: Pavel Tupitsyn 
Date:   2016-12-16T14:30:51Z

First test works

commit ef22ce4b4602a76e1181a4f315d3db12e713a5a9
Author: Pavel Tupitsyn 
Date:   2016-12-16T15:21:56Z

Refactor tests

commit a7b66aa7c96f5927a676afeb41c404af2ef62e3f
Author: Pavel Tupitsyn 
Date:   2016-12-16T15:24:28Z

wip tests

commit 1d47a11f42864db4e2a15e253f5bf26780c704c3
Author: Pavel Tupitsyn 
Date:   2016-12-16T15:34:44Z

wip

commit 4a15c1fe022f3d93cbe704e4e0587b40f689c1ae
Author: Pavel Tupitsyn 
Date:   2016-12-16T15:37:08Z

wip tests

commit cac95152937b85c217ec86931f544110b38322ad
Author: Pavel Tupitsyn 
Date:   2016-12-16T15:45:53Z

wip thoughts

commit 132873499dc85d6e4a525a7b82b2904fb0e31d5a
Author: Pavel Tupitsyn 
Date:   2016-12-16T15:49:35Z

wip

commit a2fe136bd4929f0068caba32514527905f0bf79f
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:08:18Z

wip

commit 4b49aa8cf0b1b7dc8657be1d71888cbeb5e71ea7
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:28:33Z

Refactor plugin loading

commit 750ea64bd7a70f9cc59f652cc04a9aa7e7c2885f
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:32:26Z

wip

commit 3d7e2568e8677a822f181005ae9d45268b5f4aee
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:33:05Z

wip tests

commit 11d6bf506e6a60efdb2134ea04370d5b34b6c1b5
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:35:53Z

Duplicate plugin validation

commit e1fe9c3e68997d26af2c8ad034d8e18d5aebe9b3
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:37:24Z

wip docs

commit 0457c689d47233a439dd6c29fcd07085fc141b59
Author: Pavel Tupitsyn 
Date:   2016-12-16T16:57:56Z


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-16 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15754846#comment-15754846
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


On the second thought, we should not examine all DLLs in the folder.
* Scanning all assemblies in a folder is unsafe and slow
* User may want to load specific plugins only, or decide dynamically which ones 
should be loaded

So the proper way is to specify a list of PluginProvider classes via 
{{ICollection IgniteConfiguration.Plugins}}.
This requires one extra step from the user, but allows precise control.

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{CacheConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{ICachePluginProvider}}
> * {{IPluginContext}}
> * {{ICachePluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-16 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15754818#comment-15754818
 ] 

Pavel Tupitsyn commented on IGNITE-4441:


Sure, I've outlined the general logic only in the description.

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{CacheConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{ICachePluginProvider}}
> * {{IPluginContext}}
> * {{ICachePluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-4441) Define plugin API in .NET

2016-12-16 Thread Vladimir Ozerov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15754219#comment-15754219
 ] 

Vladimir Ozerov commented on IGNITE-4441:
-

Pavel,

Please note that we must not only call a single "start" method, but rather 
wire-up the plugin with general start lifecycle: 
- onStart
- onIgniteStart
- onIgniteStop
- onStop

> Define plugin API in .NET
> -
>
> Key: IGNITE-4441
> URL: https://issues.apache.org/jira/browse/IGNITE-4441
> Project: Ignite
>  Issue Type: Sub-task
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> Define plugin API in .NET similar to Java API:
> * {{IgniteConfiguration.PluginConfigurations}}
> * {{CacheConfiguration.PluginConfigurations}}
> * {{IPluginProvider}}
> * {{ICachePluginProvider}}
> * {{IPluginContext}}
> * {{ICachePluginContext}}
> Should work like this:
> * Plugin author implements {{IPluginProvider}}
> * We discover plugins on Ignite start by examining all DLL files in the 
> folder, load DLLs where {{IPluginProvider}} implementations are present, 
> instantiate these implementations, and call 
> {{IPluginProvider.Start(IPluginContext)}} method.
> * Plugin user can retrieve plugin via {{IIgnite.GetPlugin(string name)}}, 
> or via helper extension method provided by plugin author.
> This task does not include the possibility to interact with Java from the 
> plugin code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)