You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2020/03/15 15:48:08 UTC
[syncope] 03/07: [SYNCOPE-1545] fit/wa-reference + inclusion in
standalone
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch SYNCOPE-1545
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit dd5bed66764f72f1437e8f710fdf269435958300
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Tue Mar 3 17:28:49 2020 +0100
[SYNCOPE-1545] fit/wa-reference + inclusion in standalone
---
fit/pom.xml | 1 +
fit/wa-reference/pom.xml | 181 +++++++++++++++++++++
.../main/resources/application-embedded.properties | 18 ++
fit/wa-reference/src/main/resources/log4j2.xml | 134 +++++++++++++++
fit/wa-reference/src/main/webapp/WEB-INF/web.xml | 29 ++++
standalone/pom.xml | 75 ++++++---
wa/src/main/resources/templates/layout.html | 61 +++++++
7 files changed, 472 insertions(+), 27 deletions(-)
diff --git a/fit/pom.xml b/fit/pom.xml
index 5df60e1..30d9912 100644
--- a/fit/pom.xml
+++ b/fit/pom.xml
@@ -81,6 +81,7 @@ under the License.
<module>core-reference</module>
<module>console-reference</module>
<module>enduser-reference</module>
+ <module>wa-reference</module>
</modules>
</project>
diff --git a/fit/wa-reference/pom.xml b/fit/wa-reference/pom.xml
new file mode 100644
index 0000000..7c08b20
--- /dev/null
+++ b/fit/wa-reference/pom.xml
@@ -0,0 +1,181 @@
+<?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.syncope</groupId>
+ <artifactId>syncope-fit</artifactId>
+ <version>3.0.0-SNAPSHOT</version>
+ </parent>
+
+ <name>Apache Syncope FIT WA Reference</name>
+ <description>Apache Syncope FIT WA Reference</description>
+ <groupId>org.apache.syncope.fit</groupId>
+ <artifactId>syncope-fit-wa-reference</artifactId>
+ <packaging>war</packaging>
+
+ <properties>
+ <guava.version>28.2-jre</guava.version>
+ <opensaml.version>3.4.5</opensaml.version>
+ <bootstrap.version>4.4.1</bootstrap.version>
+ <slf4j.version>2.0.0-alpha1</slf4j.version>
+
+ <ianal.skip>true</ianal.skip>
+
+ <rootpom.basedir>${basedir}/../..</rootpom.basedir>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.syncope</groupId>
+ <artifactId>syncope-wa</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <container>
+ <containerId>tomcat9x</containerId>
+ <zipUrlInstaller>
+ <url>https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/${tomcat.version}/tomcat-${tomcat.version}.zip</url>
+ <downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives</downloadDir>
+ <extractDir>${project.build.directory}/cargo/extract</extractDir>
+ </zipUrlInstaller>
+ <timeout>300000</timeout>
+ <log>${cargo.log}</log>
+ <output>${cargo.output}</output>
+ </container>
+ <configuration>
+ <properties>
+ <cargo.jvmargs>
+ -Dspring.profiles.active=embedded
+ -XX:+CMSClassUnloadingEnabled -Xmx1024m -Xms512m</cargo.jvmargs>
+ </properties>
+ </configuration>
+ <deployables>
+ <deployable>
+ <location>${project.build.directory}/${project.build.finalName}</location>
+ <properties>
+ <context>syncope-wa</context>
+ </properties>
+ </deployable>
+ </deployables>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <resourceIncludes>src/main/resources/**/*.properties</resourceIncludes>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <filtering>true</filtering>
+ </testResource>
+ </testResources>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>properties4cas</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ </profile>
+
+ <profile>
+ <id>skipTests</id>
+ </profile>
+
+ <profile>
+ <id>debug</id>
+
+ <properties>
+ <skipTests>true</skipTests>
+ </properties>
+
+ <build>
+ <defaultGoal>clean verify cargo:run</defaultGoal>
+
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <configuration>
+ <properties>
+ <cargo.jvmargs>
+ -Dspring.profiles.active=embedded
+ -Xdebug -Djaxb.debug=true -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
+ -XX:+CMSClassUnloadingEnabled -XX:+UseG1GC -Xmx1024m -Xms512m</cargo.jvmargs>
+ </properties>
+ </configuration>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>apache-release</id>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <inherited>false</inherited>
+ <configuration>
+ <skipSource>true</skipSource>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ </profiles>
+</project>
diff --git a/fit/wa-reference/src/main/resources/application-embedded.properties b/fit/wa-reference/src/main/resources/application-embedded.properties
new file mode 100644
index 0000000..464c8c8
--- /dev/null
+++ b/fit/wa-reference/src/main/resources/application-embedded.properties
@@ -0,0 +1,18 @@
+# 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.
+spring.main.banner-mode=console
+service.discovery.address=http://localhost:9080/syncope-wa/
diff --git a/fit/wa-reference/src/main/resources/log4j2.xml b/fit/wa-reference/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..08196df
--- /dev/null
+++ b/fit/wa-reference/src/main/resources/log4j2.xml
@@ -0,0 +1,134 @@
+<?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.
+-->
+<!-- Specify the refresh internal in seconds. -->
+<Configuration monitorInterval="5" packages="org.apereo.cas.logging">
+ <Properties>
+ <Property name="baseDir">${log.directory}</Property>
+ <Property name="cas.log.level">info</Property>
+ <Property name="spring.webflow.log.level">warn</Property>
+ <Property name="spring.security.log.level">info</Property>
+ <Property name="spring.cloud.log.level">warn</Property>
+ <Property name="spring.web.log.level">warn</Property>
+ <Property name="spring.boot.log.level">warn</Property>
+ <Property name="ldap.log.level">warn</Property>
+ <Property name="pac4j.log.level">warn</Property>
+ <Property name="opensaml.log.level">warn</Property>
+ <Property name="hazelcast.log.level">warn</Property>
+ </Properties>
+ <Appenders>
+ <RollingFile name="file" fileName="${baseDir}/wa.log" append="true"
+ filePattern="${baseDir}/wa-%d{yyyy-MM-dd-HH}-%i.log">
+ <PatternLayout pattern="%highlight{%d %p [%c] - <%m>%n}" />
+ <Policies>
+ <OnStartupTriggeringPolicy />
+ <SizeBasedTriggeringPolicy size="10 MB"/>
+ <TimeBasedTriggeringPolicy />
+ </Policies>
+ <DefaultRolloverStrategy max="5" compressionLevel="9">
+ <Delete basePath="${baseDir}" maxDepth="2">
+ <IfFileName glob="*/*.log.gz" />
+ <IfLastModified age="7d" />
+ </Delete>
+ </DefaultRolloverStrategy>
+ </RollingFile>
+ <RollingFile name="auditlogfile" fileName="${baseDir}/wa-audit.log" append="true"
+ filePattern="${baseDir}/wa-audit-%d{yyyy-MM-dd-HH}-%i.log">
+ <PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
+ <Policies>
+ <OnStartupTriggeringPolicy />
+ <SizeBasedTriggeringPolicy size="10 MB"/>
+ <TimeBasedTriggeringPolicy />
+ </Policies>
+ <DefaultRolloverStrategy max="5" compressionLevel="9">
+ <Delete basePath="${baseDir}" maxDepth="2">
+ <IfFileName glob="*/*.log.gz" />
+ <IfLastModified age="7d" />
+ </Delete>
+ </DefaultRolloverStrategy>
+ </RollingFile>
+
+ <CasAppender name="casAudit">
+ <AppenderRef ref="auditlogfile" />
+ </CasAppender>
+ <CasAppender name="casFile">
+ <AppenderRef ref="file" />
+ </CasAppender>
+ </Appenders>
+ <Loggers>
+ <AsyncLogger name="org.apereo.cas" level="${sys:cas.log.level}" includeLocation="true" />
+ <AsyncLogger name="org.apereo.cas.services" level="${sys:cas.log.level}" includeLocation="true" />
+ <AsyncLogger name="org.apereo.spring" level="${sys:cas.log.level}" includeLocation="true" />
+ <AsyncLogger name="org.apereo.services.persondir" level="${sys:cas.log.level}" includeLocation="true" />
+ <AsyncLogger name="org.apereo.cas.web.flow" level="${sys:cas.log.level}" includeLocation="true" />
+ <AsyncLogger name="org.apereo.cas.web.CasWebApplication" level="${sys:cas.log.level}" includeLocation="true"/>
+
+ <AsyncLogger name="org.apereo.inspektr.audit.support" additivity="true" level="info" includeLocation="true">
+ <AppenderRef ref="casAudit"/>
+ </AsyncLogger>
+
+ <AsyncLogger name="org.springframework.boot" level="${sys:spring.boot.log.level}" />
+ <AsyncLogger name="org.springframework.boot.context.embedded" level="info" />
+ <AsyncLogger name="org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration" level="${sys:spring.security.log.level}" />
+ <AsyncLogger name="org.springframework.boot.autoconfigure.security" level="${sys:spring.security.log.level}" />
+ <AsyncLogger name="org.springframework.boot.devtools" level="debug" />
+
+ <AsyncLogger name="org.springframework" level="warn" includeLocation="true" />
+ <AsyncLogger name="org.springframework.webflow" level="${sys:spring.webflow.log.level}" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.aop" level="warn" includeLocation="true" />
+ <AsyncLogger name="org.springframework.session" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.scheduling" level="info" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.cloud.vault" level="warn" includeLocation="true" />
+ <AsyncLogger name="org.springframework.web.client" level="warn" includeLocation="true" />
+ <AsyncLogger name="org.springframework.security" level="${sys:spring.security.log.level}" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.cloud" level="${sys:spring.cloud.log.level}" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.amqp" level="error" />
+ <AsyncLogger name="org.springframework.integration" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.messaging" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.web" level="${sys:spring.web.log.level}" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.orm.jpa" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.scheduling" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.context.annotation" level="off" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.web.socket" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter" level="trace" includeLocation="true"/>
+
+ <AsyncLogger name="com.couchbase" level="warn" includeLocation="true" />
+ <AsyncLogger name="org.apache" level="error" includeLocation="true"/>
+ <AsyncLogger name="com.netflix" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.quartz" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.thymeleaf" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.pac4j" level="${sys:pac4j.log.level}" includeLocation="true"/>
+
+ <AsyncLogger name="org.opensaml" level="${sys:opensaml.log.level}" includeLocation="true"/>
+ <AsyncLogger name="PROTOCOL_MESSAGE" level="${sys:opensaml.log.level}" includeLocation="true" />
+
+ <AsyncLogger name="net.sf.ehcache" level="warn" includeLocation="true"/>
+ <AsyncLogger name="net.jradius" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.openid4java" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.ldaptive" level="${sys:ldap.log.level}" includeLocation="true"/>
+ <AsyncLogger name="com.hazelcast" level="${sys:hazelcast.log.level}" includeLocation="true"/>
+ <AsyncLogger name="org.jasig.spring" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.apache.cxf" level="warn" includeLocation="true"/>
+ <AsyncLogger name="org.apache.http" level="warn" includeLocation="true"/>
+
+ <AsyncRoot level="warn">
+ <AppenderRef ref="casFile"/>
+ </AsyncRoot>
+ </Loggers>
+</Configuration>
diff --git a/fit/wa-reference/src/main/webapp/WEB-INF/web.xml b/fit/wa-reference/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..34b536e
--- /dev/null
+++ b/fit/wa-reference/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
+ http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
+ version="4.0"
+ metadata-complete="true">
+
+ <display-name>Apache Syncope ${syncope.version} WA</display-name>
+
+</web-app>
diff --git a/standalone/pom.xml b/standalone/pom.xml
index 1fee6ac..45d71fd 100644
--- a/standalone/pom.xml
+++ b/standalone/pom.xml
@@ -73,6 +73,13 @@ under the License.
<type>war</type>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.syncope.fit</groupId>
+ <artifactId>syncope-fit-wa-reference</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
@@ -116,68 +123,76 @@ under the License.
<phase>verify</phase>
<configuration>
<target>
- <mkdir dir="${work.dir}" />
+ <mkdir dir="${work.dir}"/>
<!-- legal stuff -->
- <copy file="${project.build.outputDirectory}/README" todir="${work.dir}" />
- <copy file="LICENSE" todir="${work.dir}" />
- <copy file="NOTICE" todir="${work.dir}" />
+ <copy file="${project.build.outputDirectory}/README" todir="${work.dir}"/>
+ <copy file="LICENSE" todir="${work.dir}"/>
+ <copy file="NOTICE" todir="${work.dir}"/>
<!-- Unzip Tomcat and remove docs and examples from webapps (space saving) -->
- <unzip src="${settings.localRepository}/org/codehaus/cargo/cargo-container-archives/tomcat-${tomcat.version}.zip" dest="${work.dir}" />
- <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/docs" />
- <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/examples" />
+ <unzip src="${settings.localRepository}/org/codehaus/cargo/cargo-container-archives/tomcat-${tomcat.version}.zip" dest="${work.dir}"/>
+ <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/docs"/>
+ <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/examples"/>
<!-- Syncope core -->
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope">
- <fileset dir="../fit/core-reference/target/syncope-fit-core-reference-${project.version}" includes="**/*" />
+ <fileset dir="../fit/core-reference/target/syncope-fit-core-reference-${project.version}" includes="**/*"/>
</copy>
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/classes" overwrite="true">
- <fileset dir="${project.build.outputDirectory}/core" />
+ <fileset dir="${project.build.outputDirectory}/core"/>
</copy>
- <copy file="../fit/core-reference/target/test-classes/keystore" todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/classes" overwrite="true" />
+ <copy file="../fit/core-reference/target/test-classes/keystore" todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/classes" overwrite="true"/>
<!-- Syncope console -->
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-console">
- <fileset dir="../fit/console-reference/target/syncope-fit-console-reference-${project.version}" includes="**/*" />
+ <fileset dir="../fit/console-reference/target/syncope-fit-console-reference-${project.version}" includes="**/*"/>
</copy>
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-console/WEB-INF/classes" overwrite="true">
- <fileset dir="${project.build.outputDirectory}/console" />
+ <fileset dir="${project.build.outputDirectory}/console"/>
</copy>
<!-- Syncope enduser -->
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-enduser">
- <fileset dir="../fit/enduser-reference/target/syncope-fit-enduser-reference-${project.version}" includes="**/*" />
+ <fileset dir="../fit/enduser-reference/target/syncope-fit-enduser-reference-${project.version}" includes="**/*"/>
</copy>
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-enduser/WEB-INF/classes" overwrite="true">
- <fileset dir="${project.build.outputDirectory}/enduser" />
+ <fileset dir="${project.build.outputDirectory}/enduser"/>
+ </copy>f
+
+ <!-- Syncope wa -->
+ <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-wa">
+ <fileset dir="../fit/wa-reference/target/syncope-fit-wa-reference-${project.version}" includes="**/*"/>
+ </copy>
+ <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-wa/WEB-INF/classes" overwrite="true">
+ <fileset dir="${project.build.outputDirectory}/wa"/>
</copy>
- <mkdir dir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}" />
- <copy file="../fit/core-reference/src/test/resources/test.csv" todir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}" />
+ <mkdir dir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}"/>
+ <copy file="../fit/core-reference/src/test/resources/test.csv" todir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}"/>
<!-- Syncope build tools (provide H2, Apache DS and REST / SOAP resources + ConnId connector server) -->
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools">
- <fileset dir="../fit/build-tools/target/syncope-fit-build-tools-${project.version}" includes="**/*" />
+ <fileset dir="../fit/build-tools/target/syncope-fit-build-tools-${project.version}" includes="**/*"/>
</copy>
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools/WEB-INF/lib">
- <fileset dir="../fit/core-reference/target/bundles/" includes="**/*" />
+ <fileset dir="../fit/core-reference/target/bundles/" includes="**/*"/>
</copy>
<!-- Tomcat shared libraries: H2, StAX2 API, Woodstox -->
- <copy file="${settings.localRepository}/com/h2database/h2/${h2.version}/h2-${h2.version}.jar" todir="${work.dir}/apache-tomcat-${tomcat.version}/lib" />
+ <copy file="${settings.localRepository}/com/h2database/h2/${h2.version}/h2-${h2.version}.jar" todir="${work.dir}/apache-tomcat-${tomcat.version}/lib"/>
<copy todir="${work.dir}/apache-tomcat-${tomcat.version}/lib">
- <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="stax2-api-*.jar" />
- <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="woodstox-core-asl-*.jar" />
+ <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="stax2-api-*.jar"/>
+ <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="woodstox-core-asl-*.jar"/>
</copy>
<!-- Other custom Tomcat resources -->
- <copy file="${project.build.outputDirectory}/context.xml" todir="${work.dir}/apache-tomcat-${tomcat.version}/conf" overwrite="true" />
- <copy file="src/main/resources/setenv.sh" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin" />
- <copy file="src/main/resources/setenv.bat" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin" />
- <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8080" value="${cargo.servlet.port}" />
- <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8009" value="${cargo.tomcat.ajp.port}" />
- <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8005" value="${cargo.rmi.port}" />
+ <copy file="${project.build.outputDirectory}/context.xml" todir="${work.dir}/apache-tomcat-${tomcat.version}/conf" overwrite="true"/>
+ <copy file="src/main/resources/setenv.sh" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/>
+ <copy file="src/main/resources/setenv.bat" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/>
+ <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8080" value="${cargo.servlet.port}"/>
+ <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8009" value="${cargo.tomcat.ajp.port}"/>
+ <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8005" value="${cargo.rmi.port}"/>
</target>
</configuration>
</execution>
@@ -276,6 +291,12 @@ under the License.
</resource>
<resource>
+ <directory>../fit/wa-reference/src/main/resources</directory>
+ <targetPath>wa</targetPath>
+ <filtering>true</filtering>
+ </resource>
+
+ <resource>
<directory>src/main/resources</directory>
</resource>
<resource>
diff --git a/wa/src/main/resources/templates/layout.html b/wa/src/main/resources/templates/layout.html
new file mode 100644
index 0000000..846f0d5
--- /dev/null
+++ b/wa/src/main/resources/templates/layout.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+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.
+-->
+<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
+
+<head>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
+
+ <title layout:title-pattern="$CONTENT_TITLE - $LAYOUT_TITLE">Apache Syncope</title>
+
+ <!--/* Core CAS CSS */-->
+ <link rel="stylesheet" type="text/css" href="../static/css/normalize.css" th:href="@{#{webjars.normalize.css}}" />
+ <link rel="stylesheet" type="text/css" href="../static/css/bootstrap-grid.min.css" th:href="@{#{webjars.bootstrap-grid.css}}" />
+ <link rel="stylesheet" type="text/css" href="../static/css/material-components-web.min.css" th:href="@{#{webjars.material-components.css}}" />
+ <link rel="stylesheet" type="text/css" href="../static/css/mdi-font.css" th:href="@{#{webjars.mdi-font.css}}" />
+ <link rel="stylesheet" type="text/css" href="../static/css/cas.css" th:href="@{${#themes.code('cas.standard.css.file')}}"/>
+
+ <link rel="icon" th:href="@{/favicon.ico}" type="image/x-icon"/>
+</head>
+
+<body>
+<script th:replace="fragments/scripts" />
+
+<div th:replace="fragments/header :: header">
+ <a href="fragments/header.html">Header</a> fragment will go here
+</div>
+
+<div class="mdc-drawer-scrim"></div>
+
+<div class="mdc-drawer-app-content mdc-top-app-bar--fixed-adjust d-flex justify-content-center">
+ <main role="main" id="main-content" class="container-lg py-4">
+ <div layout:fragment="content" id="content">
+ CAS content will go here
+ </div>
+ </main>
+</div>
+
+<div th:replace="fragments/footer :: footer">
+ <a href="fragments/footer.html">Footer</a> fragment will go here
+</div>
+
+</body>
+</html>