| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| ~ Licensed to the Apache Software Foundation (ASF) under one |
| ~ or more contributor license agreements. See the NOTICE file |
| ~ distributed with this work for additional information |
| ~ regarding copyright ownership. The ASF licenses this file |
| ~ to you under the Apache License, Version 2.0 (the |
| ~ "License"); you may not use this file except in compliance |
| ~ with the License. You may obtain a copy of the License at |
| ~ |
| ~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~ |
| ~ Unless required by applicable law or agreed to in writing, |
| ~ software distributed under the License is distributed on an |
| ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~ KIND, either express or implied. See the License for the |
| ~ specific language governing permissions and limitations |
| ~ under the License. |
| --> |
| |
| <project xmlns="http://maven.apache.org/POM/4.0.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>23</version> |
| <relativePath/> |
| </parent> |
| |
| <groupId>org.apache.custos</groupId> |
| <artifactId>custos</artifactId> |
| <packaging>pom</packaging> |
| <version>1.0-SNAPSHOT</version> |
| |
| <modules> |
| <module>custos-core-services</module> |
| <module>custos-integration-services</module> |
| <module>custos-core-services-client-stubs</module> |
| <module>custos-integration-core</module> |
| <module>custos-federated-services-clients</module> |
| <module>custos-client-sdks</module> |
| <module>custos-tests</module> |
| <module>custos-external-services-distributions</module> |
| </modules> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-parent</artifactId> |
| <version>${spring.boot.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.cloud</groupId> |
| <artifactId>spring-cloud-dependencies</artifactId> |
| <version>${spring.cloud.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>io.github.lognet</groupId> |
| <artifactId>grpc-spring-boot-starter</artifactId> |
| <version>${grpc.spring.boot.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-netty</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-stub</artifactId> |
| <version>${io.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-protobuf</artifactId> |
| <version>${io.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-netty</artifactId> |
| <version>${io.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| <version>${javax.annotation.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.cloud</groupId> |
| <artifactId>spring-cloud-starter-sleuth</artifactId> |
| <version>${spring.cloud.slueth.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.cloud</groupId> |
| <artifactId>spring-cloud-sleuth-zipkin</artifactId> |
| <version>${spring.cloud.slueth.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.cloud</groupId> |
| <artifactId>spring-cloud-starter-vault-config</artifactId> |
| <version>${spring.boot.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>io.zipkin.brave</groupId> |
| <artifactId>brave-instrumentation-grpc</artifactId> |
| <version>${brave.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.micrometer</groupId> |
| <artifactId>micrometer-registry-prometheus</artifactId> |
| <version>${io.micrometer.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.api.grpc</groupId> |
| <artifactId>proto-google-common-protos</artifactId> |
| <version>${google.common.protos}</version> |
| </dependency> |
| <dependency> |
| <groupId>mysql</groupId> |
| <artifactId>mysql-connector-java</artifactId> |
| <version>${mysql.connector.java}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.persistence</groupId> |
| <artifactId>persistence-api</artifactId> |
| <version>${javax.persistance}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.keycloak</groupId> |
| <artifactId>keycloak-admin-client</artifactId> |
| <version>${keycloak.admin.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.keycloak</groupId> |
| <artifactId>keycloak-authz-client</artifactId> |
| <version>${keycloak.admin.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.jboss.resteasy</groupId> |
| <artifactId>resteasy-client</artifactId> |
| <version>${reasteasy.client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.jboss.resteasy</groupId> |
| <artifactId>resteasy-jackson2-provider</artifactId> |
| <version>${reasteasy.client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.jboss.resteasy</groupId> |
| <artifactId>resteasy-jaxrs</artifactId> |
| <version>${reasteasy.client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.jboss.resteasy</groupId> |
| <artifactId>resteasy-multipart-provider</artifactId> |
| <version>${reasteasy.client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java-util</artifactId> |
| <version>${com.google.protobuf.util}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.springfox</groupId> |
| <artifactId>springfox-swagger2</artifactId> |
| <version>${springfox.swagger.version}</version> |
| </dependency> |
| |
| <!--Swagger --> |
| <dependency> |
| <groupId>io.springfox</groupId> |
| <artifactId>springfox-swagger-ui</artifactId> |
| <version>${springfox.swagger.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.springfox</groupId> |
| <artifactId>springfox-bean-validators</artifactId> |
| <version>${springfox.swagger.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.xml</groupId> |
| <artifactId>jaxb-api</artifactId> |
| <version>${jaxb.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.springfox</groupId> |
| <artifactId>springfox-swagger-common</artifactId> |
| <version>${springfox.swagger.version}</version> |
| </dependency> |
| |
| <!-- SCIM--> |
| <dependency> |
| <groupId>org.wso2.charon</groupId> |
| <artifactId>org.wso2.charon3.core</artifactId> |
| <version>${org.wso2.charon}</version> |
| </dependency> |
| |
| <!--Kube --> |
| <dependency> |
| <groupId>io.kubernetes</groupId> |
| <artifactId>client-java</artifactId> |
| <version>${kube.java.client.version}</version> |
| </dependency> |
| |
| |
| <!-- Integration tests dependencies --> |
| <dependency> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| <version>${testng.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.json</groupId> |
| <artifactId>json</artifactId> |
| <version>${org.json.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| <version>${log.back.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.jcraft</groupId> |
| <artifactId>jsch</artifactId> |
| <version>${com.jcraft.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>${io.commons.version}</version> |
| </dependency> |
| |
| <!-- Secret handling dependencies --> |
| <dependency> |
| <groupId>com.codahale</groupId> |
| <artifactId>shamir</artifactId> |
| <version>${com.codahale.version}</version> |
| </dependency> |
| |
| <!-- dozer --> |
| <dependency> |
| <groupId>net.sf.dozer</groupId> |
| <artifactId>dozer</artifactId> |
| <version>${dozer.version}</version> |
| </dependency> |
| |
| <!--- kafka --> |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka-clients</artifactId> |
| <version>${kafka-clients.version}</version> |
| </dependency> |
| |
| <!--- email sending --> |
| <dependency> |
| <groupId>javax.mail</groupId> |
| <artifactId>mail</artifactId> |
| <version>${email.version}</version> |
| </dependency> |
| |
| </dependencies> |
| </dependencyManagement> |
| |
| <profiles> |
| <profile> |
| <id>default</id> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>${maven.compiler.plugin}</version> |
| <executions> |
| <execution> |
| <id>default</id> |
| </execution> |
| </executions> |
| <configuration> |
| <release>${java.version}</release> |
| </configuration> |
| </plugin> |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <version>3.0.2</version> |
| <executions> |
| <execution> |
| <id>copy-resources</id> |
| <!-- here the phase you need --> |
| <phase>install</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory> |
| /Users/isururanawaka/Documents/Airavata_Repository/airavata-custos/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos |
| </outputDirectory> <!-- output directory --> |
| <resources> |
| <resource> |
| <directory>${basedir}/src/main/proto |
| </directory> <!-- source directory --> |
| <includes> |
| <include>**/*.proto</include> |
| </includes> |
| <filtering>true</filtering> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <version>${protobuf.maven.plugin}</version> |
| <configuration> |
| <protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier} |
| </protocArtifact> |
| <pluginId>grpc-java</pluginId> |
| <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier} |
| </pluginArtifact> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>compile</goal> |
| <goal>compile-custom</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>container</id> |
| <properties> |
| <spring.profiles.active>staging</spring.profiles.active> |
| <vault.token>{{token}}</vault.token> |
| <vault.scheme>https</vault.scheme> |
| <vault.host>vault.custos.scigap.org</vault.host> |
| <vault.port>31190</vault.port> |
| <vault.uri>https://vault.custos.scigap.org:31190</vault.uri> |
| <iam.dev.username>{{token}}</iam.dev.username> |
| <iam.dev.password>{{token}}</iam.dev.password> |
| <iam.staging.username>{{token}}</iam.staging.username> |
| <iam.staging.password>{{token}}</iam.staging.password> |
| <cilogon.dev.id>{{token}}</cilogon.dev.id> |
| <cilogon.dev.sec>{{token}}</cilogon.dev.sec> |
| <cilogon.staging.id>{{token}}</cilogon.staging.id> |
| <cilogon.staging.sec>{{token}}</cilogon.staging.sec> |
| <custos.email.password>{{token}}</custos.email.password> |
| |
| </properties> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <build> |
| <resources> |
| <resource> |
| <directory>src/main/resources</directory> |
| <filtering>true</filtering> |
| <!-- <excludes>--> |
| <!-- <exclude>vault-client-truststore.pkcs12</exclude>--> |
| <!-- <exclude>keycloak-client-truststore.pkcs12</exclude>--> |
| <!-- </excludes>--> |
| <includes> |
| <include>**/*.pcks12</include> |
| <include>**/*.properties</include> |
| </includes> |
| </resource> |
| </resources> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>${maven.compiler.plugin}</version> |
| <executions> |
| <execution> |
| <id>container</id> |
| </execution> |
| </executions> |
| <configuration> |
| <release>${java.version}</release> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-maven-plugin</artifactId> |
| <version>${spring.boot.version}</version> |
| <executions> |
| <execution> |
| <id>container</id> |
| <goals> |
| <goal>repackage</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <version>${protobuf.maven.plugin}</version> |
| <configuration> |
| <protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier} |
| </protocArtifact> |
| <pluginId>grpc-java</pluginId> |
| <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier} |
| </pluginArtifact> |
| </configuration> |
| <executions> |
| <execution> |
| <id>container</id> |
| <goals> |
| <goal>compile</goal> |
| <goal>compile-custom</goal> |
| <goal>compile-python</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.spotify</groupId> |
| <artifactId>dockerfile-maven-plugin</artifactId> |
| <version>${docker.plugin.version}</version> |
| <executions> |
| <execution> |
| <id>container</id> |
| <goals> |
| <goal>build</goal> |
| <goal>push</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <noCache>true</noCache> |
| <serverId>docker.io</serverId> |
| <repository>${docker.image.prefix}/${project.artifactId}</repository> |
| <tag>${project.version}</tag> |
| <useMavenSettingsForAuth>true</useMavenSettingsForAuth> |
| <buildArgs> |
| <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> |
| </buildArgs> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>com.deviceinsight.helm</groupId> |
| <artifactId>helm-maven-plugin</artifactId> |
| <version>${helm.maven.plugin.version}</version> |
| <configuration> |
| <chartName>${project.artifactId}</chartName> |
| <chartFolder>src/main/helm</chartFolder> |
| <chartRepoUrl>https://charts.helm.sh/stable</chartRepoUrl> |
| <!-- <chartRepoUrl>https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts</chartRepoUrl>--> |
| <helmVersion>3.4.2</helmVersion> |
| <!-- <chartRepoUrl>null</chartRepoUrl>--> |
| <chartRepoUrl>https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts</chartRepoUrl> |
| <helmVersion>2.16.0</helmVersion> |
| <strictLint>true</strictLint> |
| <valuesFile>src/main/helm/values.yaml</valuesFile> |
| <skip>true</skip> |
| </configuration> |
| <executions> |
| <execution> |
| <id>container</id> |
| <goals> |
| <goal>package</goal> |
| <goal>lint</goal> |
| <goal>template</goal> |
| <goal>deploy</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>scp-to-remote</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>1.8</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>ant</groupId> |
| <artifactId>ant-commons-net</artifactId> |
| <version>1.6.5</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ant</groupId> |
| <artifactId>ant-jsch</artifactId> |
| <version>1.10.9</version> |
| </dependency> |
| </dependencies> |
| <configuration> |
| <target> |
| |
| <scp localFile="${project.basedir}/target/helm/${project.artifactId}-${project.version}.tgz" |
| remoteToFile="ubuntu@${host}:/home/ubuntu/custos/artifacts" |
| verbose="true" |
| keyfile="${ssh.privatekey}" |
| passphrase="${ssh.passphrase}" trust="true"> |
| </scp> |
| <sshexec host="${host}" |
| username="ubuntu" |
| keyfile="${ssh.privatekey}" |
| passphrase="${ssh.passphrase}" trust="true" |
| command="helm delete ${project.artifactId} -n custos"/> |
| |
| <sshexec host="${host}" |
| username="ubuntu" |
| keyfile="${ssh.privatekey}" |
| passphrase="${ssh.passphrase}" trust="true" |
| command="helm install ${project.artifactId} /home/ubuntu/custos/artifacts/${project.artifactId}-${project.version}.tgz -n custos"/> |
| |
| <!-- SSH --> |
| <taskdef name="sshexec" |
| classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec" |
| classpathref="maven.plugin.classpath" /> |
| |
| </target> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>release</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <version>${apache.rat.plugin.version}</version> |
| <configuration> |
| <excludes> |
| <exclude>**/*.json</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>integration-tests</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${maven.surefile.plugin.version}</version> |
| <configuration> |
| <skipTests>true</skipTests> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| <build> |
| <extensions> |
| <extension> |
| <groupId>kr.motd.maven</groupId> |
| <artifactId>os-maven-plugin</artifactId> |
| <version>${os.maven.plugin}</version> |
| </extension> |
| </extensions> |
| |
| </build> |
| |
| <properties> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| <org.slf4j.version>1.7.25</org.slf4j.version> |
| <log4j.version>1.2.17</log4j.version> |
| <thrift.version>0.12.0</thrift.version> |
| <openjpa.version>2.4.3</openjpa.version> |
| <mysql.connector.version>5.1.34</mysql.connector.version> |
| <maven.assembly.plugin>3.3.0</maven.assembly.plugin> |
| <junit.version>4.8.1</junit.version> |
| <jmockit.version>1.8</jmockit.version> |
| <java.version>11</java.version> |
| <javax.annotation.version>1.3.2</javax.annotation.version> |
| <maven.compiler.plugin>3.8.1</maven.compiler.plugin> |
| |
| <protobuf.maven.plugin>0.5.1</protobuf.maven.plugin> |
| <os.maven.plugin>1.5.0.Final</os.maven.plugin> |
| |
| <!-- Spring dependencies --> |
| <spring.boot.version>2.2.0.RELEASE</spring.boot.version> |
| <spring.cloud.version>Greenwich.RELEASE</spring.cloud.version> |
| <grpc.spring.boot.version>2.4.4</grpc.spring.boot.version> |
| |
| <spring.cloud.stream.version>2.0.0.RELEASE</spring.cloud.stream.version> |
| <spring.cloud.slueth.version>2.1.6.RELEASE</spring.cloud.slueth.version> |
| |
| <io.grpc.version>1.25.0</io.grpc.version> |
| <google.common.protos>1.17.0</google.common.protos> |
| <io.micrometer.version>1.3.1</io.micrometer.version> |
| <brave.version>5.9.1</brave.version> |
| |
| <docker.image.prefix>apachecustos</docker.image.prefix> |
| <docker.image.repo>custos</docker.image.repo> |
| <docker.plugin.version>1.4.13</docker.plugin.version> |
| |
| <helm.maven.plugin.version>2.8.0</helm.maven.plugin.version> |
| <maven.assembly.plugin.version>3.2.0</maven.assembly.plugin.version> |
| |
| <mysql.connector.java>8.0.18</mysql.connector.java> |
| <javax.persistance>1.0.2</javax.persistance> |
| |
| <keycloak.admin.version>9.0.2</keycloak.admin.version> |
| |
| <reasteasy.client.version>3.0.14.Final</reasteasy.client.version> |
| |
| <com.google.protobuf.util>3.11.3</com.google.protobuf.util> |
| |
| <springfox.swagger.version>2.9.2</springfox.swagger.version> |
| <org.wso2.charon>3.3.16</org.wso2.charon> |
| <jaxb.version>2.1</jaxb.version> |
| |
| <kube.java.client.version>5.0.0</kube.java.client.version> |
| |
| <testng.version>6.8</testng.version> |
| <org.json.version>20190722</org.json.version> |
| |
| <apache.rat.plugin.version>0.13</apache.rat.plugin.version> |
| |
| <maven.surefile.plugin.version>3.0.0-M4</maven.surefile.plugin.version> |
| |
| <log.back.version>1.2.3</log.back.version> |
| |
| <com.jcraft.version>0.1.55</com.jcraft.version> |
| |
| <io.commons.version>2.7</io.commons.version> |
| |
| <com.codahale.version>0.7.0</com.codahale.version> |
| |
| <host>service.staging.usecustos.org</host> |
| |
| <ssh.privatekey>/Users/isururanawaka/.ssh/custos/id_rsa</ssh.privatekey> |
| |
| <ssh.passphrase>isjarana</ssh.passphrase> |
| <dozer.version>5.5.1</dozer.version> |
| |
| <kafka-clients.version>1.0.0</kafka-clients.version> |
| |
| <email.version>1.5.0-b01</email.version> |
| |
| |
| </properties> |
| |
| </project> |