This pull request is a good one and tackles an issue I've wanted to have
done a while ago:

https://github.com/apache/tinkerpop/pull/569

It makes GraphManager, a class in Gremlin Server that keeps track of hosted
graphs, an interface rather than a concrete class, which would allow people
embedding or extending Gremlin Server a bit more flexibility in how they
supply graphs to Gremlin Server.

Unfortunately, the GraphManager is a public class and changing to an
interface means that anyone who instantiated GraphManager directly with its
public constructor would end up with a break in their code on update to
3.2.5. We normally don't like to have that happen and would preserve such a
change for 3.3.0 instead. In this case, however, I think that the given the
nature of GraphManager this change is likely ok for 3.2.5 because:

1. GraphManager is an "internal" class and anyone using it likely knows
what they are doing with it and can easily fix the breaking change (users
will just need to swap GraphManager for DefaultGraphManager).
2. The chance of GraphManager being instantiated directly is pretty low.
People using this class at all would normally use the instance provided by
Gremlin Server itself and not create their own.

Anyway, I just thought I would hang this out there for discussion in case
anyone thought that having a breaking change in 3.2.5 of this sort would
not be acceptable. I'll assume lazy consensus and proceed with shepherding
this PR to the tp32 branch unless there are objections in the next 72 hours
(Monday, March 13, 2016, 3:30PM EST).

Reply via email to