Commit 05fe05604dabec18427ced96052dc006420c0d55
1 parent
da345024
Web interface
AccessPointListener beginning First servlets management
Showing
18 changed files
with
551 additions
and
277 deletions
Show diff stats
1 | +# Created by .ignore support plugin (hsz.mobi) |
.idea/artifacts/LO53_mobile_localization_war_exploded.xml
@@ -33,6 +33,7 @@ | @@ -33,6 +33,7 @@ | ||
33 | <element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils:1.9.3" /> | 33 | <element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils:1.9.3" /> |
34 | <element id="library" level="project" name="Maven: commons-logging:commons-logging:1.2" /> | 34 | <element id="library" level="project" name="Maven: commons-logging:commons-logging:1.2" /> |
35 | <element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.2" /> | 35 | <element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.2" /> |
36 | + <element id="library" level="project" name="Maven: taglibs:standard:1.1.2" /> | ||
36 | </element> | 37 | </element> |
37 | </element> | 38 | </element> |
38 | <element id="directory" name="META-INF"> | 39 | <element id="directory" name="META-INF"> |
.idea/dataSources/767b098c-c5bc-42ee-b3bc-d02e521ecc23.xml
@@ -9,8 +9,8 @@ | @@ -9,8 +9,8 @@ | ||
9 | </database> | 9 | </database> |
10 | <schema id="3" parent="2" name="public"> | 10 | <schema id="3" parent="2" name="public"> |
11 | <ObjectId>2200</ObjectId> | 11 | <ObjectId>2200</ObjectId> |
12 | - <IntrospectionTimestamp>2017-05-31.07:36:16.132</IntrospectionTimestamp> | ||
13 | - <IntrospectionStateNumber>11286</IntrospectionStateNumber> | 12 | + <IntrospectionTimestamp>2017-06-07.19:30:21.978</IntrospectionTimestamp> |
13 | + <IntrospectionStateNumber>17257</IntrospectionStateNumber> | ||
14 | <Current>1</Current> | 14 | <Current>1</Current> |
15 | <Visible>1</Visible> | 15 | <Visible>1</Visible> |
16 | </schema> | 16 | </schema> |
@@ -30,65 +30,65 @@ | @@ -30,65 +30,65 @@ | ||
30 | <ObjectId>12113</ObjectId> | 30 | <ObjectId>12113</ObjectId> |
31 | </schema> | 31 | </schema> |
32 | <sequence id="9" parent="3" name="hibernate_sequence"> | 32 | <sequence id="9" parent="3" name="hibernate_sequence"> |
33 | - <ObjectId>35521</ObjectId> | ||
34 | - <StateNumber>11277</StateNumber> | 33 | + <ObjectId>47042</ObjectId> |
34 | + <StateNumber>17248</StateNumber> | ||
35 | <SequenceIdentity>1</SequenceIdentity> | 35 | <SequenceIdentity>1</SequenceIdentity> |
36 | </sequence> | 36 | </sequence> |
37 | <table id="10" parent="3" name="accesspoint"> | 37 | <table id="10" parent="3" name="accesspoint"> |
38 | - <ObjectId>35523</ObjectId> | ||
39 | - <StateNumber>11285</StateNumber> | 38 | + <ObjectId>47044</ObjectId> |
39 | + <StateNumber>17256</StateNumber> | ||
40 | </table> | 40 | </table> |
41 | <table id="11" parent="3" name="location"> | 41 | <table id="11" parent="3" name="location"> |
42 | - <ObjectId>35528</ObjectId> | ||
43 | - <StateNumber>11286</StateNumber> | 42 | + <ObjectId>47049</ObjectId> |
43 | + <StateNumber>17257</StateNumber> | ||
44 | </table> | 44 | </table> |
45 | <table id="12" parent="3" name="map"> | 45 | <table id="12" parent="3" name="map"> |
46 | - <ObjectId>35533</ObjectId> | ||
47 | - <StateNumber>11284</StateNumber> | 46 | + <ObjectId>47054</ObjectId> |
47 | + <StateNumber>17255</StateNumber> | ||
48 | </table> | 48 | </table> |
49 | <table id="13" parent="3" name="rssi"> | 49 | <table id="13" parent="3" name="rssi"> |
50 | - <ObjectId>35541</ObjectId> | ||
51 | - <StateNumber>11286</StateNumber> | 50 | + <ObjectId>47062</ObjectId> |
51 | + <StateNumber>17257</StateNumber> | ||
52 | </table> | 52 | </table> |
53 | <column id="14" parent="10" name="id"> | 53 | <column id="14" parent="10" name="id"> |
54 | <Position>1</Position> | 54 | <Position>1</Position> |
55 | <DataType>integer|0</DataType> | 55 | <DataType>integer|0</DataType> |
56 | <NotNull>1</NotNull> | 56 | <NotNull>1</NotNull> |
57 | - <StateNumber>11278</StateNumber> | 57 | + <StateNumber>17249</StateNumber> |
58 | </column> | 58 | </column> |
59 | <column id="15" parent="10" name="mac_address"> | 59 | <column id="15" parent="10" name="mac_address"> |
60 | <Position>2</Position> | 60 | <Position>2</Position> |
61 | <DataType>varchar(18)|0</DataType> | 61 | <DataType>varchar(18)|0</DataType> |
62 | - <StateNumber>11278</StateNumber> | 62 | + <StateNumber>17249</StateNumber> |
63 | </column> | 63 | </column> |
64 | <column id="16" parent="10" name="location_id_id"> | 64 | <column id="16" parent="10" name="location_id_id"> |
65 | <Position>3</Position> | 65 | <Position>3</Position> |
66 | <DataType>integer|0</DataType> | 66 | <DataType>integer|0</DataType> |
67 | - <StateNumber>11278</StateNumber> | 67 | + <StateNumber>17249</StateNumber> |
68 | </column> | 68 | </column> |
69 | <index id="17" parent="10" name="accesspoint_pkey"> | 69 | <index id="17" parent="10" name="accesspoint_pkey"> |
70 | - <ObjectId>35526</ObjectId> | 70 | + <ObjectId>47047</ObjectId> |
71 | <ColNames>id</ColNames> | 71 | <ColNames>id</ColNames> |
72 | <Unique>1</Unique> | 72 | <Unique>1</Unique> |
73 | </index> | 73 | </index> |
74 | <index id="18" parent="10" name="uk_58em6b5lhouv812y1d05nwv9w"> | 74 | <index id="18" parent="10" name="uk_58em6b5lhouv812y1d05nwv9w"> |
75 | - <ObjectId>35546</ObjectId> | 75 | + <ObjectId>47067</ObjectId> |
76 | <ColNames>mac_address</ColNames> | 76 | <ColNames>mac_address</ColNames> |
77 | <Unique>1</Unique> | 77 | <Unique>1</Unique> |
78 | </index> | 78 | </index> |
79 | <key id="19" parent="10" name="accesspoint_pkey"> | 79 | <key id="19" parent="10" name="accesspoint_pkey"> |
80 | - <ObjectId>35527</ObjectId> | 80 | + <ObjectId>47048</ObjectId> |
81 | <ColNames>id</ColNames> | 81 | <ColNames>id</ColNames> |
82 | <UnderlyingIndexName>accesspoint_pkey</UnderlyingIndexName> | 82 | <UnderlyingIndexName>accesspoint_pkey</UnderlyingIndexName> |
83 | <Primary>1</Primary> | 83 | <Primary>1</Primary> |
84 | </key> | 84 | </key> |
85 | <key id="20" parent="10" name="uk_58em6b5lhouv812y1d05nwv9w"> | 85 | <key id="20" parent="10" name="uk_58em6b5lhouv812y1d05nwv9w"> |
86 | - <ObjectId>35547</ObjectId> | 86 | + <ObjectId>47068</ObjectId> |
87 | <ColNames>mac_address</ColNames> | 87 | <ColNames>mac_address</ColNames> |
88 | <UnderlyingIndexName>uk_58em6b5lhouv812y1d05nwv9w</UnderlyingIndexName> | 88 | <UnderlyingIndexName>uk_58em6b5lhouv812y1d05nwv9w</UnderlyingIndexName> |
89 | </key> | 89 | </key> |
90 | <foreign-key id="21" parent="10" name="fk6hlfk3hfjm2b4i72q2ihikhhf"> | 90 | <foreign-key id="21" parent="10" name="fk6hlfk3hfjm2b4i72q2ihikhhf"> |
91 | - <ObjectId>35548</ObjectId> | 91 | + <ObjectId>47069</ObjectId> |
92 | <ColNames>location_id_id</ColNames> | 92 | <ColNames>location_id_id</ColNames> |
93 | <RefTableName>location</RefTableName> | 93 | <RefTableName>location</RefTableName> |
94 | <RefKeyName>location_pkey</RefKeyName> | 94 | <RefKeyName>location_pkey</RefKeyName> |
@@ -98,38 +98,38 @@ | @@ -98,38 +98,38 @@ | ||
98 | <Position>1</Position> | 98 | <Position>1</Position> |
99 | <DataType>integer|0</DataType> | 99 | <DataType>integer|0</DataType> |
100 | <NotNull>1</NotNull> | 100 | <NotNull>1</NotNull> |
101 | - <StateNumber>11279</StateNumber> | 101 | + <StateNumber>17250</StateNumber> |
102 | </column> | 102 | </column> |
103 | <column id="23" parent="11" name="x"> | 103 | <column id="23" parent="11" name="x"> |
104 | <Position>2</Position> | 104 | <Position>2</Position> |
105 | <DataType>double precision|0</DataType> | 105 | <DataType>double precision|0</DataType> |
106 | <NotNull>1</NotNull> | 106 | <NotNull>1</NotNull> |
107 | - <StateNumber>11279</StateNumber> | 107 | + <StateNumber>17250</StateNumber> |
108 | </column> | 108 | </column> |
109 | <column id="24" parent="11" name="y"> | 109 | <column id="24" parent="11" name="y"> |
110 | <Position>3</Position> | 110 | <Position>3</Position> |
111 | <DataType>double precision|0</DataType> | 111 | <DataType>double precision|0</DataType> |
112 | <NotNull>1</NotNull> | 112 | <NotNull>1</NotNull> |
113 | - <StateNumber>11279</StateNumber> | 113 | + <StateNumber>17250</StateNumber> |
114 | </column> | 114 | </column> |
115 | <column id="25" parent="11" name="map_id"> | 115 | <column id="25" parent="11" name="map_id"> |
116 | <Position>4</Position> | 116 | <Position>4</Position> |
117 | <DataType>integer|0</DataType> | 117 | <DataType>integer|0</DataType> |
118 | - <StateNumber>11279</StateNumber> | 118 | + <StateNumber>17250</StateNumber> |
119 | </column> | 119 | </column> |
120 | <index id="26" parent="11" name="location_pkey"> | 120 | <index id="26" parent="11" name="location_pkey"> |
121 | - <ObjectId>35531</ObjectId> | 121 | + <ObjectId>47052</ObjectId> |
122 | <ColNames>id</ColNames> | 122 | <ColNames>id</ColNames> |
123 | <Unique>1</Unique> | 123 | <Unique>1</Unique> |
124 | </index> | 124 | </index> |
125 | <key id="27" parent="11" name="location_pkey"> | 125 | <key id="27" parent="11" name="location_pkey"> |
126 | - <ObjectId>35532</ObjectId> | 126 | + <ObjectId>47053</ObjectId> |
127 | <ColNames>id</ColNames> | 127 | <ColNames>id</ColNames> |
128 | <UnderlyingIndexName>location_pkey</UnderlyingIndexName> | 128 | <UnderlyingIndexName>location_pkey</UnderlyingIndexName> |
129 | <Primary>1</Primary> | 129 | <Primary>1</Primary> |
130 | </key> | 130 | </key> |
131 | <foreign-key id="28" parent="11" name="fk5t1p6agc1qiyteqvt1tbkml2e"> | 131 | <foreign-key id="28" parent="11" name="fk5t1p6agc1qiyteqvt1tbkml2e"> |
132 | - <ObjectId>35553</ObjectId> | 132 | + <ObjectId>47074</ObjectId> |
133 | <ColNames>map_id</ColNames> | 133 | <ColNames>map_id</ColNames> |
134 | <RefTableName>map</RefTableName> | 134 | <RefTableName>map</RefTableName> |
135 | <RefKeyName>map_pkey</RefKeyName> | 135 | <RefKeyName>map_pkey</RefKeyName> |
@@ -139,109 +139,101 @@ | @@ -139,109 +139,101 @@ | ||
139 | <Position>1</Position> | 139 | <Position>1</Position> |
140 | <DataType>integer|0</DataType> | 140 | <DataType>integer|0</DataType> |
141 | <NotNull>1</NotNull> | 141 | <NotNull>1</NotNull> |
142 | - <StateNumber>11280</StateNumber> | 142 | + <StateNumber>17251</StateNumber> |
143 | </column> | 143 | </column> |
144 | <column id="30" parent="12" name="content"> | 144 | <column id="30" parent="12" name="content"> |
145 | <Position>2</Position> | 145 | <Position>2</Position> |
146 | <DataType>bytea|0</DataType> | 146 | <DataType>bytea|0</DataType> |
147 | - <StateNumber>11280</StateNumber> | 147 | + <StateNumber>17251</StateNumber> |
148 | </column> | 148 | </column> |
149 | <column id="31" parent="12" name="description"> | 149 | <column id="31" parent="12" name="description"> |
150 | <Position>3</Position> | 150 | <Position>3</Position> |
151 | <DataType>varchar(100)|0</DataType> | 151 | <DataType>varchar(100)|0</DataType> |
152 | - <StateNumber>11280</StateNumber> | 152 | + <StateNumber>17251</StateNumber> |
153 | </column> | 153 | </column> |
154 | <column id="32" parent="12" name="m_height"> | 154 | <column id="32" parent="12" name="m_height"> |
155 | <Position>4</Position> | 155 | <Position>4</Position> |
156 | <DataType>double precision|0</DataType> | 156 | <DataType>double precision|0</DataType> |
157 | <NotNull>1</NotNull> | 157 | <NotNull>1</NotNull> |
158 | - <StateNumber>11280</StateNumber> | 158 | + <StateNumber>17251</StateNumber> |
159 | </column> | 159 | </column> |
160 | <column id="33" parent="12" name="m_width"> | 160 | <column id="33" parent="12" name="m_width"> |
161 | <Position>5</Position> | 161 | <Position>5</Position> |
162 | <DataType>double precision|0</DataType> | 162 | <DataType>double precision|0</DataType> |
163 | <NotNull>1</NotNull> | 163 | <NotNull>1</NotNull> |
164 | - <StateNumber>11280</StateNumber> | 164 | + <StateNumber>17251</StateNumber> |
165 | </column> | 165 | </column> |
166 | <column id="34" parent="12" name="px_height"> | 166 | <column id="34" parent="12" name="px_height"> |
167 | <Position>6</Position> | 167 | <Position>6</Position> |
168 | <DataType>integer|0</DataType> | 168 | <DataType>integer|0</DataType> |
169 | <NotNull>1</NotNull> | 169 | <NotNull>1</NotNull> |
170 | - <StateNumber>11280</StateNumber> | 170 | + <StateNumber>17251</StateNumber> |
171 | </column> | 171 | </column> |
172 | <column id="35" parent="12" name="px_width"> | 172 | <column id="35" parent="12" name="px_width"> |
173 | <Position>7</Position> | 173 | <Position>7</Position> |
174 | <DataType>integer|0</DataType> | 174 | <DataType>integer|0</DataType> |
175 | <NotNull>1</NotNull> | 175 | <NotNull>1</NotNull> |
176 | - <StateNumber>11280</StateNumber> | 176 | + <StateNumber>17251</StateNumber> |
177 | </column> | 177 | </column> |
178 | <index id="36" parent="12" name="map_pkey"> | 178 | <index id="36" parent="12" name="map_pkey"> |
179 | - <ObjectId>35539</ObjectId> | 179 | + <ObjectId>47060</ObjectId> |
180 | <ColNames>id</ColNames> | 180 | <ColNames>id</ColNames> |
181 | <Unique>1</Unique> | 181 | <Unique>1</Unique> |
182 | </index> | 182 | </index> |
183 | <key id="37" parent="12" name="map_pkey"> | 183 | <key id="37" parent="12" name="map_pkey"> |
184 | - <ObjectId>35540</ObjectId> | 184 | + <ObjectId>47061</ObjectId> |
185 | <ColNames>id</ColNames> | 185 | <ColNames>id</ColNames> |
186 | <UnderlyingIndexName>map_pkey</UnderlyingIndexName> | 186 | <UnderlyingIndexName>map_pkey</UnderlyingIndexName> |
187 | <Primary>1</Primary> | 187 | <Primary>1</Primary> |
188 | </key> | 188 | </key> |
189 | - <column id="38" parent="13" name="accesspointid"> | 189 | + <column id="38" parent="13" name="id"> |
190 | <Position>1</Position> | 190 | <Position>1</Position> |
191 | <DataType>integer|0</DataType> | 191 | <DataType>integer|0</DataType> |
192 | <NotNull>1</NotNull> | 192 | <NotNull>1</NotNull> |
193 | - <StateNumber>11281</StateNumber> | 193 | + <StateNumber>17252</StateNumber> |
194 | </column> | 194 | </column> |
195 | - <column id="39" parent="13" name="locationid"> | 195 | + <column id="39" parent="13" name="occurences"> |
196 | <Position>2</Position> | 196 | <Position>2</Position> |
197 | <DataType>integer|0</DataType> | 197 | <DataType>integer|0</DataType> |
198 | <NotNull>1</NotNull> | 198 | <NotNull>1</NotNull> |
199 | - <StateNumber>11281</StateNumber> | 199 | + <StateNumber>17252</StateNumber> |
200 | </column> | 200 | </column> |
201 | - <column id="40" parent="13" name="occurences"> | 201 | + <column id="40" parent="13" name="value"> |
202 | <Position>3</Position> | 202 | <Position>3</Position> |
203 | - <DataType>integer|0</DataType> | ||
204 | - <NotNull>1</NotNull> | ||
205 | - <StateNumber>11281</StateNumber> | ||
206 | - </column> | ||
207 | - <column id="41" parent="13" name="value"> | ||
208 | - <Position>4</Position> | ||
209 | <DataType>double precision|0</DataType> | 203 | <DataType>double precision|0</DataType> |
210 | <NotNull>1</NotNull> | 204 | <NotNull>1</NotNull> |
211 | - <StateNumber>11281</StateNumber> | 205 | + <StateNumber>17252</StateNumber> |
212 | </column> | 206 | </column> |
213 | - <column id="42" parent="13" name="accesspoint_id"> | ||
214 | - <Position>5</Position> | 207 | + <column id="41" parent="13" name="accesspoint_id"> |
208 | + <Position>4</Position> | ||
215 | <DataType>integer|0</DataType> | 209 | <DataType>integer|0</DataType> |
216 | - <StateNumber>11281</StateNumber> | 210 | + <StateNumber>17252</StateNumber> |
217 | </column> | 211 | </column> |
218 | - <column id="43" parent="13" name="location_id"> | ||
219 | - <Position>6</Position> | 212 | + <column id="42" parent="13" name="location_id"> |
213 | + <Position>5</Position> | ||
220 | <DataType>integer|0</DataType> | 214 | <DataType>integer|0</DataType> |
221 | - <StateNumber>11281</StateNumber> | 215 | + <StateNumber>17252</StateNumber> |
222 | </column> | 216 | </column> |
223 | - <index id="44" parent="13" name="rssi_pkey"> | ||
224 | - <ObjectId>35544</ObjectId> | ||
225 | - <ColNames>accesspointid | ||
226 | -locationid</ColNames> | 217 | + <index id="43" parent="13" name="rssi_pkey"> |
218 | + <ObjectId>47065</ObjectId> | ||
219 | + <ColNames>id</ColNames> | ||
227 | <Unique>1</Unique> | 220 | <Unique>1</Unique> |
228 | </index> | 221 | </index> |
229 | - <key id="45" parent="13" name="rssi_pkey"> | ||
230 | - <ObjectId>35545</ObjectId> | ||
231 | - <ColNames>accesspointid | ||
232 | -locationid</ColNames> | 222 | + <key id="44" parent="13" name="rssi_pkey"> |
223 | + <ObjectId>47066</ObjectId> | ||
224 | + <ColNames>id</ColNames> | ||
233 | <UnderlyingIndexName>rssi_pkey</UnderlyingIndexName> | 225 | <UnderlyingIndexName>rssi_pkey</UnderlyingIndexName> |
234 | <Primary>1</Primary> | 226 | <Primary>1</Primary> |
235 | </key> | 227 | </key> |
236 | - <foreign-key id="46" parent="13" name="fk6g5r08ytgt65j1ge02na9qnbh"> | ||
237 | - <ObjectId>35558</ObjectId> | 228 | + <foreign-key id="45" parent="13" name="fk6g5r08ytgt65j1ge02na9qnbh"> |
229 | + <ObjectId>47079</ObjectId> | ||
238 | <ColNames>accesspoint_id</ColNames> | 230 | <ColNames>accesspoint_id</ColNames> |
239 | <RefTableName>accesspoint</RefTableName> | 231 | <RefTableName>accesspoint</RefTableName> |
240 | <RefKeyName>accesspoint_pkey</RefKeyName> | 232 | <RefKeyName>accesspoint_pkey</RefKeyName> |
241 | <RefColNames>id</RefColNames> | 233 | <RefColNames>id</RefColNames> |
242 | </foreign-key> | 234 | </foreign-key> |
243 | - <foreign-key id="47" parent="13" name="fk8s4vdy24a1d8idnwoxi0njnko"> | ||
244 | - <ObjectId>35563</ObjectId> | 235 | + <foreign-key id="46" parent="13" name="fk8s4vdy24a1d8idnwoxi0njnko"> |
236 | + <ObjectId>47084</ObjectId> | ||
245 | <ColNames>location_id</ColNames> | 237 | <ColNames>location_id</ColNames> |
246 | <RefTableName>location</RefTableName> | 238 | <RefTableName>location</RefTableName> |
247 | <RefKeyName>location_pkey</RefKeyName> | 239 | <RefKeyName>location_pkey</RefKeyName> |
.idea/dataSources/767b098c-c5bc-42ee-b3bc-d02e521ecc23/_metadata_/metadata
No preview for this file type
.idea/dataSources/767b098c-c5bc-42ee-b3bc-d02e521ecc23/_metadata_/metadata.values.at
No preview for this file type
LO53_mobile_localization.iml
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> | 2 | +<module classpath="eclipse" classpath-dir="$MODULE_DIR$" org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> |
3 | <component name="FacetManager"> | 3 | <component name="FacetManager"> |
4 | <facet type="hibernate" name="Hibernate"> | 4 | <facet type="hibernate" name="Hibernate"> |
5 | <configuration> | 5 | <configuration> |
6 | <datasource-map> | 6 | <datasource-map> |
7 | <unit-entry name="hibernate.cfg.xml" value="767b098c-c5bc-42ee-b3bc-d02e521ecc23" /> | 7 | <unit-entry name="hibernate.cfg.xml" value="767b098c-c5bc-42ee-b3bc-d02e521ecc23" /> |
8 | </datasource-map> | 8 | </datasource-map> |
9 | - <naming-strategy-map /> | 9 | + <naming-strategy-map> |
10 | + <unit-entry name="hibernate.cfg.xml" /> | ||
11 | + </naming-strategy-map> | ||
10 | <deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" /> | 12 | <deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" /> |
11 | </configuration> | 13 | </configuration> |
12 | </facet> | 14 | </facet> |
13 | <facet type="web" name="Web"> | 15 | <facet type="web" name="Web"> |
14 | <configuration> | 16 | <configuration> |
17 | + <descriptors> | ||
18 | + <deploymentDescriptor name="context.xml" url="file://$MODULE_DIR$/src/main/webapp/META-INF/context.xml" /> | ||
19 | + <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" /> | ||
20 | + </descriptors> | ||
15 | <webroots> | 21 | <webroots> |
16 | <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /> | 22 | <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /> |
17 | </webroots> | 23 | </webroots> |
@@ -22,44 +28,4 @@ | @@ -22,44 +28,4 @@ | ||
22 | </configuration> | 28 | </configuration> |
23 | </facet> | 29 | </facet> |
24 | </component> | 30 | </component> |
25 | - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false"> | ||
26 | - <output url="file://$MODULE_DIR$/target/classes" /> | ||
27 | - <output-test url="file://$MODULE_DIR$/target/test-classes" /> | ||
28 | - <content url="file://$MODULE_DIR$"> | ||
29 | - <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> | ||
30 | - <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> | ||
31 | - <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> | ||
32 | - <excludeFolder url="file://$MODULE_DIR$/target" /> | ||
33 | - </content> | ||
34 | - <orderEntry type="inheritedJdk" /> | ||
35 | - <orderEntry type="sourceFolder" forTests="false" /> | ||
36 | - <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.5.Final" level="project" /> | ||
37 | - <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" /> | ||
38 | - <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" /> | ||
39 | - <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" /> | ||
40 | - <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" /> | ||
41 | - <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1.1" level="project" /> | ||
42 | - <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" /> | ||
43 | - <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.0" level="project" /> | ||
44 | - <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> | ||
45 | - <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" /> | ||
46 | - <orderEntry type="library" name="Maven: javax.enterprise:cdi-api:1.1" level="project" /> | ||
47 | - <orderEntry type="library" name="Maven: javax.el:el-api:2.2" level="project" /> | ||
48 | - <orderEntry type="library" name="Maven: org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:1.0.0.Beta1" level="project" /> | ||
49 | - <orderEntry type="library" name="Maven: javax.annotation:jsr250-api:1.0" level="project" /> | ||
50 | - <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" /> | ||
51 | - <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-servlet-api:9.0.0.M15" level="project" /> | ||
52 | - <orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:slf4j-log4j12:1.5.8" level="project" /> | ||
53 | - <orderEntry type="library" scope="RUNTIME" name="Maven: log4j:log4j:1.2.14" level="project" /> | ||
54 | - <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.5.8" level="project" /> | ||
55 | - <orderEntry type="library" name="Maven: postgresql:postgresql:9.1-901.jdbc4" level="project" /> | ||
56 | - <orderEntry type="library" name="Maven: org.hibernate:hibernate-annotations:3.5.6-Final" level="project" /> | ||
57 | - <orderEntry type="library" name="Maven: org.hibernate:hibernate-commons-annotations:3.2.0.Final" level="project" /> | ||
58 | - <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.0.Final" level="project" /> | ||
59 | - <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" /> | ||
60 | - <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" /> | ||
61 | - <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> | ||
62 | - <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" /> | ||
63 | - <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> | ||
64 | - </component> | ||
65 | </module> | 31 | </module> |
66 | \ No newline at end of file | 32 | \ No newline at end of file |
pom.xml
@@ -73,6 +73,11 @@ | @@ -73,6 +73,11 @@ | ||
73 | <version>4.12</version> | 73 | <version>4.12</version> |
74 | <scope>test</scope> | 74 | <scope>test</scope> |
75 | </dependency> | 75 | </dependency> |
76 | + <dependency> | ||
77 | + <groupId>taglibs</groupId> | ||
78 | + <artifactId>standard</artifactId> | ||
79 | + <version>1.1.2</version> | ||
80 | + </dependency> | ||
76 | </dependencies> | 81 | </dependencies> |
77 | 82 | ||
78 | 83 |
src/main/java/com/lo53_mobile_localization/core/entity/Rssi.java
@@ -8,18 +8,15 @@ import java.io.Serializable; | @@ -8,18 +8,15 @@ import java.io.Serializable; | ||
8 | */ | 8 | */ |
9 | 9 | ||
10 | @Entity | 10 | @Entity |
11 | -public class Rssi implements Serializable { | 11 | +public class Rssi implements Serializable, IEntity { |
12 | 12 | ||
13 | - @EmbeddedId | ||
14 | - private RssiID id; | 13 | + @Id |
14 | + @GeneratedValue | ||
15 | + private int id; | ||
15 | 16 | ||
16 | - @MapsId("locationId") | ||
17 | - @JoinColumn(name = "location_id") | ||
18 | @OneToOne | 17 | @OneToOne |
19 | private Location location; | 18 | private Location location; |
20 | 19 | ||
21 | - @MapsId("accessPointId") | ||
22 | - @JoinColumn(name = "accessPoint_id") | ||
23 | @OneToOne | 20 | @OneToOne |
24 | private AccessPoint accessPoint; | 21 | private AccessPoint accessPoint; |
25 | 22 | ||
@@ -43,10 +40,6 @@ public class Rssi implements Serializable { | @@ -43,10 +40,6 @@ public class Rssi implements Serializable { | ||
43 | this.occurences = occurences; | 40 | this.occurences = occurences; |
44 | } | 41 | } |
45 | 42 | ||
46 | - public RssiID getId() { | ||
47 | - return id; | ||
48 | - } | ||
49 | - | ||
50 | public Location getLocation() { | 43 | public Location getLocation() { |
51 | return location; | 44 | return location; |
52 | } | 45 | } |
@@ -62,4 +55,9 @@ public class Rssi implements Serializable { | @@ -62,4 +55,9 @@ public class Rssi implements Serializable { | ||
62 | public void setAccessPoint(AccessPoint accessPoint) { | 55 | public void setAccessPoint(AccessPoint accessPoint) { |
63 | this.accessPoint = accessPoint; | 56 | this.accessPoint = accessPoint; |
64 | } | 57 | } |
58 | + | ||
59 | + @Override | ||
60 | + public int getId() { | ||
61 | + return id; | ||
62 | + } | ||
65 | } | 63 | } |
src/main/java/com/lo53_mobile_localization/core/entity/RssiID.java
@@ -3,6 +3,7 @@ package com.lo53_mobile_localization.core.entity; | @@ -3,6 +3,7 @@ package com.lo53_mobile_localization.core.entity; | ||
3 | import javax.persistence.Column; | 3 | import javax.persistence.Column; |
4 | import javax.persistence.Embeddable; | 4 | import javax.persistence.Embeddable; |
5 | import java.io.Serializable; | 5 | import java.io.Serializable; |
6 | +import java.util.Objects; | ||
6 | 7 | ||
7 | /** | 8 | /** |
8 | * Created by Thomas on 18/05/2017. | 9 | * Created by Thomas on 18/05/2017. |
@@ -11,8 +12,10 @@ import java.io.Serializable; | @@ -11,8 +12,10 @@ import java.io.Serializable; | ||
11 | @Embeddable | 12 | @Embeddable |
12 | public class RssiID implements Serializable { | 13 | public class RssiID implements Serializable { |
13 | 14 | ||
15 | + | ||
14 | @Column(name = "location_id") | 16 | @Column(name = "location_id") |
15 | private int locationId; | 17 | private int locationId; |
18 | + | ||
16 | @Column(name = "accessPoint_id") | 19 | @Column(name = "accessPoint_id") |
17 | private int accessPointId; | 20 | private int accessPointId; |
18 | 21 | ||
@@ -31,4 +34,18 @@ public class RssiID implements Serializable { | @@ -31,4 +34,18 @@ public class RssiID implements Serializable { | ||
31 | public void setAccessPointId(int accessPointId) { | 34 | public void setAccessPointId(int accessPointId) { |
32 | this.accessPointId = accessPointId; | 35 | this.accessPointId = accessPointId; |
33 | } | 36 | } |
37 | + | ||
38 | + @Override | ||
39 | + public boolean equals(Object o) { | ||
40 | + if (this == o) return true; | ||
41 | + if (!(o instanceof RssiID)) return false; | ||
42 | + RssiID that = (RssiID) o; | ||
43 | + return Objects.equals(getLocationId(), that.getLocationId()) && | ||
44 | + Objects.equals(getAccessPointId(), that.getAccessPointId()); | ||
45 | + } | ||
46 | + | ||
47 | + @Override | ||
48 | + public int hashCode() { | ||
49 | + return Objects.hash(getAccessPointId(), getLocationId()); | ||
50 | + } | ||
34 | } | 51 | } |
src/main/java/com/lo53_mobile_localization/core/repository/RSSIDAO.java
1 | package com.lo53_mobile_localization.core.repository; | 1 | package com.lo53_mobile_localization.core.repository; |
2 | 2 | ||
3 | +import com.lo53_mobile_localization.core.entity.AccessPoint; | ||
4 | +import com.lo53_mobile_localization.core.entity.Location; | ||
3 | import com.lo53_mobile_localization.core.entity.Rssi; | 5 | import com.lo53_mobile_localization.core.entity.Rssi; |
4 | import com.lo53_mobile_localization.core.entity.RssiID; | 6 | import com.lo53_mobile_localization.core.entity.RssiID; |
5 | import com.lo53_mobile_localization.core.util.HibernateUtil; | 7 | import com.lo53_mobile_localization.core.util.HibernateUtil; |
@@ -21,136 +23,10 @@ import java.util.List; | @@ -21,136 +23,10 @@ import java.util.List; | ||
21 | /** | 23 | /** |
22 | * Created by Thomas on 10/05/2017. | 24 | * Created by Thomas on 10/05/2017. |
23 | */ | 25 | */ |
24 | -public class RSSIDAO { | ||
25 | - | ||
26 | - protected Logger LOGGER; | ||
27 | - protected EntityManagerFactory emf = Persistence.createEntityManagerFactory("rssi"); | ||
28 | - protected EntityManager em = emf.createEntityManager(); | 26 | +public class RSSIDAO extends DefaultDAO<Rssi>{ |
29 | 27 | ||
30 | public RSSIDAO() { | 28 | public RSSIDAO() { |
31 | super(); | 29 | super(); |
30 | + entityType = Rssi.class; | ||
32 | } | 31 | } |
33 | - | ||
34 | - /** | ||
35 | - * To insert an entity into the database | ||
36 | - * @param entity | ||
37 | - */ | ||
38 | - public void insertEntity(Rssi entity) { | ||
39 | - Session session = HibernateUtil.getSession(); | ||
40 | - EntityTransaction entr = em.getTransaction(); | ||
41 | - try { | ||
42 | - entr.begin(); | ||
43 | - session.persist(entity); | ||
44 | - entr.commit(); | ||
45 | - } catch(Exception e) { | ||
46 | - LOGGER.error("error in insertEntity: " + e); | ||
47 | - if(entr != null) | ||
48 | - entr.rollback(); | ||
49 | - throw e; | ||
50 | - } | ||
51 | - } | ||
52 | - | ||
53 | - /** | ||
54 | - * To update an entity into the database | ||
55 | - * @param id | ||
56 | - * @param entity | ||
57 | - */ | ||
58 | - public void updateEntity(RssiID id, Rssi entity) throws Exception { | ||
59 | - | ||
60 | - Rssi storedEntity = getEntity(id); | ||
61 | - | ||
62 | - try { | ||
63 | - BeanUtils.copyProperties(storedEntity, entity); | ||
64 | - } catch (IllegalAccessException|InvocationTargetException e) { | ||
65 | - LOGGER.error("error in updateEntity: " + e); | ||
66 | - throw e; | ||
67 | - } | ||
68 | - | ||
69 | - Session session = HibernateUtil.getSession(); | ||
70 | - Transaction tr = session.getTransaction(); | ||
71 | - try { | ||
72 | - tr.begin(); | ||
73 | - session.update(entity); | ||
74 | - tr.commit(); | ||
75 | - } catch(Exception e) { | ||
76 | - LOGGER.error("error in updateEntity: " + e); | ||
77 | - if(tr != null) | ||
78 | - tr.rollback(); | ||
79 | - throw e; | ||
80 | - } | ||
81 | - } | ||
82 | - | ||
83 | - /** | ||
84 | - * To remove an entity into the database | ||
85 | - * @param id | ||
86 | - */ | ||
87 | - public void removeEntity(RssiID id) throws Exception { | ||
88 | - | ||
89 | - Rssi entity = getEntity(id); | ||
90 | - | ||
91 | - Session session = HibernateUtil.getSession(); | ||
92 | - Transaction tr = session.getTransaction(); | ||
93 | - try { | ||
94 | - tr.begin(); | ||
95 | - session.delete(entity); | ||
96 | - tr.commit(); | ||
97 | - } catch(Exception e) { | ||
98 | - LOGGER.error("error in removeEntity: " + e); | ||
99 | - if(tr != null) | ||
100 | - tr.rollback(); | ||
101 | - throw e; | ||
102 | - } | ||
103 | - } | ||
104 | - | ||
105 | - /** | ||
106 | - * To get an entity from its id and class | ||
107 | - * @param id | ||
108 | - * @return | ||
109 | - */ | ||
110 | - @SuppressWarnings(value="unchecked") | ||
111 | - public Rssi getEntity(RssiID id) throws Exception { | ||
112 | - Rssi entity = null; | ||
113 | - | ||
114 | - Session session = HibernateUtil.getSession(); | ||
115 | - Transaction tr = session.getTransaction(); | ||
116 | - try { | ||
117 | - tr.begin(); | ||
118 | - String hql = "From Rssi r where r.id.locationId = :locationId AND r.id.accessPointId = :accessPointId"; | ||
119 | - | ||
120 | - | ||
121 | - | ||
122 | - String strLocId = Integer.toString(id.getLocationId()); | ||
123 | - String strApId = Integer.toString(id.getAccessPointId()); | ||
124 | - Query query = HibernateUtil.getSession().createQuery(hql); | ||
125 | - query.setParameter("locationId",strApId); | ||
126 | - query.setParameter("accessPointId", strApId); | ||
127 | - entity = (Rssi)query.getSingleResult(); | ||
128 | - tr.commit(); | ||
129 | - } catch(Exception e) { | ||
130 | - LOGGER.error("error in getEntity: " + e); | ||
131 | - if(tr != null) | ||
132 | - tr.rollback(); | ||
133 | - throw e; | ||
134 | - } | ||
135 | - return entity; | ||
136 | - } | ||
137 | - | ||
138 | - /** | ||
139 | - * To get all entities | ||
140 | - * @return | ||
141 | - */ | ||
142 | - public List getEntities() throws Exception { | ||
143 | - List listEntities = null; | ||
144 | - | ||
145 | - Session session = HibernateUtil.getSession(); | ||
146 | - try { | ||
147 | - Query query = session.createQuery("from Rssi"); | ||
148 | - listEntities = query.list(); | ||
149 | - }catch (HibernateException e) { | ||
150 | - LOGGER.error("error in getEntities: " + e); | ||
151 | - throw e; | ||
152 | - } | ||
153 | - return listEntities; | ||
154 | - } | ||
155 | - | ||
156 | } | 32 | } |
src/main/java/com/lo53_mobile_localization/core/service/AccessPointService.java
@@ -2,7 +2,12 @@ package com.lo53_mobile_localization.core.service; | @@ -2,7 +2,12 @@ package com.lo53_mobile_localization.core.service; | ||
2 | 2 | ||
3 | import com.lo53_mobile_localization.core.entity.AccessPoint; | 3 | import com.lo53_mobile_localization.core.entity.AccessPoint; |
4 | import com.lo53_mobile_localization.core.entity.IEntity; | 4 | import com.lo53_mobile_localization.core.entity.IEntity; |
5 | +import com.lo53_mobile_localization.core.entity.Location; | ||
6 | +import com.lo53_mobile_localization.core.entity.Rssi; | ||
5 | import com.lo53_mobile_localization.core.repository.AccessPointDAO; | 7 | import com.lo53_mobile_localization.core.repository.AccessPointDAO; |
8 | +import com.lo53_mobile_localization.core.util.HibernateUtil; | ||
9 | +import org.hibernate.Session; | ||
10 | +import org.hibernate.query.Query; | ||
6 | 11 | ||
7 | import java.util.List; | 12 | import java.util.List; |
8 | 13 | ||
@@ -37,4 +42,35 @@ public class AccessPointService implements IService{ | @@ -37,4 +42,35 @@ public class AccessPointService implements IService{ | ||
37 | public List getEntities() throws Exception { | 42 | public List getEntities() throws Exception { |
38 | return this.accessPointDAO.getEntities(); | 43 | return this.accessPointDAO.getEntities(); |
39 | } | 44 | } |
45 | + | ||
46 | + public AccessPoint getSingleAccessPointFromMacAdress(String mac){ | ||
47 | + | ||
48 | + Session session = HibernateUtil.getSession(); | ||
49 | + session.beginTransaction(); | ||
50 | + | ||
51 | + String hql= "from " + AccessPoint.class.getCanonicalName() + " ap where ap.mac_address = :mac"; | ||
52 | + | ||
53 | + Query query = session.createQuery(hql); | ||
54 | + query.setParameter("mac", mac); | ||
55 | + | ||
56 | + AccessPoint result = (AccessPoint) query.getSingleResult(); | ||
57 | + | ||
58 | + return result; | ||
59 | + } | ||
60 | + | ||
61 | + public List<AccessPoint> getAccessPointFromMacAdress(String mac){ | ||
62 | + | ||
63 | + Session session = HibernateUtil.getSession(); | ||
64 | + session.beginTransaction(); | ||
65 | + | ||
66 | + String hql= "from " + AccessPoint.class.getCanonicalName() + " ap where ap.mac_address = :mac"; | ||
67 | + | ||
68 | + Query query = session.createQuery(hql); | ||
69 | + query.setParameter("mac", mac); | ||
70 | + | ||
71 | + List<AccessPoint> result = query.list(); | ||
72 | + | ||
73 | + return result; | ||
74 | + } | ||
75 | + | ||
40 | } | 76 | } |
src/main/java/com/lo53_mobile_localization/core/service/LocationService.java
1 | package com.lo53_mobile_localization.core.service; | 1 | package com.lo53_mobile_localization.core.service; |
2 | 2 | ||
3 | +import com.lo53_mobile_localization.core.entity.AccessPoint; | ||
3 | import com.lo53_mobile_localization.core.entity.IEntity; | 4 | import com.lo53_mobile_localization.core.entity.IEntity; |
4 | import com.lo53_mobile_localization.core.entity.Location; | 5 | import com.lo53_mobile_localization.core.entity.Location; |
6 | +import com.lo53_mobile_localization.core.entity.Rssi; | ||
5 | import com.lo53_mobile_localization.core.repository.LocationDAO; | 7 | import com.lo53_mobile_localization.core.repository.LocationDAO; |
8 | +import com.lo53_mobile_localization.core.util.HibernateUtil; | ||
9 | +import org.hibernate.Session; | ||
10 | +import org.hibernate.query.Query; | ||
6 | 11 | ||
7 | import java.util.List; | 12 | import java.util.List; |
8 | 13 | ||
@@ -37,4 +42,20 @@ public class LocationService implements IService { | @@ -37,4 +42,20 @@ public class LocationService implements IService { | ||
37 | public List getEntities() throws Exception { | 42 | public List getEntities() throws Exception { |
38 | return this.locationDAO.getEntities(); | 43 | return this.locationDAO.getEntities(); |
39 | } | 44 | } |
45 | + | ||
46 | + public Location getLocationFromCoordinates(double x, double y){ | ||
47 | + | ||
48 | + Session session = HibernateUtil.getSession(); | ||
49 | + session.beginTransaction(); | ||
50 | + | ||
51 | + String hql= "from " + Location.class.getCanonicalName() + " l where l.x = :x and l.y = :y"; | ||
52 | + | ||
53 | + Query query = session.createQuery(hql); | ||
54 | + query.setParameter("x", x); | ||
55 | + query.setParameter("y",y); | ||
56 | + | ||
57 | + Location result = (Location) query.getSingleResult(); | ||
58 | + | ||
59 | + return result; | ||
60 | + } | ||
40 | } | 61 | } |
src/main/java/com/lo53_mobile_localization/core/service/RSSIService.java
1 | package com.lo53_mobile_localization.core.service; | 1 | package com.lo53_mobile_localization.core.service; |
2 | 2 | ||
3 | -import com.lo53_mobile_localization.core.entity.IEntity; | ||
4 | -import com.lo53_mobile_localization.core.entity.Rssi; | ||
5 | -import com.lo53_mobile_localization.core.entity.RssiID; | 3 | +import com.lo53_mobile_localization.core.entity.*; |
6 | import com.lo53_mobile_localization.core.repository.RSSIDAO; | 4 | import com.lo53_mobile_localization.core.repository.RSSIDAO; |
5 | +import com.lo53_mobile_localization.core.util.HibernateUtil; | ||
6 | +import org.hibernate.Session; | ||
7 | +import org.hibernate.query.Query; | ||
7 | 8 | ||
8 | import java.util.List; | 9 | import java.util.List; |
9 | 10 | ||
@@ -19,23 +20,56 @@ public class RSSIService { | @@ -19,23 +20,56 @@ public class RSSIService { | ||
19 | this.rssi_recordDAO = new RSSIDAO(); | 20 | this.rssi_recordDAO = new RSSIDAO(); |
20 | } | 21 | } |
21 | 22 | ||
22 | - public void storeEntity(Rssi entity) { | 23 | + public void storeEntity(IEntity entity) { |
23 | this.rssi_recordDAO.insertEntity((Rssi) entity); | 24 | this.rssi_recordDAO.insertEntity((Rssi) entity); |
24 | } | 25 | } |
25 | 26 | ||
26 | - public void updateEntity(RssiID id, Rssi entity) throws Exception { | 27 | + public void updateEntity(int id, IEntity entity) throws Exception { |
27 | this.rssi_recordDAO.updateEntity(id, (Rssi) entity); | 28 | this.rssi_recordDAO.updateEntity(id, (Rssi) entity); |
28 | } | 29 | } |
29 | 30 | ||
30 | - public void removeEntity(RssiID id) throws Exception { | 31 | + public void removeEntity(int id) throws Exception { |
31 | this.rssi_recordDAO.removeEntity(id); | 32 | this.rssi_recordDAO.removeEntity(id); |
32 | } | 33 | } |
33 | 34 | ||
34 | - public Rssi getEntity(RssiID id) throws Exception { | 35 | + public Rssi getEntity(int id) throws Exception { |
35 | return this.rssi_recordDAO.getEntity(id); | 36 | return this.rssi_recordDAO.getEntity(id); |
36 | } | 37 | } |
37 | 38 | ||
38 | public List getEntities() throws Exception { | 39 | public List getEntities() throws Exception { |
39 | return this.rssi_recordDAO.getEntities(); | 40 | return this.rssi_recordDAO.getEntities(); |
40 | } | 41 | } |
42 | + | ||
43 | + public Rssi getRssiWithLocationAndAP(Location location, AccessPoint ap){ | ||
44 | + | ||
45 | + Session session = HibernateUtil.getSession(); | ||
46 | + session.beginTransaction(); | ||
47 | + | ||
48 | + String hql= "from " + Rssi.class.getCanonicalName() + " r where r.location.id = :loc and r.accessPoint.id = :accesspoint"; | ||
49 | + | ||
50 | + Query query = session.createQuery(hql); | ||
51 | + query.setParameter("loc", location.getId()); | ||
52 | + query.setParameter("accesspoint",ap.getId()); | ||
53 | + | ||
54 | + Rssi result = (Rssi)query.getSingleResult(); | ||
55 | + | ||
56 | + return result; | ||
57 | + } | ||
58 | + | ||
59 | + public List<Rssi> getRssiWithMacAdress(String mac){ | ||
60 | + | ||
61 | + Session session = HibernateUtil.getSession(); | ||
62 | + session.beginTransaction(); | ||
63 | + | ||
64 | + String hql= "from " + Rssi.class.getCanonicalName() + " r where r.accessPoint.mac_address = :macAddress"; | ||
65 | + | ||
66 | + Query query = session.createQuery(hql); | ||
67 | + query.setParameter("macAddress", mac); | ||
68 | + | ||
69 | + List<Rssi> result = query.list(); | ||
70 | + | ||
71 | + return result; | ||
72 | + } | ||
73 | + | ||
74 | + | ||
41 | } | 75 | } |
src/main/java/com/lo53_mobile_localization/core/servlet/CalibrationServlet.java
1 | package com.lo53_mobile_localization.core.servlet; | 1 | package com.lo53_mobile_localization.core.servlet; |
2 | 2 | ||
3 | +import com.lo53_mobile_localization.core.entity.Location; | ||
4 | +import com.lo53_mobile_localization.core.service.LocationService; | ||
5 | +import com.lo53_mobile_localization.core.servlet.util.Param; | ||
6 | + | ||
7 | +import javax.servlet.ServletException; | ||
8 | +import javax.servlet.annotation.WebServlet; | ||
3 | import javax.servlet.http.HttpServlet; | 9 | import javax.servlet.http.HttpServlet; |
10 | +import javax.servlet.http.HttpServletRequest; | ||
11 | +import javax.servlet.http.HttpServletResponse; | ||
4 | import java.io.BufferedReader; | 12 | import java.io.BufferedReader; |
5 | import java.io.FileReader; | 13 | import java.io.FileReader; |
6 | import java.io.IOException; | 14 | import java.io.IOException; |
15 | +import java.net.DatagramPacket; | ||
16 | +import java.net.DatagramSocket; | ||
17 | +import java.net.InetAddress; | ||
18 | +import java.nio.charset.StandardCharsets; | ||
7 | 19 | ||
8 | /** | 20 | /** |
9 | * Created by Thomas on 18/05/2017. | 21 | * Created by Thomas on 18/05/2017. |
10 | */ | 22 | */ |
23 | +@WebServlet( | ||
24 | + name = "CalibrationServlet", | ||
25 | + urlPatterns = {"/calibration"} | ||
26 | +) | ||
11 | public class CalibrationServlet extends HttpServlet { | 27 | public class CalibrationServlet extends HttpServlet { |
12 | 28 | ||
13 | 29 | ||
30 | + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { | ||
31 | + | ||
32 | + response.setContentType(Param.CONTENT_TYPE); | ||
33 | + | ||
34 | + request.getRequestDispatcher(Param.PATH_CALIBRATION).forward(request, response); | ||
35 | + | ||
36 | + | ||
37 | + } | ||
38 | + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { | ||
39 | + | ||
40 | + String apRequestIp = request.getRemoteAddr(); | ||
41 | + System.out.println("Request from " + apRequestIp + " received"); | ||
42 | + | ||
43 | + int x = -1; | ||
44 | + int y = -1; | ||
45 | + try{ | ||
46 | + x = Integer.parseInt(request.getParameter("positionX")); | ||
47 | + y = Integer.parseInt(request.getParameter("positionY")); | ||
48 | + | ||
49 | + System.out.println("x = " + x + " y = " + y); | ||
50 | + }catch (NumberFormatException nfe){ | ||
51 | + System.out.println("Wrong parameters"); | ||
52 | + } | ||
53 | + | ||
54 | + if (x != -1 && y != -1){ | ||
14 | 55 | ||
56 | + //String macAddr = getMacAddressFromArpTable(apRequestIp); | ||
57 | + String macAddr = "12:12:12:12:12:12"; | ||
15 | 58 | ||
59 | + if (macAddr != null){ | ||
60 | + System.out.println("MAC Address found : "+macAddr); | ||
61 | + DatagramSocket socket = null; | ||
62 | + try{ | ||
63 | + for (int i = 0 ; i < Param.AP_IPS.length ; i++){ | ||
64 | + | ||
65 | + InetAddress address = InetAddress.getByAddress(Param.AP_IPS[i]); | ||
66 | + socket = new DatagramSocket(Param.AP_COMM_PORT); | ||
67 | + | ||
68 | + String msg = buildRssiRequestMessage(Param.AP_IPS[i], Param.AP_COMM_PORT); | ||
69 | + | ||
70 | + DatagramPacket packet = new DatagramPacket(msg.getBytes(), msg.length(), address, Param.AP_COMM_PORT); | ||
71 | + socket.send(packet); | ||
72 | + System.out.println("Sending "+msg+" to AP number " + i); | ||
73 | + } | ||
74 | + socket.close(); | ||
75 | + } catch (IOException iox){ | ||
76 | + System.out.println(iox+" [Calibration Servlet] IOException"); | ||
77 | + }finally{ | ||
78 | + if (socket != null) socket.close(); | ||
79 | + } | ||
80 | + }else{ | ||
81 | + System.out.println("MAC Address not found !"); | ||
82 | + } | ||
83 | + }else{ | ||
84 | + System.out.println("Coordinates not found"); | ||
85 | + } | ||
86 | + request.getRequestDispatcher(Param.PATH_CALIBRATION).forward(request, response); | ||
87 | + } | ||
88 | + | ||
89 | + private String getMacAddressFromArpTable(String ip) throws IOException { | ||
16 | 90 | ||
17 | - private String getMacAdressFromArpTable(String ip) throws IOException { | ||
18 | - // Open the ARP table too look up for this IP | ||
19 | BufferedReader in = new BufferedReader(new FileReader("/proc/net/arp")); | 91 | BufferedReader in = new BufferedReader(new FileReader("/proc/net/arp")); |
20 | String strLine; | 92 | String strLine; |
21 | String macAddr = null; | 93 | String macAddr = null; |
22 | 94 | ||
23 | - // Read File Line By Line | ||
24 | while ((strLine = in.readLine()) != null) { | 95 | while ((strLine = in.readLine()) != null) { |
25 | - // Find the matching IP | ||
26 | System.out.println(strLine); | 96 | System.out.println(strLine); |
27 | if (strLine.contains(ip)) { | 97 | if (strLine.contains(ip)) { |
28 | - // Split the line | ||
29 | String[] table = strLine.split(" "); | 98 | String[] table = strLine.split(" "); |
30 | - // Retrieve the MAC Address | ||
31 | - //macAddr = table[24]; | ||
32 | for (int i = 0; i < table.length; i++) { | 99 | for (int i = 0; i < table.length; i++) { |
33 | if (table[i].length() == 17) | 100 | if (table[i].length() == 17) |
34 | macAddr = table[i]; | 101 | macAddr = table[i]; |
35 | - //System.out.println("Table["+i+"] : "+table[i]); | ||
36 | } | 102 | } |
37 | } | 103 | } |
38 | } | 104 | } |
39 | return macAddr; | 105 | return macAddr; |
40 | } | 106 | } |
41 | 107 | ||
108 | + private String buildRssiRequestMessage(byte [] apIp, int port){ | ||
109 | + | ||
110 | + String request = "http://"; | ||
111 | + | ||
112 | + String ip = new String(apIp, StandardCharsets.UTF_8); | ||
113 | + | ||
114 | + String macaddress = (String) getServletContext().getAttribute("macaddress"); | ||
115 | + String map_id = "1"; | ||
116 | + String get = "/get"; | ||
117 | + String macReq = "macs="; | ||
118 | + | ||
119 | + request += ip + ":" + port + get + "?"; | ||
120 | + request += macReq + macaddress; | ||
121 | + | ||
122 | + System.out.println(request); | ||
123 | + | ||
124 | + return request; | ||
125 | + } | ||
126 | + | ||
42 | } | 127 | } |
src/main/java/com/lo53_mobile_localization/core/servlet/PositionServlet.java
0 → 100644
1 | +package com.lo53_mobile_localization.core.servlet; | ||
2 | + | ||
3 | +import com.lo53_mobile_localization.core.entity.Rssi; | ||
4 | +import com.lo53_mobile_localization.core.service.RSSIService; | ||
5 | +import com.lo53_mobile_localization.core.servlet.util.Param; | ||
6 | + | ||
7 | +import java.io.BufferedReader; | ||
8 | + | ||
9 | +import java.io.FileReader; | ||
10 | +import java.io.IOException; | ||
11 | +import java.net.DatagramPacket; | ||
12 | +import java.net.DatagramSocket; | ||
13 | +import java.net.InetAddress; | ||
14 | +import java.nio.charset.StandardCharsets; | ||
15 | +import java.util.List; | ||
16 | + | ||
17 | +import javax.servlet.ServletException; | ||
18 | +import javax.servlet.annotation.WebServlet; | ||
19 | +import javax.servlet.http.HttpServlet; | ||
20 | +import javax.servlet.http.HttpServletRequest; | ||
21 | +import javax.servlet.http.HttpServletResponse; | ||
22 | + | ||
23 | + | ||
24 | +@WebServlet( | ||
25 | + name = "PositionServlet", | ||
26 | + urlPatterns = {"/position"} | ||
27 | +)public class PositionServlet extends HttpServlet { | ||
28 | + | ||
29 | + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { | ||
30 | + | ||
31 | + String requestIp = request.getRemoteAddr(); | ||
32 | + System.out.println("Request from ip : " + requestIp); | ||
33 | + | ||
34 | + //String macAddr = getMacAdressFromArpTable(requestIp); | ||
35 | + String macAddr = "12:12:12:12:12:12"; | ||
36 | + | ||
37 | + if (macAddr != null) { | ||
38 | + | ||
39 | + // Send Get request to all APs | ||
40 | + DatagramSocket socket = null; | ||
41 | + try { | ||
42 | + for (int i = 0; i < Param.AP_IPS.length; i++) { | ||
43 | + InetAddress address = InetAddress.getByAddress(Param.AP_IPS[i]); | ||
44 | + socket = new DatagramSocket(Param.AP_COMM_PORT); | ||
45 | + | ||
46 | + String msg = buildMessage(macAddr, Param.AP_IPS[i]); | ||
47 | + | ||
48 | + DatagramPacket packet = new DatagramPacket(msg.getBytes(), msg.length(), address, Param.AP_COMM_PORT); | ||
49 | + socket.send(packet); | ||
50 | + System.out.println("Sending " + msg + " to AP number " + i); | ||
51 | + } | ||
52 | + socket.close(); | ||
53 | + } catch (IOException iox) { | ||
54 | + System.out.println("[Positioning Servlet:Sending GET message to APs] IOException"); | ||
55 | + } finally { | ||
56 | + if (socket != null) socket.close(); | ||
57 | + } | ||
58 | + | ||
59 | + // Sleep during 500ms | ||
60 | + try { | ||
61 | + Thread.sleep(500); | ||
62 | + } catch (InterruptedException e1) { | ||
63 | + e1.printStackTrace(); | ||
64 | + } | ||
65 | + | ||
66 | + RSSIService rssiService = new RSSIService(); | ||
67 | + | ||
68 | + List<Rssi> rssis = rssiService.getRssiWithMacAdress(macAddr); | ||
69 | + | ||
70 | + int nbRes = 0; | ||
71 | + for (Rssi r : rssis) { | ||
72 | + nbRes++; | ||
73 | + } | ||
74 | + | ||
75 | + | ||
76 | + } | ||
77 | + } | ||
78 | + | ||
79 | + | ||
80 | + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { | ||
81 | + } | ||
82 | + | ||
83 | + private String getMacAdressFromArpTable(String ip) throws IOException { | ||
84 | + | ||
85 | + BufferedReader in = new BufferedReader(new FileReader("/proc/net/arp")); | ||
86 | + String strLine; | ||
87 | + String macAddr = null; | ||
88 | + | ||
89 | + while ((strLine = in.readLine()) != null) { | ||
90 | + System.out.println(strLine); | ||
91 | + if (strLine.contains(ip)) { | ||
92 | + String[] table = strLine.split(" "); | ||
93 | + //macAddr = table[24]; | ||
94 | + for (int i = 0; i < table.length; i++) { | ||
95 | + if (table[i].length() == 17) | ||
96 | + macAddr = table[i]; | ||
97 | + } | ||
98 | + } | ||
99 | + } | ||
100 | + return macAddr; | ||
101 | + } | ||
102 | + | ||
103 | + private String buildMessage(String mac, byte[] apIp){ | ||
104 | + | ||
105 | + //String msg = http://<AP IP>:<PORT>/get?macs=XX:XX:XX:XX:XX | ||
106 | + | ||
107 | + String request = "http://"; | ||
108 | + | ||
109 | + String ip = new String(apIp, StandardCharsets.UTF_8); | ||
110 | + int port = Param.AP_COMM_PORT; | ||
111 | + String map_id = "1"; | ||
112 | + String positionServlet = "/position"; | ||
113 | + | ||
114 | + request += ip + ":" + port + positionServlet + "?"; | ||
115 | + request += "macs=" + mac; | ||
116 | + | ||
117 | + System.out.println(request); | ||
118 | + | ||
119 | + return request; | ||
120 | + } | ||
121 | + | ||
122 | +} | ||
0 | \ No newline at end of file | 123 | \ No newline at end of file |
src/main/java/com/lo53_mobile_localization/core/servlet/PreferencesServlet.java
0 → 100644
1 | +package com.lo53_mobile_localization.core.servlet; | ||
2 | + | ||
3 | +import com.lo53_mobile_localization.core.servlet.util.Param; | ||
4 | + | ||
5 | +import javax.servlet.ServletException; | ||
6 | +import javax.servlet.annotation.WebServlet; | ||
7 | +import javax.servlet.http.HttpServlet; | ||
8 | +import javax.servlet.http.HttpServletRequest; | ||
9 | +import javax.servlet.http.HttpServletResponse; | ||
10 | +import java.io.IOException; | ||
11 | +import java.util.regex.Matcher; | ||
12 | +import java.util.regex.Pattern; | ||
13 | + | ||
14 | +/** | ||
15 | + * Created by Thomas on 03/06/2017. | ||
16 | + */ | ||
17 | +@WebServlet( | ||
18 | + name = "PreferencesServlet", | ||
19 | + urlPatterns = {"/preferences"} | ||
20 | +) | ||
21 | +public class PreferencesServlet extends HttpServlet { | ||
22 | + | ||
23 | + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { | ||
24 | + response.setContentType(Param.CONTENT_TYPE); | ||
25 | + request.setAttribute("message", "HELLO THERE"); | ||
26 | + request.getRequestDispatcher(Param.PATH_PREFERENCES).forward(request,response); | ||
27 | + | ||
28 | + } | ||
29 | + | ||
30 | + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { | ||
31 | + | ||
32 | + response.setContentType(Param.CONTENT_TYPE); | ||
33 | + | ||
34 | + String macAddress = request.getParameter(Param.AP_MAC_ADDRESS); | ||
35 | + String ip = request.getParameter(Param.ATTRIBUTE_IP); | ||
36 | + String port = request.getParameter(Param.ATTRIBUTE_PORT); | ||
37 | + | ||
38 | + String IP_PATTERN = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." | ||
39 | + + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." | ||
40 | + + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." | ||
41 | + + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"; | ||
42 | + | ||
43 | + String MAC_PATTERN = "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$"; | ||
44 | + | ||
45 | + String PORT_PATTERN = "[0-9]{4}"; | ||
46 | + | ||
47 | + Pattern patternMac = Pattern.compile(MAC_PATTERN); | ||
48 | + Matcher matchMac = patternMac.matcher(macAddress); | ||
49 | + | ||
50 | + Pattern patternIP = Pattern.compile(IP_PATTERN); | ||
51 | + Matcher matchIp = patternIP.matcher(ip); | ||
52 | + | ||
53 | + Pattern patternPort = Pattern.compile(PORT_PATTERN); | ||
54 | + Matcher matchPort = patternPort.matcher(port); | ||
55 | + | ||
56 | + if (!matchIp.find() || !matchMac.find() || !matchPort.find()) { | ||
57 | + System.out.println("ERROR IN SETTINGS"); | ||
58 | + request.setAttribute("message", "ERROR IN ONE OF THE FIELDS"); | ||
59 | + request.getRequestDispatcher(Param.PATH_PREFERENCES).forward(request, response); | ||
60 | + | ||
61 | + } else { | ||
62 | + | ||
63 | + System.out.println("MAC ADDRESS = " + macAddress + " IP = " + ip + " PORT = " + port); | ||
64 | + | ||
65 | + getServletContext().setAttribute("macaddress", macAddress); | ||
66 | + getServletContext().setAttribute("ip", ip); | ||
67 | + getServletContext().setAttribute("port", port); | ||
68 | + | ||
69 | + request.getRequestDispatcher(Param.PATH_HOME).forward(request, response); | ||
70 | + } | ||
71 | + } | ||
72 | + | ||
73 | +} |
src/main/java/com/lo53_mobile_localization/core/servlet/util/Param.java
0 → 100644
1 | +package com.lo53_mobile_localization.core.servlet.util; | ||
2 | + | ||
3 | +/** | ||
4 | + * Created by Thomas on 03/06/2017. | ||
5 | + */ | ||
6 | +public class Param{ | ||
7 | + | ||
8 | + | ||
9 | + public static final String ATTRIBUTE_IP = "ip"; | ||
10 | + public static final String ATTRIBUTE_PORT = "port"; | ||
11 | + | ||
12 | + public static final String AP_MAC_ADDRESS = "macaddress"; | ||
13 | + | ||
14 | + public static final String PATH_PREFERENCES= "/jsp/preferences.jsp"; | ||
15 | + public static final String PATH_POSITION= "/jsp/position.jsp"; | ||
16 | + public static final String PATH_CALIBRATION="/jsp/calibration.jsp"; | ||
17 | + | ||
18 | + public static final String PATH_HOME = "/index.jsp"; | ||
19 | + | ||
20 | + public static final String CONTENT_TYPE = "text/html;charset=UTF-8"; | ||
21 | + | ||
22 | + public static final int AP_COMM_PORT = 7777; | ||
23 | + | ||
24 | + public static final byte[][] AP_IPS = { | ||
25 | + {(byte)192,(byte)168,(byte)1,(byte)1}, | ||
26 | + {(byte)192,(byte)168,(byte)1,(byte)2}, | ||
27 | + {(byte)192,(byte)168,(byte)1,(byte)3} | ||
28 | + }; | ||
29 | + | ||
30 | + public static final int DATAG_LISTENING_PORT = 8080; | ||
31 | + | ||
32 | + public static final String CALIBRATION = "calibration"; | ||
33 | + public static final String POSITION = "position"; | ||
34 | + | ||
35 | + | ||
36 | +} |
src/test/java/com/lo53_mobile_localization/core/service/RssiServiceTest.java
@@ -2,9 +2,6 @@ package com.lo53_mobile_localization.core.service; | @@ -2,9 +2,6 @@ package com.lo53_mobile_localization.core.service; | ||
2 | 2 | ||
3 | import com.lo53_mobile_localization.core.entity.*; | 3 | import com.lo53_mobile_localization.core.entity.*; |
4 | import com.lo53_mobile_localization.core.helpers.HibernateTestHelper; | 4 | import com.lo53_mobile_localization.core.helpers.HibernateTestHelper; |
5 | -import com.lo53_mobile_localization.core.repository.AccessPointDAO; | ||
6 | -import com.lo53_mobile_localization.core.repository.LocationDAO; | ||
7 | -import com.lo53_mobile_localization.core.repository.RSSIDAO; | ||
8 | import org.junit.Before; | 5 | import org.junit.Before; |
9 | import org.junit.Test; | 6 | import org.junit.Test; |
10 | 7 | ||
@@ -18,8 +15,8 @@ import static org.junit.Assert.assertTrue; | @@ -18,8 +15,8 @@ import static org.junit.Assert.assertTrue; | ||
18 | */ | 15 | */ |
19 | public class RssiServiceTest extends HibernateTestHelper{ | 16 | public class RssiServiceTest extends HibernateTestHelper{ |
20 | 17 | ||
21 | - Rssi item = null; | ||
22 | - RSSIService service; | 18 | + private Rssi item = null; |
19 | + private RSSIService service; | ||
23 | 20 | ||
24 | @Before | 21 | @Before |
25 | public void setUp() throws Exception { | 22 | public void setUp() throws Exception { |
@@ -31,19 +28,18 @@ public class RssiServiceTest extends HibernateTestHelper{ | @@ -31,19 +28,18 @@ public class RssiServiceTest extends HibernateTestHelper{ | ||
31 | Location loc = new Location(); | 28 | Location loc = new Location(); |
32 | AccessPoint ap = new AccessPoint(); | 29 | AccessPoint ap = new AccessPoint(); |
33 | 30 | ||
34 | - LocationDAO locationDAO = new LocationDAO(); | ||
35 | - AccessPointDAO accessPointDAO = new AccessPointDAO(); | 31 | + LocationService locationService = new LocationService(); |
32 | + AccessPointService apService = new AccessPointService(); | ||
36 | 33 | ||
37 | - locationDAO.insertEntity(loc); | ||
38 | - accessPointDAO.insertEntity(ap); | 34 | + locationService.storeEntity(loc); |
35 | + apService.storeEntity(ap); | ||
39 | 36 | ||
40 | - rssi.getId().setAccessPointId(ap.getId()); | ||
41 | - rssi.getId().setLocationId(loc.getId()); | 37 | + rssi.setAccessPoint(ap); |
38 | + rssi.setLocation(loc); | ||
42 | rssi.setValue(10); | 39 | rssi.setValue(10); |
43 | rssi.setOccurences(6); | 40 | rssi.setOccurences(6); |
44 | 41 | ||
45 | - RSSIDAO rssiDao = new RSSIDAO(); | ||
46 | - rssiDao.insertEntity(rssi); | 42 | + service.storeEntity(rssi); |
47 | 43 | ||
48 | item = rssi; | 44 | item = rssi; |
49 | } | 45 | } |
@@ -62,8 +58,14 @@ public class RssiServiceTest extends HibernateTestHelper{ | @@ -62,8 +58,14 @@ public class RssiServiceTest extends HibernateTestHelper{ | ||
62 | Location loc = new Location(); | 58 | Location loc = new Location(); |
63 | AccessPoint ap = new AccessPoint(); | 59 | AccessPoint ap = new AccessPoint(); |
64 | 60 | ||
65 | - testingRssi.getId().setAccessPointId(ap.getId()); | ||
66 | - testingRssi.getId().setLocationId(loc.getId()); | 61 | + AccessPointService apService = new AccessPointService(); |
62 | + LocationService locationService = new LocationService(); | ||
63 | + | ||
64 | + locationService.storeEntity(loc); | ||
65 | + apService.storeEntity(ap); | ||
66 | + | ||
67 | + testingRssi.setAccessPoint(ap); | ||
68 | + testingRssi.setLocation(loc); | ||
67 | 69 | ||
68 | service.storeEntity(testingRssi); | 70 | service.storeEntity(testingRssi); |
69 | 71 | ||
@@ -116,5 +118,14 @@ public class RssiServiceTest extends HibernateTestHelper{ | @@ -116,5 +118,14 @@ public class RssiServiceTest extends HibernateTestHelper{ | ||
116 | assertTrue(storedItems.containsAll(addedItems)); | 118 | assertTrue(storedItems.containsAll(addedItems)); |
117 | } | 119 | } |
118 | 120 | ||
121 | + @Test | ||
122 | + public void getRssiWithLocationAndAP(){ | ||
123 | + | ||
124 | + Rssi testRssi = service.getRssiWithLocationAndAP(item.getLocation(), item.getAccessPoint()); | ||
125 | + | ||
126 | + assertEquals(item, testRssi); | ||
127 | + | ||
128 | + } | ||
129 | + | ||
119 | 130 | ||
120 | } | 131 | } |