AgE 2.6
Released: TBA
General
- Dropped initial "j" (standing for "Java") from the official name.
Distributed AgE
- Removal of old communication services.
- Implementation of Hazelcast-based communication service.
- Added distributed "Hello world" example.
Node
- Replaced old bootstrapping mechanisms with a simplified bootstrapper and a complex lifecycle manager.
Core component
- Aggregate has been divided into a container and separate services.
SimpleAggregateuses the standard RW lock now.
Other changes
Dropped EasyMock for Mockito.
jAgE 2.5
Released: 25 November 2011
Platform
- New node life-cycle introduced based on
IStarterservice, which is responsible for creating required node services and running computation(s). Detailed description of node life-cycle can be found at Node start-up and command line arguments (AGE-38)- A reference implementation of the starter implemented (
BatchModeSingleStarter). The starter runs a single computation read from a configuration file given as a command line argument - Batch mode single run starter documentation
- A reference implementation of the starter implemented (
- Separating interface and implementation modules. Component diagram with avaialble interfaces can be found at: Node services (AGE-43)
- Communication modules based on RMI and JMS added: Communication based on RMI and Communication based on JMS (AGE-26)
Core component
- Splitting the project in two: The platform module holds the code related to what will become AgE components framework (Containers, ComponentDefinitions, etc.), the services module contains logic specific to multi-agents computations: (Workplaces, Agents, Queries, etc.).
- Broadcast selector was changed to select all addresses before initialisation (AGE-6).
- Added support for multicast selectors (AGE-21).
- New, simplified addressing mechanism (AGE-65). This new version greatly reduces the complexity of addressing configuration. For information about its usage refer to: Addressing, about implementation: Addressing scheme implementation. If you are upgrading from the older jAgE version, you may be interested in a short upgrade guide.
- New, unified message classes (AGE-65). For their description refer to: Messaging implementation. If you are upgrading from the older jAgE version, you may be interested in a short upgrade guide.
- Completely new queries API based on the fluent interface pattern (AGE-67). For their description refer to: Queries and Queries implementation.
ConnectedSimpleWorkplaceadded as an example implementation of a workplace aware of another workplaces (AGE-71).
Configuration
- A priori verification mechanism introduced (AGE-7)
- Components' dependency and properties injection is now independent from jAgE Properties API. (AGE-31) (Description)
- Components not longer have to implement IPropertyContainer and can be any simple POJO.
- Dependencies will be autowired, injected through setters, then fields annotated with
@Inject. - Properties will be injected through setters, Then fields. For backward compatibility, annotated jAgE Properties are also still supported, but this behavior is deprecated and will be removed in a future release.
- Explicit dependencies will override implicit autowiring.
- Support for autowiring of generic collections (lists, sets, maps) (AGE-16). All collections that are annotated with
@Injectare now looked up with its generic type taken into consideration. For more information about autowiring refer to: Components, about changes to the configuration file: SpecyfikacjaPlikuKonfiguracyjnego. - Tables support in configuration and autowiring (AGE-19). Tables can be used as with the
<array />element in XML configuration in the same way as<list />and<map />. For more information refer to: SpecyfikacjaPlikuKonfiguracyjnego. - Improved support for generics in the properties library (AGE-16, AGE-21).
- Resource loading similar to the one from Spring is now available (AGE-62). For more information about supported protocols refer to: Node start-up and command line arguments.
Other changes
- Logging framework has been changed to SLF4J (AGE-59).
- New examples (for their description see Sample applications):
- Bug fixes:
- Runtime exceptions thrown by actions are now handled by the aggregate and will no longer silently kill the current thread. (AGE-78)
- General code clean-up and upgrade to better exploit newer Java versions.
- Documentation upgrade and its further translation.
Wersja 2.4.1
Data release'u: 24-02-2010
- caribou@552 changing doxia-confluence version to 1.1.1 and therefore maven-site-plugin to 2.1-SNAPSHOT. Maven prerequisite changed to 2.1.0
Wersja 2.4.0
Data release'u: 02.10.2009
- caribou#72 dodano kontrakty komponentów opisane w plikach XMLowych; szczegółowa dokumentacja na stronie Komponenty oparte o deskyproty XMLowe.
Wersja 2.3.2
Data release'u: 08.09.2009
- caribou@535 doxia version changed to 1.0
- caribou@534 warning about not found action turned off as it was misleading
- caribou@525 BUG FIX: rekurencyjne wywołanie metody
PicoWorkplaceManager.unregisterAddress, które powodujowałe nieskończoną pętlę - caribou@525 BUG FIX: poprawione zlecenia akcji migracji (metoda
SimpleAgent.doMove) - dostosowane do nowego mechanizmu akcji, - caribou@523 dodanie budowania testów i ich źródeł do domyślnego cyklu builda; testy deployowane jako artefakty mavena, zobacz: Dostęp do testów platormy
Wersja 2.3.1
Data release'u: 21.05.2009
- caribou#68 akcje: przeniesione sprawdzanie poprawności adresów z agregatu do fazy inicjalizacji akcji
- caribou@515 zmieniono nazwe
AbstractActionStrategynaAbstractPerformActionStrategy
Wersja 2.3.0
Data release'u: 20.05.2009
- caribou#51 wirtualne właściwości dla agentów
- caribou#44 usunięto ID z
IPlatformComponent, dodano doIComponentInstanceProvidermetodęgetName - caribou#64 usunięto interfejs
IStrategyActionContext - caribou#58 implementacja wykonania akcji na agregacie oraz jego rodzicu (przyklad w tescie
ActionValidationTest) - caribou@498 usunięto akcje metodę
IAgent.getClone - caribou#54 akcja tworzenia nowego agenta (dodano factory method
SimpleAgent.createAddNewAgentAction - caribou#61 wydzielenie warunku stopu jako osobny komponent (
IPlatformComponent) - caribou#34 zmiana interfejsu
IAgeComponentnaIPlatformComponent, wprowadzenie interfejsuICoreComponent - caribou#53 zmiana nazwy
IActionStrategynaIPerformStrategyoraz metodyperformActionnaperform - caribou#57 wprowadzenie trzech faz wykonania akcji
INIT,MAIN,FINISH - caribou@488 usunięto akcje
cloneAction - caribou@488 dodano
AbstractStrategyandIProviderAwareStrategy - caribou#56 nowa adresacja - dokumentacja adresacji
- caribou#56 nowy mechanizm zapytań (query) - dokumentacja zapytań
- zmiana w mechanizmie akcji: caribou#48
- nowy proces wykonania (opis ...)
- caribou@477 SingleAction posiada jako target IAddressSelector<IAgentAddress> - Uwaga: stare akcje nie będą działać na nowym mechanizmie
- selectory adresów: base caribou#47, ANYCAST caribou#48, UNICAST caribou#49, BROADCAST caribou#50, NEWCAST caribou#45 (dokładny opis selectorów ...)
- usunięcie z adnotacji
PropertyFieldiPropertyGetteratrybututype - caribou@365: zmiana wersji z 2.2.2-SNAPSHOT na 2.3.0-SNAPSHOT
- caribou#27 & caribou#28 - zmiana formatu pliku konfiguracyjnego:
object->component, dodano tagagent, który jest aliasemcomponentz atrybutemisSingleton=false - caribou@224: dodanie do
SimpleAggrageteiSimpleWorkplacenotifikacji monitorów na końcu metody step - caribou#29: usunięcie aliasów z konfiguracji
- caribou@247: zmiana
MessagezComparable<Object>naComparable<Message> - caribou#31: przejście na Pico 2.6
- caribou@262:
ComponentDefinition: sprawdzanie, czy definicje zawierjące property initializers mają odpowiednią klasę (implementującąIPropertyContainer) - caribou#32: dodanie abstrakcyjnego przypadku testowego, udostępniającego wczytywanie konfiguracji z pliku i instancjonowanie komponentów na jej podstawie
- caribou#36: dodanie sprawdzania poprawności plików konfiguracyjnych na podstawie XML Schema: http://age.iisg.agh.edu.pl/xsd/age.xsd, zmiana targetNamespace na http://age.iisg.agh.edu.pl/AgE
- caribou#37: bugfix: dodanie do XML Schema konfiguracji typu prostego
Boolean - caribou#38: proste wstrzykiwanie zależności w komponentach na poziomie node'a