blob: ce717b2312fffdeae85a7940ffc884365b2df43a [file] [log] [blame]
Instrumental71037c32018-03-26 13:51:48 -07001<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 * ============LICENSE_START====================================================
4 * org.onap.aaf
5 * ===========================================================================
6 * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
7 * ===========================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END====================================================
20 *
21-->
22<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
24
25 <modelVersion>4.0.0</modelVersion>
Sai Gandham3a70e912018-04-12 22:16:21 +000026 <parent>
Sai Gandham83fc0252018-04-09 16:28:48 +000027 <groupId>org.onap.aaf.authz</groupId>
28 <artifactId>parent</artifactId>
Instrumentalb7440252018-06-14 15:05:33 -050029 <version>2.1.2-SNAPSHOT</version>
Sai Gandham3a70e912018-04-12 22:16:21 +000030 </parent>
Sai Gandham83fc0252018-04-09 16:28:48 +000031 <artifactId>authparent</artifactId>
Instrumental71037c32018-03-26 13:51:48 -070032 <name>AAF Auth Parent</name>
33 <packaging>pom</packaging>
Sai Gandham99f14fb2018-04-08 10:13:10 -050034
Sai Gandhama3ee2292018-04-07 22:38:08 -050035
Instrumental71037c32018-03-26 13:51:48 -070036 <properties>
37 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Instrumentala97d7312018-05-25 15:04:43 -050038 <project.interfaceVersion>2.1.1-SNAPSHOT</project.interfaceVersion>
Instrumental71037c32018-03-26 13:51:48 -070039 <!-- >project.jettyVersion>9.3.22.v20171030</project.jettyVersion -->
Instrumental01c17da2018-07-03 13:21:03 -050040 <project.jettyVersion>9.4.11.v20180605</project.jettyVersion>
Instrumental71037c32018-03-26 13:51:48 -070041 <powermock.version>1.5.1</powermock.version>
Instrumental924b18d2018-04-05 20:17:18 -050042 <project.ext_root_dir>/opt/app/osaaf</project.ext_root_dir>
Sai Gandhamc434f3c2018-03-27 16:29:24 +000043 <!-- SONAR -->
44 <jacoco.version>0.7.7.201606060606</jacoco.version>
45 <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
46 <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
47 <!-- Default Sonar configuration -->
Sai Gandham61f8fdf2018-04-03 12:07:07 -050048 <sonar.jacoco.reportPaths>target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPaths>
49 <sonar.jacoco.itReportPaths>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPaths>
Sai Gandhamc434f3c2018-03-27 16:29:24 +000050 <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
51 <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
52 <nexusproxy>https://nexus.onap.org</nexusproxy>
53 <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
54 <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
55 <stagingNexusPath>/content/repositories/staging/</stagingNexusPath>
Sai Gandham30dca6e2018-04-09 21:22:48 +000056 <sitePath>/content/sites/site/org/onap/aaf/authz/${project.artifactId}/${project.version}</sitePath>
IanHowellc1e85932018-05-18 09:29:09 -050057 <!-- We have to up these versions from the original to avoid Security Errors -->
58 <project.cassVersion>3.4.0</project.cassVersion>
59 <project.nettyVersion>4.1.22.Final</project.nettyVersion>
Instrumental4ad47632018-07-13 15:49:26 -050060 <project.project.ext_root_dir>/opt/app/osaaf</project.project.ext_root_dir>
Instrumental71037c32018-03-26 13:51:48 -070061 </properties>
62
63 <developers>
64 <developer>
65 <name>Jonathan Gathman</name>
66 <email>jonathan.gathman@att.com</email>
67 <organization>ATT</organization>
68 <roles>
69 <role>Architect</role>
70 <role>Lead Developer</role>
71 </roles>
72 </developer>
73 <developer>
74 <name>Gabe Maurer</name>
75 <email>gabe.maurer@att.com</email>
76 <organization>ATT</organization>
77 <roles>
78 <role>Developer</role>
79 </roles>
80 </developer>
81 <developer>
82 <name>Ian Howell</name>
83 <email>ian.howell@att.com</email>
84 <organization>ATT</organization>
85 <roles>
86 <role>Developer</role>
87 </roles>
88 </developer>
Sai Gandhame01703c2018-03-26 22:57:09 +000089 <developer>
90 <name>Sai Gandham</name>
91 <email>sai.gandham@att.com</email>
92 <organization>ATT</organization>
93 <roles>
94 <role>Developer</role>
95 </roles>
96 </developer>
Instrumental71037c32018-03-26 13:51:48 -070097 </developers>
98
99 <build>
100 <pluginManagement>
101 <plugins>
102 <plugin>
103 <groupId>org.apache.maven.plugins</groupId>
104 <artifactId>maven-compiler-plugin</artifactId>
105 <version>2.3.2</version>
106 <configuration>
107 <source>1.8</source>
108 <target>1.8</target>
109 </configuration>
110 </plugin>
111 <plugin>
112 <groupId>org.apache.maven.plugins</groupId>
113 <artifactId>maven-deploy-plugin</artifactId>
114 <version>2.6</version>
115 <configuration>
Sai Gandhamd97041c2018-04-03 01:57:59 -0500116 <skip>false</skip>
Instrumental71037c32018-03-26 13:51:48 -0700117 </configuration>
118 </plugin>
119
120 <plugin>
121 <groupId>org.apache.maven.plugins</groupId>
122 <artifactId>maven-surefire-plugin</artifactId>
123 <version>2.17</version>
124 <configuration>
Instrumental67bac2c2018-04-02 17:41:10 -0500125 <skipTests>false</skipTests>
Instrumental17ca7442018-03-29 16:54:19 -0500126
Instrumental71037c32018-03-26 13:51:48 -0700127 <includes>
128 <include>**/JU*.java</include>
129 </includes>
130 <excludes>
131 </excludes>
132
133 </configuration>
134 </plugin>
135
136 <plugin>
137 <groupId>org.apache.maven.plugins</groupId>
138 <artifactId>maven-failsafe-plugin</artifactId>
139 <version>2.17</version>
140 <configuration>
Instrumental924b18d2018-04-05 20:17:18 -0500141 <skipTests>false</skipTests>
Instrumental71037c32018-03-26 13:51:48 -0700142 </configuration>
143 <executions>
144 <execution>
145 <id>integration-test</id>
146 <goals>
147 <goal>integration-test</goal>
148 <goal>verify</goal>
149 </goals>
150 </execution>
151 </executions>
152 </plugin>
153
154 <!-- Builds O/S Command line ready jars and scripts, ready to run/zip -->
155 <plugin>
156 <groupId>org.codehaus.mojo</groupId>
157 <artifactId>appassembler-maven-plugin</artifactId>
158 <version>1.10</version>
159 <executions>
160 <execution>
161 <goals>
162 <goal>assemble</goal>
163 </goals>
164 <phase>install</phase>
165 </execution>
166 </executions>
167 <configuration>
168 <programs/> <!-- this set in projects that have programs -->
169 <assembleDirectory>../aaf_${project.version}</assembleDirectory>
Instrumental924b18d2018-04-05 20:17:18 -0500170 <copyConfigurationDirectory>true</copyConfigurationDirectory>
Instrumental71037c32018-03-26 13:51:48 -0700171 <configurationDirectory>etc</configurationDirectory>
172 <repositoryName>lib</repositoryName>
Instrumental924b18d2018-04-05 20:17:18 -0500173 <includeConfigurationDirectoryInClasspath>false</includeConfigurationDirectoryInClasspath>
Instrumental71037c32018-03-26 13:51:48 -0700174 <repositoryLayout>flat</repositoryLayout>
175 </configuration>
176 </plugin>
177
178 <!-- Build Docker Image -->
179 <plugin>
180 <groupId>com.spotify</groupId>
181 <artifactId>docker-maven-plugin</artifactId>
182 <version>1.0.0</version>
183 <configuration>
184 <imageName>onap/osaaf/${project.artifactId}</imageName>
185 <!-- <dockerDirectory>${dockerLocation}</dockerDirectory> -->
186 <dockerDirectory>${basedir}/src/main/resources/docker</dockerDirectory>
187 <imageTags>
188 <imageTag>latest</imageTag>
189 <imageTag>${project.docker.latesttagtimestamp.version}</imageTag>
190 <imageTag>${project.docker.latesttag.version}</imageTag>
191 </imageTags>
192 <forceTags>true</forceTags>
193 <!-- <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}/opt</directory>
194 <filtering>true</filtering> <includes> <include>**/**</include> </includes>
195 </resource> </resources> -->
196 <resources>
197 <resource>
198 <targetPath>/</targetPath>
199 <directory>${project.build.directory}/opt</directory>
200 <include>${project.build.finalName}.jar</include>
201 </resource>
202 <resource>
203 <targetPath>/</targetPath>
204 <directory>${project.build.directory}</directory>
205 <include>**/**</include>
206 </resource>
207 </resources>
208 </configuration>
209 <executions>
210 <execution>
211 <id>build-image</id>
212 <phase>package</phase>
213 <goals>
214 <goal>build</goal>
215 </goals>
216 <configuration>
217 <skipDockerBuild>${skip.docker.build}</skipDockerBuild>
218 </configuration>
219 </execution>
220
221 <execution>
222 <id>tag-image-project-version</id>
223 <phase>package</phase>
224 <goals>
225 <goal>tag</goal>
226 </goals>
227 <configuration>
228 <image>onap/osaaf/${project.artifactId}</image>
229 <newName>${docker.push.registry}/onap/osaaf/${project.artifactId}:${project.version}</newName>
230 <skipDockerTag>${skip.docker.push}</skipDockerTag>
231 </configuration>
232 </execution>
233
234 <execution>
235 <id>tag-image-latest</id>
236 <phase>package</phase>
237 <goals>
238 <goal>tag</goal>
239 </goals>
240 <configuration>
241 <image>onap/aaf/authz-service</image>
242 <newName>${docker.push.registry}/onap/osaaf/${project.artifactId}:latest</newName>
243 <skipDockerTag>${skip.docker.push}</skipDockerTag>
244 </configuration>
245 </execution>
246
247 <execution>
248 <id>push-image-latest</id>
249 <phase>deploy</phase>
250 <goals>
251 <goal>push</goal>
252 </goals>
253 <configuration>
254 <imageName>${docker.push.registry}/onap/osaaf/${project.artifactId}:${project.version}</imageName>
255 <skipDockerPush>${skip.docker.push}</skipDockerPush>
256 </configuration>
257 </execution>
258
259 <execution>
260 <id>push-image</id>
261 <phase>deploy</phase>
262 <goals>
263 <goal>push</goal>
264 </goals>
265 <configuration>
266 <imageName>${docker.push.registry}/onap/osaaf/${project.artifactId}:latest</imageName>
267 <skipDockerPush>${skip.docker.push}</skipDockerPush>
268 </configuration>
269 </execution>
270 </executions>
271 </plugin>
Sai Gandhamc434f3c2018-03-27 16:29:24 +0000272 <plugin>
273 <groupId>org.sonatype.plugins</groupId>
274 <artifactId>nexus-staging-maven-plugin</artifactId>
275 <version>1.6.7</version>
276 <extensions>true</extensions>
277 <configuration>
278 <nexusUrl>${nexusproxy}</nexusUrl>
279 <stagingProfileId>176c31dfe190a</stagingProfileId>
280 <serverId>ecomp-staging</serverId>
281 </configuration>
282 </plugin>
283 <plugin>
284 <groupId>org.jacoco</groupId>
285 <artifactId>jacoco-maven-plugin</artifactId>
286 <version>0.7.7.201606060606</version>
287 <configuration>
288 <dumpOnExit>true</dumpOnExit>
289 <includes>
290 <include>org.onap.aaf.*</include>
291 </includes>
292 </configuration>
293 <executions>
294 <execution>
295 <id>pre-unit-test</id>
296 <goals>
297 <goal>prepare-agent</goal>
298 </goals>
299 <configuration>
300 <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
301 <!-- <append>true</append> -->
302 </configuration>
303 </execution>
304 <execution>
305 <id>pre-integration-test</id>
306 <phase>pre-integration-test</phase>
307 <goals>
308 <goal>prepare-agent</goal>
309 </goals>
310 <configuration>
311 <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
312 <!-- <append>true</append> -->
313 </configuration>
314 </execution>
315 <execution>
316 <goals>
317 <goal>merge</goal>
318 </goals>
319 <phase>post-integration-test</phase>
320 <configuration>
321 <fileSets>
322 <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
323 <directory>${project.build.directory}/coverage-reports</directory>
324 <includes>
325 <include>*.exec</include>
326 </includes>
327 </fileSet>
328 </fileSets>
329 <destFile>${project.build.directory}/jacoco-dev.exec</destFile>
330 </configuration>
331 </execution>
332 </executions>
333 </plugin>
Instrumental71037c32018-03-26 13:51:48 -0700334 </plugins>
335 </pluginManagement>
336 </build>
337
338 <dependencies>
339 <dependency>
340 <groupId>org.mockito</groupId>
341 <artifactId>mockito-all</artifactId>
342 <version>1.9.5</version>
343 <scope>test</scope>
344 </dependency>
345 <dependency>
346 <groupId>org.powermock</groupId>
347 <artifactId>powermock-module-junit4</artifactId>
348 <version>${powermock.version}</version>
349 <scope>test</scope>
350 </dependency>
351 <dependency>
352 <groupId>org.powermock</groupId>
353 <artifactId>powermock-api-mockito</artifactId>
354 <version>${powermock.version}</version>
355 <scope>test</scope>
356 </dependency>
357 <dependency>
358 <groupId>junit</groupId>
359 <artifactId>junit</artifactId>
360 <version>4.10</version>
361 <scope>test</scope>
362 </dependency>
363
364 </dependencies>
365
366 <modules>
367 <!-- <module>auth-client</module> complile manually with mvn -N independently -->
368 <module>auth-core</module>
369 <module>auth-cass</module>
370 <module>auth-deforg</module>
371
372 <module>auth-service</module>
373 <module>auth-cmd</module>
374 <module>auth-batch</module>
375
376 <module>auth-gui</module>
377 <module>auth-locate</module>
378 <module>auth-oauth</module>
379 <module>auth-certman</module>
380 <module>auth-fs</module>
381 <module>auth-hello</module>
382 </modules>
383
384 <dependencyManagement>
385 <dependencies>
386 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000387 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700388 <artifactId>aaf-misc-env</artifactId>
su622b40077be2018-04-08 13:50:31 -0400389 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700390 </dependency>
391
392 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000393 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700394 <artifactId>aaf-misc-log4j</artifactId>
su622b40077be2018-04-08 13:50:31 -0400395 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700396 </dependency>
397
398 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000399 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700400 <artifactId>aaf-misc-rosetta</artifactId>
su622b40077be2018-04-08 13:50:31 -0400401 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700402 </dependency>
403
404 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000405 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700406 <artifactId>aaf-misc-xgen</artifactId>
su622b40077be2018-04-08 13:50:31 -0400407 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700408 </dependency>
409
410 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000411 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700412 <artifactId>aaf-cadi-core</artifactId>
su622b40077be2018-04-08 13:50:31 -0400413 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700414 </dependency>
415
416 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000417 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700418 <artifactId>aaf-cadi-client</artifactId>
su622b40077be2018-04-08 13:50:31 -0400419 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700420 </dependency>
421
422 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000423 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700424 <artifactId>aaf-cadi-aaf</artifactId>
su622b40077be2018-04-08 13:50:31 -0400425 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700426 <exclusions>
427 <exclusion>
428 <groupId>org.apache.cassandra</groupId>
429 <artifactId>cassandra-all</artifactId>
430 </exclusion>
431 </exclusions>
432 </dependency>
433
434 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000435 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700436 <artifactId>aaf-auth-client</artifactId>
su622b40077be2018-04-08 13:50:31 -0400437 <version>${project.version}</version>
Instrumental71037c32018-03-26 13:51:48 -0700438 </dependency>
Instrumental2c0dd5c2018-06-27 09:15:59 -0500439
Instrumental71037c32018-03-26 13:51:48 -0700440 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000441 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700442 <artifactId>aaf-auth-core</artifactId>
443 <version>${project.version}</version>
444 </dependency>
445
446 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000447 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700448 <artifactId>aaf-auth-cass</artifactId>
449 <version>${project.version}</version>
450 </dependency>
451
452 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000453 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700454 <artifactId>aaf-auth-cmd</artifactId>
455 <version>${project.version}</version>
456 </dependency>
457
458 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000459 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700460 <artifactId>aaf-auth-oauth</artifactId>
461 <version>${project.version}</version>
462 </dependency>
463
464 <dependency>
Sai Gandham83fc0252018-04-09 16:28:48 +0000465 <groupId>org.onap.aaf.authz</groupId>
Instrumental71037c32018-03-26 13:51:48 -0700466 <artifactId>aaf-auth-deforg</artifactId>
467 <version>${project.version}</version>
468 </dependency>
469
470 <dependency>
471 <groupId>javax.servlet</groupId>
Instrumental924b18d2018-04-05 20:17:18 -0500472 <artifactId>javax.servlet-api</artifactId>
473 <version>3.0.1</version>
Instrumental71037c32018-03-26 13:51:48 -0700474 </dependency>
475
476 <dependency>
477 <groupId>org.eclipse.jetty</groupId>
478 <artifactId>jetty-servlet</artifactId>
479 <version>${project.jettyVersion}</version>
480 </dependency>
481
482 <dependency>
483 <groupId>org.eclipse.jetty</groupId>
484 <artifactId>jetty-server</artifactId>
485 <version>${project.jettyVersion}</version>
486 </dependency>
487
488 <dependency>
Instrumental71037c32018-03-26 13:51:48 -0700489 <groupId>com.datastax.cassandra</groupId>
490 <artifactId>cassandra-all</artifactId>
IanHowellc1e85932018-05-18 09:29:09 -0500491 <version>${project.cassVersion}</version>
Instrumental71037c32018-03-26 13:51:48 -0700492 <exclusions>
493 <exclusion>
494 <groupId>org.slf4j</groupId>
495 <artifactId>slf4j-log4j12</artifactId>
496 </exclusion>
497 <exclusion>
498 <groupId>log4j</groupId>
499 <artifactId>log4j</artifactId>
500 </exclusion>
501 </exclusions>
502 </dependency>
Instrumental67bac2c2018-04-02 17:41:10 -0500503
Instrumental71037c32018-03-26 13:51:48 -0700504 <dependency>
505 <groupId>com.datastax.cassandra</groupId>
506 <artifactId>cassandra-driver-core</artifactId>
IanHowellc1e85932018-05-18 09:29:09 -0500507 <version>${project.cassVersion}</version>
Instrumental71037c32018-03-26 13:51:48 -0700508 <exclusions>
509 <exclusion>
510 <groupId>org.slf4j</groupId>
511 <artifactId>slf4j-log4j12</artifactId>
512 </exclusion>
513 <exclusion>
514 <groupId>log4j</groupId>
515 <artifactId>log4j</artifactId>
516 </exclusion>
517 </exclusions>
518 </dependency>
Instrumental23a1c2e2018-04-11 14:13:46 -0500519
520 <!-- Note: Ensure DataStax uses more up-to-date netty handler -->
521 <dependency>
522 <groupId>io.netty</groupId>
523 <artifactId>netty-handler</artifactId>
IanHowellc1e85932018-05-18 09:29:09 -0500524 <version>${project.nettyVersion}</version>
Instrumental23a1c2e2018-04-11 14:13:46 -0500525 </dependency>
526
527
Instrumental71037c32018-03-26 13:51:48 -0700528
529 <dependency>
530 <groupId>org.slf4j</groupId>
531 <artifactId>slf4j-log4j12</artifactId>
532 <version>1.7.5</version>
533 </dependency>
534
535 <dependency>
536 <groupId>javax.mail</groupId>
537 <artifactId>mail</artifactId>
Instrumentalcc7e0872018-08-16 09:15:26 -0500538 <version>1.4.7</version>
Instrumental71037c32018-03-26 13:51:48 -0700539 </dependency>
540 </dependencies>
541 </dependencyManagement>
542
543
Sai Gandhame01703c2018-03-26 22:57:09 +0000544
Instrumental71037c32018-03-26 13:51:48 -0700545
546</project>