summaryrefslogtreecommitdiff
path: root/src/traffic-incidents-service/ReadMe.txt
blob: c75c6f7603719d9376f474aa162590f6a25d1c08 (plain)
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
Introduction
============
This folder contains a Java Proof of Concept implementation of the GENIVI TrafficIncidentsService, and a proxy library as a convenience for Java clients of this service.
See 'ivi-navigation/test/traffic-incidents-service' for examples of running this service (without D-Bus) with a test Feed and several clients within Eclipse, and for running the same (with D-Bus) on Linux.


Project structure
=================
This project consists of a number of Eclipse projects.
Data models are created with the Eclipse Modeling Framework (EMF), so EMF has to be installed in your Eclipse in order to compile and run the projects. All projects which contain an EMF model, have an extension '-model'.
Each project has a 'ReadMe.confluence' file, which provides basic information on the project.
The following package naming convention is used:

org.genivi:
Basename for all packages.

    trafficincidentsservice:
    All files related to the TrafficIncidentsService (interfaces, data models and implementation).

    booleanexpr, common, iconset, location, locref:
    Classes that could be re-used in GENIVI.

    trafficinfo:
    All other code of this PoC, i.e. code to demonstrate the use of the TrafficIncidentsService.


Building the complete PoC in Eclipse (no D-Bus)
===========================================================
The repository contains the Eclipse projects, but not an Eclipse WorkSpace. So this has to be created manually.
Start Eclipse and chose your 'ivi-navigation/src/traffic-incidents-service' folder as WorkSpace. Import all the projects.



Eclipse projects
================

org.genivi.basetypes-model
--------------------------
This project defines basic data types, which should become generic GENIVI data types.
Packages:

org.genivi.common
Common classes: Coordinate, LocalizedString, RectangularArea.

org.genivi.common.impl
Implementation of org.genivi.common

org.genivi.common.util
Utility classes related to org.genivi.common

org.genivi.location
Classes describing locations.

org.genivi.location.impl
Implementation of org.genivi.location

org.genivi.location.util
Utility classes related to org.genivi.location


org.genivi.booleanexpr-model
----------------------------
This project defines a Boolean Expression. These expressions are used in the TrafficIncidents interface, but can also be used in other locations where hierarchical data is used.
Packages:

org.genivi.booleanexpr
The interface definition for Boolean Expressions.

org.genivi.booleanexpr.impl
Implementation of org.genivi.booleanexpr

org.genivi.booleanexpr.util
Utility classes related to org.genivi.booleanexpr


org.genivi.iconset-model
------------------------
This project defines an Icon Set. Icon Sets are used in the TrafficIncidents interface, but can also be used in other locations where icons are used.
Packages:

org.genivi.iconset
The interface definition for Icon Sets.

org.genivi.iconset.impl
Implementation of org.genivi.iconset

org.genivi.iconset.util
Utility classes related to org.genivi.iconset


org.genivi.locref-model
-----------------------
This project defines an interface for decoding Location References. Currently this is an internal interface within the TrafficIncidentsService. However, in the future, they may be a separate component for decoding Location References (as part of Map Data Access).
Packages:

org.genivi.locref
The interface definition for decoding Location References.

org.genivi.locref.impl
Implementation of org.genivi.locref

org.genivi.locref.util
Utility classes related to org.genivi.locref


org.genivi.trafficincidentsservice-model
----------------------------------------
This project defines the main interfaces of the TrafficIncidentsService. The data models for traffic incidents are in sub packages.
Packages:

org.genivi.trafficincidentsservice
The main interfaces of the TrafficIncidentsService.

org.genivi.trafficincidentsservice.impl
The generated implementation of org.genivi.trafficincidentsservice. From here the generated implementations TrafficIncidentsImpl.java and TrafficIncidentFeed.java are not used.

org.genivi.trafficincidentsservice.util
Utility classes related to org.genivi.trafficincidentsservice.


org.genivi.trafficincidentsservice.dbus.impl
--------------------------------------------
This project contains a class to wrap the TrafficIncidentsService from org.genivi.trafficincidentsservice.refimpl into a D-Bus service.
Packages:

org.genivi.trafficincidentsservice.dbus.impl
The class to wrap the TrafficIncidentsService into a D-Bus service.


