You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Jacob Barrett <jb...@pivotal.io> on 2017/01/23 18:05:48 UTC
Proposal to Coalesce Java and Native Client Config
Today we have Geode XSD which contains two root elements, cache (server)
and client-cache and Native XSD that contains a client-cache. For the most
part these two schemas are the same for element client-cache. It strikes me
that it makes sense to coalesce these into a single common XSD. For areas
that need to diverge, specific to Java, C++ or .NET, the clients would use
extension namespaces similar to how the server config does can today.
Consider something like this:
<client-cache
xmlns="http://geode.apache.io/schema/client"
xmlns:java="http://geode.apache.io/schema/client/java"
xmlns:cpp="http://geode.apache.io/schema/client/cpp"
xmlns:net="http://geode.apache.io/schema/client/net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://geode.apache.io/schema/client
http://geode.apache.io/schema/client/client-1.0.xsd
http://geode.apache.io/schema/client/java
http://geode.apache.io/schema/client/java/client-java-1.0.xsd
http://geode.apache.io/schema/client/cpp
http://geode.apache.io/schema/client/cpp/client-cpp-1.0.xsd
http://geode.apache.io/schema/client/net
http://geode.apache.io/schema/client/net/client-net-1.0.xsd"
version="1.0">
<net:appDomain enabled="true" />
<pool
name="example-pool"
subscription-enabled="true"
subscription-redundancy="1">
<java:someJavaSpecificThing name="theJavaWay" />
<cpp:someCppSpecificThing name="theCppWay" />
<net:someDotNetSpecificThing name="the.NETWay" />
<server
host="l1"
port="1234" />
<server
host="l2"
port="1234" />
</pool>
</client-cache>
This config file can now be change controlled by the customer and remain
consistent across all clients. This single file can be deployed to all
clients regardless of the client implementation language/framework.
Thoughts?
-Jake
Re: Proposal to Coalesce Java and Native Client Config
Posted by Ernest Burghardt <eb...@pivotal.io>.
+1 for common point of reference!
On Mon, Jan 23, 2017 at 10:09 AM, Anthony Baker <ab...@pivotal.io> wrote:
> Are there any differences between the client-cache element in Geode vs
> Native XSD? Seems like a really good idea to use a single, common schema.
>
> Anthony
>
> > On Jan 23, 2017, at 10:05 AM, Jacob Barrett <jb...@pivotal.io> wrote:
> >
> > Today we have Geode XSD which contains two root elements, cache (server)
> > and client-cache and Native XSD that contains a client-cache. For the
> most
> > part these two schemas are the same for element client-cache. It strikes
> me
> > that it makes sense to coalesce these into a single common XSD. For areas
> > that need to diverge, specific to Java, C++ or .NET, the clients would
> use
> > extension namespaces similar to how the server config does can today.
> >
> > Consider something like this:
> >
> > <client-cache
> >
> > xmlns="http://geode.apache.io/schema/client"
> >
> > xmlns:java="http://geode.apache.io/schema/client/java"
> >
> > xmlns:cpp="http://geode.apache.io/schema/client/cpp"
> >
> > xmlns:net="http://geode.apache.io/schema/client/net"
> >
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >
> > xsi:schemaLocation="http://geode.apache.io/schema/client
> >
> > http://geode.apache.io/schema/
> client/client-1.0.xsd
> >
> > http://geode.apache.io/schema/client/java
> >
> >
> > http://geode.apache.io/schema/client/java/client-java-1.0.xsd
> >
> > http://geode.apache.io/schema/client/cpp
> >
> >
> > http://geode.apache.io/schema/client/cpp/client-cpp-1.0.xsd
> >
> > http://geode.apache.io/schema/client/net
> >
> >
> > http://geode.apache.io/schema/client/net/client-net-1.0.xsd"
> >
> > version="1.0">
> >
> >
> >
> > <net:appDomain enabled="true" />
> >
> >
> > <pool
> >
> > name="example-pool"
> >
> > subscription-enabled="true"
> >
> > subscription-redundancy="1">
> >
> >
> >
> > <java:someJavaSpecificThing name="theJavaWay" />
> >
> >
> >
> > <cpp:someCppSpecificThing name="theCppWay" />
> >
> >
> > <net:someDotNetSpecificThing name="the.NETWay" />
> >
> >
> >
> > <server
> >
> > host="l1"
> >
> > port="1234" />
> >
> > <server
> >
> > host="l2"
> >
> > port="1234" />
> >
> > </pool>
> >
> >
> >
> > </client-cache>
> >
> >
> > This config file can now be change controlled by the customer and remain
> > consistent across all clients. This single file can be deployed to all
> > clients regardless of the client implementation language/framework.
> >
> > Thoughts?
> >
> > -Jake
>
>
Re: Proposal to Coalesce Java and Native Client Config
Posted by Jacob Barrett <jb...@pivotal.io>.
There are some differences. The Java version has several items that are
very Java centric. There are also some items that probably need to be
implemented in the native clients. Most the other items, like pools,
servers, region, etc. are pretty much the same.
I think it would be worth having a detailed look into what a unified
extensible config would look like.
-Jake
On Mon, Jan 23, 2017 at 10:10 AM Anthony Baker <ab...@pivotal.io> wrote:
> Are there any differences between the client-cache element in Geode vs
> Native XSD? Seems like a really good idea to use a single, common schema.
>
> Anthony
>
> > On Jan 23, 2017, at 10:05 AM, Jacob Barrett <jb...@pivotal.io> wrote:
> >
> > Today we have Geode XSD which contains two root elements, cache (server)
> > and client-cache and Native XSD that contains a client-cache. For the
> most
> > part these two schemas are the same for element client-cache. It strikes
> me
> > that it makes sense to coalesce these into a single common XSD. For areas
> > that need to diverge, specific to Java, C++ or .NET, the clients would
> use
> > extension namespaces similar to how the server config does can today.
> >
> > Consider something like this:
> >
> > <client-cache
> >
> > xmlns="http://geode.apache.io/schema/client"
> >
> > xmlns:java="http://geode.apache.io/schema/client/java"
> >
> > xmlns:cpp="http://geode.apache.io/schema/client/cpp"
> >
> > xmlns:net="http://geode.apache.io/schema/client/net"
> >
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >
> > xsi:schemaLocation="http://geode.apache.io/schema/client
> >
> >
> http://geode.apache.io/schema/client/client-1.0.xsd
> >
> > http://geode.apache.io/schema/client/java
> >
> >
> > http://geode.apache.io/schema/client/java/client-java-1.0.xsd
> >
> > http://geode.apache.io/schema/client/cpp
> >
> >
> > http://geode.apache.io/schema/client/cpp/client-cpp-1.0.xsd
> >
> > http://geode.apache.io/schema/client/net
> >
> >
> > http://geode.apache.io/schema/client/net/client-net-1.0.xsd"
> >
> > version="1.0">
> >
> >
> >
> > <net:appDomain enabled="true" />
> >
> >
> > <pool
> >
> > name="example-pool"
> >
> > subscription-enabled="true"
> >
> > subscription-redundancy="1">
> >
> >
> >
> > <java:someJavaSpecificThing name="theJavaWay" />
> >
> >
> >
> > <cpp:someCppSpecificThing name="theCppWay" />
> >
> >
> > <net:someDotNetSpecificThing name="the.NETWay" />
> >
> >
> >
> > <server
> >
> > host="l1"
> >
> > port="1234" />
> >
> > <server
> >
> > host="l2"
> >
> > port="1234" />
> >
> > </pool>
> >
> >
> >
> > </client-cache>
> >
> >
> > This config file can now be change controlled by the customer and remain
> > consistent across all clients. This single file can be deployed to all
> > clients regardless of the client implementation language/framework.
> >
> > Thoughts?
> >
> > -Jake
>
>
Re: Proposal to Coalesce Java and Native Client Config
Posted by Anthony Baker <ab...@pivotal.io>.
Are there any differences between the client-cache element in Geode vs Native XSD? Seems like a really good idea to use a single, common schema.
Anthony
> On Jan 23, 2017, at 10:05 AM, Jacob Barrett <jb...@pivotal.io> wrote:
>
> Today we have Geode XSD which contains two root elements, cache (server)
> and client-cache and Native XSD that contains a client-cache. For the most
> part these two schemas are the same for element client-cache. It strikes me
> that it makes sense to coalesce these into a single common XSD. For areas
> that need to diverge, specific to Java, C++ or .NET, the clients would use
> extension namespaces similar to how the server config does can today.
>
> Consider something like this:
>
> <client-cache
>
> xmlns="http://geode.apache.io/schema/client"
>
> xmlns:java="http://geode.apache.io/schema/client/java"
>
> xmlns:cpp="http://geode.apache.io/schema/client/cpp"
>
> xmlns:net="http://geode.apache.io/schema/client/net"
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
> xsi:schemaLocation="http://geode.apache.io/schema/client
>
> http://geode.apache.io/schema/client/client-1.0.xsd
>
> http://geode.apache.io/schema/client/java
>
>
> http://geode.apache.io/schema/client/java/client-java-1.0.xsd
>
> http://geode.apache.io/schema/client/cpp
>
>
> http://geode.apache.io/schema/client/cpp/client-cpp-1.0.xsd
>
> http://geode.apache.io/schema/client/net
>
>
> http://geode.apache.io/schema/client/net/client-net-1.0.xsd"
>
> version="1.0">
>
>
>
> <net:appDomain enabled="true" />
>
>
> <pool
>
> name="example-pool"
>
> subscription-enabled="true"
>
> subscription-redundancy="1">
>
>
>
> <java:someJavaSpecificThing name="theJavaWay" />
>
>
>
> <cpp:someCppSpecificThing name="theCppWay" />
>
>
> <net:someDotNetSpecificThing name="the.NETWay" />
>
>
>
> <server
>
> host="l1"
>
> port="1234" />
>
> <server
>
> host="l2"
>
> port="1234" />
>
> </pool>
>
>
>
> </client-cache>
>
>
> This config file can now be change controlled by the customer and remain
> consistent across all clients. This single file can be deployed to all
> clients regardless of the client implementation language/framework.
>
> Thoughts?
>
> -Jake
Re: Proposal to Coalesce Java and Native Client Config
Posted by Michael William Dodge <md...@pivotal.io>.
I think this is a good idea: it reduces an unnecessary and potentially confusing redundancy.
Sarge
> On 23 Jan, 2017, at 10:05, Jacob Barrett <jb...@pivotal.io> wrote:
>
> Today we have Geode XSD which contains two root elements, cache (server)
> and client-cache and Native XSD that contains a client-cache. For the most
> part these two schemas are the same for element client-cache. It strikes me
> that it makes sense to coalesce these into a single common XSD. For areas
> that need to diverge, specific to Java, C++ or .NET, the clients would use
> extension namespaces similar to how the server config does can today.
>
> Consider something like this:
>
> <client-cache
>
> xmlns="http://geode.apache.io/schema/client"
>
> xmlns:java="http://geode.apache.io/schema/client/java"
>
> xmlns:cpp="http://geode.apache.io/schema/client/cpp"
>
> xmlns:net="http://geode.apache.io/schema/client/net"
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
> xsi:schemaLocation="http://geode.apache.io/schema/client
>
> http://geode.apache.io/schema/client/client-1.0.xsd
>
> http://geode.apache.io/schema/client/java
>
>
> http://geode.apache.io/schema/client/java/client-java-1.0.xsd
>
> http://geode.apache.io/schema/client/cpp
>
>
> http://geode.apache.io/schema/client/cpp/client-cpp-1.0.xsd
>
> http://geode.apache.io/schema/client/net
>
>
> http://geode.apache.io/schema/client/net/client-net-1.0.xsd"
>
> version="1.0">
>
>
>
> <net:appDomain enabled="true" />
>
>
> <pool
>
> name="example-pool"
>
> subscription-enabled="true"
>
> subscription-redundancy="1">
>
>
>
> <java:someJavaSpecificThing name="theJavaWay" />
>
>
>
> <cpp:someCppSpecificThing name="theCppWay" />
>
>
> <net:someDotNetSpecificThing name="the.NETWay" />
>
>
>
> <server
>
> host="l1"
>
> port="1234" />
>
> <server
>
> host="l2"
>
> port="1234" />
>
> </pool>
>
>
>
> </client-cache>
>
>
> This config file can now be change controlled by the customer and remain
> consistent across all clients. This single file can be deployed to all
> clients regardless of the client implementation language/framework.
>
> Thoughts?
>
> -Jake