Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
This version implements #81, which adds a number of useful primitives for running time-aware queries. It also fixes some bugs in the server, which prevent users from selecting the TimeAwareEOLQueryEngine.
Client and server products are no longer manually uploaded to Github pre-releases: instead, you should fetch the latest client, server and update site from the Bintray nightlies:
This version introduces a number of improvements in the Hawk Eclipse UI and a convenience tweak in the server:
When creating a new Hawk index, the new UI separates the "Basic" aspects (instance name, factory, backend and updater) from the "Advanced" ones (which metamodel / model formats to support, query engines and so forth). Thanks to @beatrizsanchez for the new feature!
The Hawk server now autostarts the
p2.consolecomponent, making it possible to use the p2 Console to install new plugins within the server and update an existing installation. Further documentation will be produced later.
You will need this new server as well for the updated UI, as several backend human-readable names were tweaked to make them distinguishable from each other (especially Orient and Greycat).
This release introduces the new
listPluginDetails operation in the Thfit API, and fixes time-aware indexing over
LocalFolder VCS managers and other similar variants (e.g.
You will need to reindex from 1.2.0-rc2 if you were using the Greycat backend. There have been some major changes:
- Greycat on RocksDB now works on Windows, by disabling compression.
- Greycat on RocksDB is now deprecated. Instead, you are recommended to use Greycat on top of LevelDB: it is shown to be faster in all our tests.
- Rewrote use of embedded Lucene indexing in the Greycat backends: the indices are now properly time-aware (but not world-aware yet).
- Upgraded Greycat to version 11.
Model.typesproduces time-aware type wrappers as well.
- Added the timeline EOL query engine. You can run the same query in a time-agnostic way against all known versions of the model, and receive a sequence of (timepoint, result) pairs.
Optimisations and bugfixes
- UI: large SVN-based imports may take a while to download - provide status reports on import progress.
- SVN: speed up imports by reusing the connection as much as possible.
- Fix for regression in 1.2.0-rc1 in proxy resolution of Modelio-style fragmented models.
- Speed up
Model.allContentsby turning it into a dedicated lazy collection, with optimized
.sizeimplementations whenever possible.
Since the last interim release:
- Greycat backend is now ready to be used, with support for time-aware querying. Please see the wiki for details.
- Noticeable optimisations across Hawk (e.g. proxy reference resolution), while developing the integration with EMF Splitter.
- Additional scoped query modes, with different approaches to traversing the graph.
- Better querying UI, with options distributed across tabs to keep things simple.
- LocalFile: connector for indexing a single file in the local drive.
- LocalFolder: Java API allows for setting up custom filters. This is not yet available from the UI or the Thrift API.
- Dates are indexed in ISO 8601 format, which is more machine-friendly.
More noticeably, we have switched Hawk to the EPL2 license, with GPLv3 as secondary license in case you want to use the Neo4j backend. IFC support has been separated into another project, due to clashes with the BIMServer Affero GPLv3 licensing.
And even more importantly, Hawk is now an Eclipse project! We are in the process of migrating our code and other artifacts to Eclipse infrastructure.
Note that if you use the zipped update site, make sure you add these repositories first:
Since the previous interim release, the most important changes have been:
- Further optimisations and stability improvements for the Neo4j and OrientDB backends.
- Addition of a
sync-server.shscript to trigger re-checking of all locations from a Hawk server.
- Further improvements in logging for the Hawk server.
- First version of the experimental Greycat backend. It is currently usable as a standard backend, but it needs more optimisations to scale to large files. This backend is intended to provide time-aware querying to Hawk in the future, as Greycat matures.
- Improved UI for metamodel registration.
- Fixes for cross-file references in Eclipse workspaces (#57).
- Better error messages for EOL queries with bad syntax (#58).
- Code refactoring in the
This interim release adds support for UML model and profile parsing and fixes server stability and OrientDB issues. The OrientDB backend has been upgraded to version 2.2.30.
This minor release fixes several issues and replaces 1.1.0. Please do not install 1.1.0 anymore and use this instead. You can download the sources and various Eclipse products through the links below, or install it into your Eclipse instance from this update site:
Please note that you will also need the Epsilon 1.4 update site, as well as this third party component update site:
Epsilon 1.5.x is explicitly rejected when installing. Epsilon 1.5 changed the structure of several important classes in eol.engine and it is not possible to compile Hawk against both Epsilon 1.4 and Epsilon 1.5. Hawk 1.1.0 would allow you to install it on top of Epsilon 1.5.x, but you would receive runtime errors when creating an index.
service.api.dtfeature has been added to the update site. This feature was missing from the release, so it was not possible to install the "Thrift API support for the Eclipse GUI" feature.
Also, it fixes one small bug: "file:/" URIs such as those used by the LocalFolder repository would not be accepted. These work now. Please note as well that LocalFolder does not accept "file://" URIs at the moment.
Version 1.1.0 of Hawk has been released. You can download the sources and various Eclipse products through the links below, or install it into your Eclipse instance from this update site:
Hawk now includes the server components from the MONDO Integration project. There are Eclipse products for a server version of Hawk, and a command line client for the Thrift API exposed by the Hawk server. It is also possible to connect to a remote index through the Hawk Eclipse UI or its Java library.
Some improvements have been done since then:
- Queries through the Thrift API can now return nested lists and maps.
- It is possible to bootstrap multiple Hawk servers by placing appropriate configuration files.
Minor fixes for preventing NPEs with the Neo4j backend.
There have been many stability and thread safety fixes for the OrientDB backend, which is now based on OrientDB 2.2.8. The OrientDB backend has also been heavily optimised in terms of memory usage and storage space for large models - connections are pooled through Apache Commons Pool, and an internal cache based on Guava has been added to replace the default one.
- Eclipse workspace driver does not trigger updates when changing a file without saving.
- Derived edges are now represented as real edges, so you may use the
revRefNav_prefix on them to navigate them in the reverse direction.
- Reduced memory overhead when there are no derived attributes.
- Reduced memory usage when parsing EMF resources.
- The old export-based Modelio driver has been removed.
- The EXML-based Modelio driver stopped using ModelioMetamodelLib, and now uses Modelio 3.6+ metamodel descriptors. These descriptors can be obtained from the official source code, and some of them cover Modelio metamodels from prior releases (e.g. 3.4).
- It is possible to index
svn://URLs from the Eclipse UI now.