org.genivi.trafficincidentsservice.dbuswrapper
----------------------------------------------
This project defines the D-Bus version of the interfaces of the TrafficIncidentsService and it contains the Proxies and Adaptors to connect the D-Bus interfaces to the plain java interfaces.
Packages:

org.genivi.trafficincidentsservice.trafficincidents.dbus
D-Bus interface definition for the TrafficIncidents interface.

org.genivi.trafficincidentsservice.trafficincidents.dbus.impl
Glue between the java version and the D-Bus version of the TrafficIncidents interface (Proxy and Adaptor).

org.genivi.trafficincidentsservice.trafficincidentfeed.dbus
D-Bus interface definition for the TrafficIncidentFeed interface.

org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl
Glue between the java version and the D-Bus version of the TrafficIncidentFeed interface (Proxy and Adaptor).


org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model
------------------------------------------------------------------------------------------------
This project defines the TrafficIncident data model as used in the TrafficIncidentFeed interface.
Packages:

org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident
The TrafficIncident data model.

org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl
Implementation of the TrafficIncident data model.

org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.util
Utility classes related to the TrafficIncident data model.


org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model
------------------------------------------------------------------------------------------
This project defines the TrafficIncident data model as used in the TrafficIncidents interface.
Packages:

org.genivi.trafficincidentsservice.trafficincidents.trafficincident
The TrafficIncident data model.

org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl
Implementation of the TrafficIncident data model.

org.genivi.trafficincidentsservice.trafficincidents.trafficincident.util
Utility classes related to the TrafficIncident data model.


org.genivi.trafficincidentsservice.trafficincidenttables-model
--------------------------------------------------------------
This project defines the tables that are used in the Traffic Incident definitions of both the TrafficIncidents interface and the TrafficIncidentFeed interface.
Packages:

org.genivi.trafficincidentsservice.trafficincidenttables
The tables that are used in the Traffic Incident definitions.

org.genivi.trafficincidentsservice.trafficincidenttables.impl
Implementation related to org.genivi.trafficincidentsservice.trafficincidenttables.


org.genivi.trafficinfo
----------------------
This project contains the main part of the Java only PoC for the TrafficIncidentsService. It makes use of several data models which are defined in other packages.
On top of this there are projects to add D-Bus layers between the components.
Packages

org.genivi.locref.decoder
Interface definition for Location Reference decoders. This interface is used in the implementation of org.genivi.locref.LocationReferenceDecodingService.

org.genivi.locref.decoder.openlr
OpenLR implementation of decoder interface defined in org.genivi.locref.decoder.

org.genivi.locref.refimpl
Reference implementation of org.genivi.locref.LocationReferenceDecodingService

org.genivi.trafficincidentsservice
Contains default implementations for TrafficIncidentsListener and TrafficIncidentFeedListener.

org.genivi.trafficincidentsservice.refimpl
Reference implementation of a TrafficIncidentsService (without any D-Bus binding).

org.genivi.trafficincidentsservice.textgenerator
Defines an interface for a text generator, as a sub component of the TrafficIncidentsService.

org.genivi.trafficincidentsservice.textgenerator.basictextgenerator
Basic implementation of a textgenerator.


org.genivi.trafficinfo.dbus-java
--------------------------------
This project is a copy of the dbus-java project by Matthew Johnson, with small modifications needed to get the TrafficIncidentsService PoC running. Therefore there is no further description of this project.


org.genivi.trafficinfo.demo
---------------------------
This project contains classes which can be used in demo's and prototypes.
Packages:

org.genivi.trafficinfo.demo.communicationchannel
Contains classes for communication channels (Used to simulation the communication channels between the server and the client)

org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel
Defines the interfaces for a 2 way communication channel (currently not used in this PoC).

org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel.impl
Provides a dummy implementation for a 2 way communication channel.

org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel
Defines the interfaces for a broadcast channel.

org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.impl
Provides a dummy implementation for a broadcast channel.

org.genivi.trafficinfo.demo.logging
Provides a formatter, which creates a link to the Java code in Eclipse console output.


org.genivi.trafficinfo.libmatthew
---------------------------------
This is an unmodified copy of the 'libmatthew' project by Matthew Johnson. Therefore there is no further description of this project.
This project is copied here as it is used by the dbus-java project.