CHANGELOG.md 7.87 KB
Newer Older
1
# Ferma Changelog
2

3
4
## 3.3.2

Oleksandr Porunov's avatar
Oleksandr Porunov committed
5
6
7
8
9
* Updated the following dependencies
  * org.apache.tinkerpop:gremlin-core 3.4.4 -> 3.4.6
  * org.apache.tinkerpop:tinkergraph-gremlin 3.4.4 -> 3.4.6


10
11
## 3.3.1

12
13
14
15
16
17
18
19
20
* Updated the following dependencies
  * com.google.code.gson:gson 2.8.5 -> 2.8.6
  * com.google.guava:guava 26.0-jre -> 28.2-jre
  * net.bytebuddy:byte-buddy 1.8.20 -> 1.10.6
  * org.apache.tinkerpop:gremlin-core 3.3.3 -> 3.4.4
  * org.apache.tinkerpop:tinkergraph-gremlin 3.3.3 -> 3.4.4
  * org.reflections:reflections 0.9.11 -> 0.9.12


21
22
23
24
25
26
## 3.3.0

* Added support for properties with mulitiple values for annotated property getters.
* An adjacency getter (annotated) will now return null instead of an exception if no elements present.
* Setters now take null as a valid argument.
* Fixed a bug that caused exceptions in the case of a vertex property with a cardinality other than single.
27
28
29
30
31
32
33
34
* Updated the following dependencies
  * gson 2.8.2 -> 2.8.5
  * guava 23.0 -> 26.0-jre
  * byte-buddy 1.7.5 -> 1.8.20
  * gremlin-core 3.3.0 -> 3.3.3
  * tinkergraph-gremlin 3.3.0 -> 3.3.3
  * mockito-all 1.10.19 -> 2.0.2-beta

35

36
37
## 3.2.1

38
39
40
41
42
43
44
* Removed `throws exception` from the signature of the TxActions.
* Fixed a bug where the `VertexFrame.toJson()` and `EdgeFrame.toJson()` methods wouldn't encode properties that werent
  of the type `Number` or `String`
* When constructing a `DelegatingFramedGraph` if a the delegate graph argument is null the constructor now throws an
  exception.
* `AbstractAnnotationFrameFactory.constructClass()` method now throws an exception if the element argument is neither an
  `Edge` or a `Vertex`.
45
* Added several more unit tests bringing test coverage up an additional 5%.
46

47
## 3.2.0
48

49
50
* Added nexus staging deployment plugin.
* Removed explicit version from licensing plugin.
51
* Pom updated to require maven 3.0.4
52
53
54
55
56
* Added additional constructor to DelegatingFramedGraph which accepts a package name to scan instead of needing to
  explicitly pass all the model's classes as a set.
* Added `operation` parameter to the following annotations: `@Adjacency`, `@Incidence`, `@Property`. Setting the
  parameter will override the auto discovery of the method prefix previously used to discovery the operation of the
  method.
57
* Getter methods annotated with the `@Adjacency` annotation can now return a `List` or a `Set` in addition to the usual
58
  `Iterator` return type.
59
* Setter methods annotated with the `@Adjacency` annotation can now accept `Iterable` parameters such as `Collection`,
60
  `List`, or `Set` in addition to the usual `Iterator` type.
61
62
* Remove methods annotated with the `@Adjacency` annotation can now have no parameters and they will remove all edges
  matching the specified label and direction.
63
64
* Setter methods annotated with the `@Adjacency` annotation can now accept `VertexFrame` parameters including other
  vertex in the users custom model.
65
* Methods annotated with the `@Incidence` annotation can now return a `List` or a `Set` in addition to the usual
66
  `Iterator` return type.
67
68
* Removed the upper bound on traversal generics. The travese function's argument has changed from
  `GraphTraversal<? extends Vertex, ? extends Vertex>` to `GraphTraversal<Vertex, Vertex>`.
69
* Expanded documentation to cover all the annotations availible in greater detail, including recent changes.
70
* `AnnotationFrameFactory` was redesigned to make it easier to inherit from the class and add support for additional
71
72
73
  custom annotations.
* `AbstractAnnotationFrameFactory` was created to help create custom annotations that replace the existing standard
  annotations provided by `AnnotationFrameFactory`.
74
75
76
77
* Fixed a `NullPointerException` thrown any time `DelegatingFramedGraph.addFramedEdgeExplicit` was called.
* Fixed a `IllegalStateException` thrown anytime `DefaultTraversable.nextOrAdd()` was called.
* Fixed a `IllegalStateException` thrown when `PolymorphicTypeResolver.resolve()` is called on a class without type
  information.
