The rpcclient constructor could not see the centralized
Encoding flag because it didn't have the necessary build
constraints. Added the constraints in lib_test.go files
where it wasn't alone. In all the other cases, it was
moved to the first file where it was needed.
Moved resources cache tests relying on DBType flag value
to a separate integration test file. Before it was getting
skipped for *internal anyway.
HierarchyPath parser now returns nil when
the path is empty (instead of a string slice with one
EmptyString element).
If the prefix is set to true, when calling the AsString
method on a nil HierarchyPath, only the separator will
be returned. This avoids a nil expr error coming from
the xmlquery library.
Use the Query and QueryAll functions from the xmlquery
package to be able to handle the errors ourselves and
avoid panics.
Added an integration tes for the special case where the
xml_root_path field is left empty. Before the change it
used to trim the root element from the path slice when
attempting to retrieve a the relative path slice.
Replace all instances of rpcclient.ClientConnector with birpc.ClientConnector.
Pass context, maxReconnectInterval, delayFunc and birpcClient to rpcclient
constructors.
Remove redundant time.Duration conversions (e.g. time.Duration(1*time.Second)
now becomes time.Second.
Add context where needed (context.Background() for tests, context.TODO()
for places where it should be passed from somewhere else).
Implement that functionality of the SessionSv1.Sleep call, in sessions/sessions
instead of apier/v1.
Make changes in utils/server.go (replacing the old rpc2 library with github.com/cgrates/birpc).
Change the way we register birpc methods for sessions in services, using a helper function
defined in engine/libengine.go.