forked from neo4j/neo4j-ogm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
345 lines (311 loc) · 19.5 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
3.2.x
o Removed "neo4j.ha.properties.file" property from OGM configuration. Use "neo4j.conf.location" instead.
o Removed `org.neo4j.ogm.autoindex.AutoIndexManager#build`. Use `org.neo4j.ogm.autoindex.AutoIndexManager#run` instead.
o Removed deprecated and unsupported method `org.neo4j.ogm.session.Neo4jSession#setDriver`.
o Removed deprecated `@GraphId`. Please use a `Long` field annotated with `@Id @GeneratedValue` instead.
o Removed deprecated `org.neo4j.ogm.session.Session.doInTransaction(GraphCallback<T>)`. SDN doesn't use that from 5.1.4
upwards anymore.
o Allow configuration of packages to scan in `ogm.properties` through `base-packages`. (#131)
o Removed deprecated and unused ServiceNotFoundException for good this time. (#319)
o Removed deprecated `org.neo4j.ogm.session.Neo4jException`. (#319)
o Removed deprecated `org.neo4j.ogm.exception.core.NotFoundException`. (#319)
o Removed deprecated `org.neo4j.ogm.exception.core.ResultErrorsException`. (#319)
o Introduced exception translator to unify exceptions of different transports into an OGM hierarchy. (#319)
o Improved hashing in IdentityMap and MappedRelationship. (#579)
o Deprecated OgmPluginInitializer.
3.1.x
o Improve documentation of type conversions. #501
o Provide "neo4j.conf.location" in OGM configuration, pointing to a custom configuration file (url or classpath resource)
that allows to configure the embedded Neo4j instance. #408
o Deprecate "neo4j.ha.properties.file" as configuration property of OGM. It will be removed in 3.2. To use an embedded
HA instance, provide a neo4j.conf file through OGM property "neo4j.conf.location" specifying the DBMS mode "HA" like
this: dbms.mode=HA.
o Fix update of labels depending on the session in which an entity was loaded. (#488)
o Allow configuration of embedded database through file specified in `ogm.properties` under `neo4j.conf.location`. (#408)
o Improve documentation of attribute conversions. (#501)
o Don't rely on system encoding.
o Constraint violations are now handled consistent across drivers. (#301)
o Deprecated `org.neo4j.ogm.session.Neo4jException`, will be removed in 3.2. (#319)
o Deprecated `org.neo4j.ogm.exception.core.NotFoundException`, will be removed in 3.2. (#319)
o Deprecated `org.neo4j.ogm.exception.core.ResultErrorsException`, will be removed in 3.2. (#319)
o Fixed detection of field types in concrete subclasses of generic base classes. (#492)
o Changes to dynamic properties (map attributes) are now correctly tracked. (#518)
o Fixed possible class cast exceptions while sending domain events for iterables. (#473)
o Fixed deletion of relationships with the same type between the same nodes. (#576)
3.1.5
o Fix loading by parent class / interface for custom id. (#554)
o Fix computation of keys for primaryIdToNativeId mapping.
o Fix usage of fixed variable name.
o Remove methods that had been scheduled for removal in 3.1.4.
o Remove dependency on commons-io.
3.1.4
o Don't treat Void and void as scalar result types and thus allowing Neo4j-OGM session to handle queries mapped to these
types even if the query itself does return nodes or properties. #479
o Fix a bug during detection of interface-hierarchies that prohibited the use of generics as target attributes for start
and end nodes of a relationship. #491
o Fix a bug during recognition of type variables in generic classes or interfaces used as target attributes for
relationships. #528
o Improve logging of Cypher statements and their parameters: To have less clutter in the log, only log to DEBUG. If you
rely on the old behavior, enable DEBUG log on the request type in question
(org.neo4j.ogm.drivers.bolt.request.BoltRequest, org.neo4j.ogm.drivers.embedded.request.EmbeddedRequest or
org.neo4j.ogm.drivers.http.request.HttpRequest). #530
o Introduce an experimental configuration option to use native types in parameter conversion
for both Bolt- and Embedded-Transports.
3.1.3
o Improve determination of labels in class hierarchy scenarios. Labels are now computed according to docs, the names of
abstract classes are now considered as labels as long as the class contributes to the index. If a hierarchy lead to a
situation where multiple different labels can be applied, the topmost one is used. #437
o Don't run the auto index manager if auto index mode is NONE (prevents eagerly opening a session). #437
o Deprecate #getIndexes and #build in AutoIndexManager. #437
o Convert array correct in delete operations. #509
o Treat @PostLoad methods the same way as JSR-250 treats @PostConstruct. #516
o Recognize overwritten @PostLoad methods in a class hierarchy. #414, #516
o Deprecate default constructor and mutating put-method in ObjectAnnotations.
o Prevent possible accidental deletion of all nodes when no label can be determined.
3.1.2
o Improve documentation.
o Resurrected ServiceNotFoundException for SDN Kay compatibility.
3.1.1
o Fix determination of FieldInfo.
o Use type converters for scalar queries. #71
o Remove deprecated and unused ServiceNotFoundException.
3.1.1-RC1
o Upgrade FastClasspathScanner to latest version. #474
o SortOrder API polishing. #483
o Make SortOrder reusable. #486
o (Deeper) Nested properties filter support.
o Provide a case-insensitive equals comparison.
o NodeEntity label, Relationship and RelationshipEntity type can be set without attribute name in annotation. #377
3.1.0
o Manually assigned conversion annotations should support lenient mode. #424
o Improve setting of BooleanOperator parameter in Filter. #445
o Update Neo4j java driver version to 1.5.0
o Update Neo4j version to 3.3.1 in 3.3 profile
o Update Neo4j version to 3.4.0-alpha04 in 3.4 profile
o Report QueryStatistics correctly. #449
o Support for composite index, node key constraints, existence constraints #439
o Improve java 9 compatibility by adding an automatic module name #460
o Refactor transaction handling
o Add optimistic locking #450
o Add entity instantiation callback mechanism. #448
3.0.5
o Don't treat Void and void as scalar result types and thus allowing Neo4j-OGM session to handle queries mapped to these
types even if the query itself does return nodes or properties. #479
o Fix determination of FieldInfo.
o Handle property fields that cannot be persisted as property fields
3.0.4
o HttpDriver: Handle non-json response gracefully.
o Default Java driver dependency for Bolt is 1.5.
o Compatibility for 3.4 point types in DistanceComparison.
o NodeEntity label, Relationship and RelationshipEntity type can be set without attribute name in annotation. #377
o SortOrder is now re-usable. #486
o Report QueryStatistics correctly. #449
3.0.2
o Entity count returns incorrect result on abstract non-annotated type. #435
o Fix classpath scanning issue with Play framework. #429
o Store horizon along with visited nodes to traverse to correct depth. #407
o Fix mapping of directed transient relationships defined in both directions
o Fix directory creation for embedded driver. #411
o Update Neo4j to version 3.4.0-alpha02 in 3.4 profile
o Update java driver version to 1.4.5 in 1.4 profile (default dependency)
o Update java driver version to 1.5.0-beta02 in 1.4 profile
3.0.1
o Add filter function for in-collection query. #423
o Update Neo4j to version 3.1.7 in 3.1 profile
o Update Neo4j to version 3.2.6 in 3.2 profile (default dependency)
o Update Neo4j to version 3.3.0-rc1 in 3.3 profile
o Update java driver version to 1.4.4 in 1.4 profile (default dependency)
o Update java driver version to 1.5.0-alpha02 in 1.5 profile
o Fix classpath scanning issue on JBoss/Wildfly with jar in ear #420
o Java 9 compatibility (Rename exception package for core module) #416
o Deprecate @GraphId annotation #417
o Minor documentation fixes
3.0.0
o Check if node is in MappingContext before firing events, fixes #305
o Don't consider Object fields with @StartNode and @EndNode as property, fixes #66
o Update Neo4j to version 3.1.6 in 3.1 profile
o Update Neo4j to version 3.2.3 in 3.2 profile
o Update Neo4j to version 3.3.0-alpha05 in 3.3 profile
o Update java driver version to 1.4.3
o Test against java driver 1.5-alpha1 in driver-1.5 profile
o Don't merge collection property default value with graph value
o Lookup by Long primary id returns correct instance when conflicts with other graph id (DATAGRAPH-1008)
o Generate correct statements for entities with label field
o Fix creation of relationship entities with identical properties
o Add @Id to relationship entities
o Remove requirement to have graph id in entities
o Execute @PostLoad method after fully hydrating all entities, fixes #403
o Fix execution of @PostLoad method when entities are loaded via session.query()
o Fix duplicate nodes creation when using Session.save(Iterable<T>)
o Expose new URIS configuration parameter for clustering
o Username and password are not picked from configuration file
o Use UNWIND pattern when updating relationships
o Paging with session.loadAll(User.class, filter, pagination) does not work correctly when filtering on relationship #384
o Assert indexes for labels with hyphens fails #392
o Remove dependency on common collections
o Keep order for loadAll by objects or ids, fixes #196
o Fix issue with empty (non null) collections, fixes #388
o Update documentation
3.0.0-RC1
o Add verifyConnection configuration property for bolt and http driver
o Support Neo4j version 3.3.0-alpha3 in 3.3 profile
o Add default conversions for LocalDateTime and OffsetDateTime
o Implement query load strategies based on schema defined by entities
o Update Neo4j to version 3.1.5 in 3.1 profile
o Update Neo4j to version 3.2.2 in 3.2 profile
o Change graph id handling for new entities, fix #381
3.0.0-M02
--------------
o Session.loadAll(Class<T> type, Collection<ID> ids) doesn't treat ids as primaryKeys but as nodeIDs. #349
o Add native support for java.time.Instant and java.time.Instant. Fixes #348
o Do not throw NPE when entity field is not a managed type. #347
o Handle default platform encoding other than UTF-8. #244
o Upgrade Neoj4 Java Driver to 1.4.0
o Fix MappingException when querying object with List<Enum> using Embedded. #359
o Expose connection liveness driver parameter. #358
o Support Neo4j 3.2.1
o Allow use of CompositeConverter on fields in @RelationshipEntity classes
o New feature: @Properties - dynamically map node properties
o Relationships with same endNode load correctly. #361
o Provide way to inject dependencies to drivers directly through constructors
o New feature: OgmPluginInitializer for easy use of OGM in unmanaged extension
o Add new API to provide multiple bookmarks at transaction begin
o New feature: @Id generation through strategy specified by @GenerationValue
o Removed DriverManager class
3.0.0-M01
--------------
o Primary index annotations are picked up on the whole class class hierarchy, not only on leaf class. Fixes #332.
o Support Neo4j 3.1.2
o Fixes issue where the X-Write header is wrong on read-only transactions first request. Fixes #323.
o Improve test infrastructure. Test servers are now reused when possible.
o Exclude slf4j-nop from transitive dependencies.
o Improve identity handling and allow custom id generation (introduce new annotations @Id and @Generated). #344.
o Performance improvements when loading large number of relationships. #327.
o Use fast-classpath-scanner to read mapping metadata. #327.
o Look for primary indexes on class hierarchy and not only on leaf class. Fixes #332.
o Removed username/password from logging. Fixes #330.
o Improve the way configuration works. #346.
o Filters are now immutable. #345.
2.1.2
--------------
o Fixes issue where the X-Write header is wrong on read-only transactions first request. Fixes #323.
o Primary index annotations are picked up on the whole class class hierarchy, not only on leaf class. Fixes #332.
o Support Neo4j 3.1.2
o Performance improvement when saving lots of nodes and relationships in the same transaction.
o Ensure RelationshipEntities not referenced by NodeEntities can be loaded. Fixes #309.
o Documentation improvements.
2.1.1
--------------
o Fixes issue where session.loadAll would sort by ids instead of by the sort order specified. Fixes #302.
o Completely updated documentation.
o Fix for @Index not working properly with @Property. Resolves #312.
o ClassInfo.addIndexes() now uses MetaDataClassLoader.loadClass() to fix issue in Play 2.5. Resolves #314.
o Made Index validation comparison ignore whitespace.
o Bump Neo4j version to 3.0.8.
o Ensure polymorphic relationship entity references can be correctly resolved at runtime. Fixes #298.
o Fix issue where no neo4j dependencies causes embedded driver to silently fail.
o Removed requirement for embedded driver to always download neo4j dependencies.
o Session.loadAll() sorts by SortOrder specified instead of by Ids. Fixes #302.
o Fix commit/rollback X-WRITE headers not being sent to correct node in HTTP Driver.
2.1.0
--------------
o Support for Neo4j 3.1 Causal Clustering.
o Support for Neo4j Bolt Driver 1.1.0.
o Add SessionFactory method to register/deregister event listeners (#297). Closes #296.
o Embedded driver temporary file store is now automatically deleted (#293). Fixes #288.
o All method signatures using an ID in Session now use generics to support non Long types.
o Prevent DriverExceptionTest hanging under Java 7. See #258.
o Support for lookup & merge via primary index. (#281)
o Interim fix to PagingAndSortingQuery
2.1.0-M01
--------------
o Added support for spatial queries, composite attribute converters and Filter functions.
o Scala compatibility - support for @Labels without get/set. Fixes #236.
o Fixes failure to set Credentials when using Bolt protocol in URI. Fixes #235.
o Enable ClassPathScanner to scan embedded WAR/JAR files (Spring Boot, Tomcat, etc).
o Fix defects when mapping to and from fields and methods that use Generics. Fixes #186.
o Support for Indexes and Constraints. Fixes #243.
o Fix issue where calling session.save() after updating graph properties and relationships in one transaction did not save properties. Fixes #261.
o Enable support for High Availability in Embedded driver. Fixes #142.
o Don't ship neo dependencies with the OGM (#278).
o Additional comparison operators for Filters.
o Support querying by multiple relationship entities. Fixes #280.
o Added ability to load a sessionFactory without classpath scanning.
2.0.5
--------------
o Support scanning web archives for domain classes. Fixes #211.
o Support non-string annotation element types. Fixes #228
o Fixes issue where relationship entities were counted incorrectly.
o Correct rollback problem with RelationshipEntities. Fixes #351.
o Support read-only transactions.
o Fix Concurrent Modification Exception when save is followed deleteAll
o Refactor classes from neo4j-ogm-core org.neo4j.ogm.annotations to org.neo4j.ogm.entity.io
o Fixes an issue #209, where removal of labels fails in certain cases.
o Deprecate @Labels annotation in the org.neo4j.ogm.annotations package. It has been moved to org.neo4j.ogm.annotation
o Support for Neo4j Bolt Driver 1.0.5
2.0.4
--------------
o Adds support for event listeners
o Support for an @Labels annotation that allows dynamically applying/removing labels for an entity at runtime.
o Fixes issue where SortOrder did not take into account the actual node property name specified by @Property
o Fixes issue where properties of the node were updated if it was reloaded after having been already mapped in the session
2.0.3
--------------
o Corrects behaviour of dirty checks on load and save
o Fixes issue where converters that use generics and convert to collections or arrays throw ClassNotFoundExceptions
o Fixes issue where the embedded driver would create a directory that included the uri scheme
o Fixes issue where ClassInfo to be accessed concurrently with some fields not having been initialised.
2.0.2
--------------
o Fixes issue where collections of relationships were not loaded correctly when they share the same relationship type but different target entities
o Fixes issue where enums not scanned were not assigned default converters
o Fixes issue where session.query() would not map String[] properties to Collection<String> on a domain entity
o Performance improvements for the graph to entity mapping process
o Provide support for detaching/clearing individual node and relationship entities from the session
o Fixes issue where a collection of Longs in a entity was mapped as a collection of Integers
o Fixes issue where collection of values returned via a custom Cypher query sometimes mapped to an ArrayList. Now it consistently maps to an array.
o Fixes issue where a node without a label or labels not mapped in the OGM result in a NullPointerException when queried via a custom Cypher query
o Support for Neo4j 3.0.0 and the Bolt Java Driver 1.0
2.0.1
--------------
o Initial support for the Bolt Driver and Neo4j 3.0 M5
o Fixes around configuration being autocloseable, TransactionManager issues,
o ConnectionException thrown instead of ResultProcessingException when a connection could not be obtained to Neo4j
2.0.0-M4
--------------
o Fixes issue where an updating an entity with a null property did not remove the property and the original value was retained
o Fixes issue where a char[] and boxed primitive array (embedded driver only) properties on a node could not be mapped to the entity
2.0.0-M3
--------------
o Fixes issue where an array property of an entity would not be saved to the graph correctly if the contents of the array were modified.
o Provides support for handling non-standard resource protocols like 'vfs:'
o Improvements and bug fixes to http connection handling and connection pooling
o The reason for a Cypher statement or query failing is made available and is consistent across drivers. org.neo4j.ogm.exception.CypherException contains the error code and message.
o Drivers extracted into separate modules and dependencies
o Fixes issue where incoming relationships not navigable in the other direction could not be deleted
o Each driver moved to a separate module
o Fixes issue where a user managed transaction would be committed when saving an entity that required multiple Cypher requests
o Fixes issue where an undirected relationship was sometimes not deleted correctly
2.0.0-M2
--------------
o Fixes issue where the number of entities returned in a page is incorrect if related entities of the same type are mapped
o Fixes issue where the result of loading relationship entities with a custom load depth was incorrect. Furthermore, default load depth 1 for a relationship entity will now correctly load it's start and end nodes to depth 1.
o Support for collections of entities of type SortedSet, backed by a TreeSet
o A missing type attribute on a @RelationshipEntity will now result in a compile time error
o Fixes issue where registering an entity type and purging entities from the session were dependent on the equals() implementation of the entity
o Fixes issue where literal maps returned in custom cypher queries could not be parsed
o Fixes issue where saving a collection of entities would save each entity in a separate request and transaction. After this fix, they will be saved in the same transaction, with as few requests as possible
2.0.0-M1
--------------
o Support mapping of custom query results to domain entities
o Upgrade to Neo4j 2.3.2
o Retry http requests in the event of NoHttpResponseException
o Converters using parametrized types now work correctly
o Fixes http-client connection leak when request returns a 300/400/500 response code
o Performance improvements when
- creating, updating and deleting nodes
- creating, updating and deleting relationships and relationship entities
o All create, update and delete Cypher queries are cacheable
o Detect use of wildcards on generics and fail with appropriate message
o Support for Neo4j Embedded
o Split into modules for drivers, api, core, compiler and test