78
79
* Updated the following dependencies
  * gson: 2.8.1 -> 2.8.2
80

81
82
83
## 3.1.0

* Added abstraction code for tinkerpop transactions which ease usage of transactions within ferma.
84
  The new code provides functional interfaces for transactions and methods which allow
85
  access to transactions from nested functions without the need to pass the original transaction object along.
86
  Once a transaction has been opened it can be accessed from anywhere within the same thread
87
88
  via the `Tx.getActive()` method.

89
  The `TxFactoryTest` class and the [ferma-orientdb extension](https://github.com/syncleus/ferma-orientdb)
90
91
92
  contain examples how these classes and methods can be used.

* Updated the following dependencies
93
94
95
96
  * guava 22.0 -> 23.0
  * byte-buddy 1.7.1 -> 1.7.5
  * gremlin-core 3.2.5 -> 3.3.0
  * tinkergraph-gremlin 3.2.4 -> 3.3.0
97

98
* Methods set with the Property annotation now accept null values.
99

100
101
## 3.0.3

102
103
104
105
106
107
108
109
* Updated the following dependencies
  * gson: 2.8.0 -> 2.8.1
  * guava: 20.0 -> 22.0
  * byte-buddy: 1.5.12 -> 1.7.1
  * gremlin-core: 3.2.3 -> 3.2.4
  * tinkergraph-gremlin: 3.2.4 -> 3.2.4
  * reflections: 0.9.10 -> 0.9.11
  * maven-license-plugin: 1.9.0 -> 1.10.b1
110
* Changed internal traversal code to use the new lambda syntax.
111

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
112
113
114
## 3.0.2

* Updated package dependencies, specifically Byte Buddy, mostly performance improvements.
115

116
117
## 3.0.1

118
* Removed the following deprecated classes: FramingIterable, FramingVertexIterable, Path, RunMe, Storage, and VoidFunction.
119

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
120
121
122
## 3.0.0

* Tinkerpop3 is now supported.
123
124
* Removed several of the pipline methods from exiting classes, this is now replaced with the traverse method.
* Ferma specific pipelines are now replaced with Tinkerpop3 traversals.
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
125
126

## 2.2.0
Johannes Schüth's avatar
Johannes Schüth committed
127

128
* Added id parameter to ```fg.addFramedVertex``` and ```fg.addFramedEdge``` methods to prepare for orientdb custom vertex and edge types.
Johannes Schüth's avatar
Johannes Schüth committed
129
130
131
* Added getFramedVertexExplicit method which can be used to load a framed vertex by id.
* The internal references to the nested graph and the nested element within a element frame have been changed in order to enable custom getElement/getGraph methods which may be desired in some cases.
  * [Example usecase](https://github.com/Syncleus/Ferma/issues/10)
132
* Changed the projects license to Apache Software License v2.
Johannes Schüth's avatar
Johannes Schüth committed
133

134
## 2.1.0
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
135

136
* Fixed a bug where an exception was thrown when using the @Adjacency annotation on outgoing adjacencies for add*, set*, and remove*.
137
* Added has and hasNot keyed to type to the gremlin pipeline.
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
138
* Switched over to using the Syncleus parent POM.
139
* renamed the pipeline map method to propertyMap to reflect the TP3 interfaces.
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
140

141
142
143
144
145
146
147
148
149
150
151
## 2.0.6

* Added the ability to use the @Incidence annotation on add* methods. These work the same as with adjacency but return the edge rather than the node.
* Added additional metadata to the pom file.
* Added multi-threaded transaction support.
* Added support for tinkerpop style transaction handling.
* Added additional argument sanity checking for fail-fast exceptions.
* Implemented WrappedGraph interface for DelegatingFramedGraph.
* The pom site goal now executes successfully.
* Added badges to the readme to report project state.

152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
## 2.0.5

* The type resolution key can now be easily customized.
* Packages have been refactored to make the classes more organized and easier to work with.

## 2.0.4

* Added back the ability to specify Class arguments in addition to the ClassInitializer arguments.
* Fixed some mistakes in the javadocs.

## 2.0.3

* Framed graph will return null when framing a null object (as opposed to a  NullPointerException as before).
* remove() functionality added to traversals and iterators.
* Significant performance improvements when accessing the Framed graph V().has(key,value) method as well as numerous other related performance improvements.
* Comparators class is now properly implemented as utility class and can no longer be constructed.
* Replaced the Class argument in several methods which create new graph elements with a ClassInitializer argument. This provides additional functionality giving more control over how elements are instantiated.