Merge pull request #1174 from stianst/master

Build javadoc as part of release process
This commit is contained in:
Stian Thorgersen 2015-04-23 16:09:59 +02:00
commit d314198e40
14 changed files with 87 additions and 379 deletions

View file

@ -20,7 +20,6 @@
<module name="org.jboss.logging"/>
<module name="javax.ws.rs.api"/>
<module name="org.jboss.resteasy.resteasy-jaxrs"/>
<module name="org.jboss.resteasy.resteasy-crypto"/>
<module name="org.jboss.resteasy.resteasy-multipart-provider"/>
<module name="javax.api"/>

View file

@ -65,7 +65,6 @@
<module name="javax.ws.rs.api"/>
<module name="org.jboss.resteasy.resteasy-jaxrs"/>
<module name="org.jboss.resteasy.resteasy-crypto"/>
<module name="org.jboss.resteasy.resteasy-multipart-provider"/>
<module name="javax.servlet.api"/>
<module name="org.codehaus.jackson.jackson-core-asl"/>

View file

@ -26,6 +26,13 @@
</includes>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>src/main/welcome-content</directory>
<outputDirectory>welcome-content</outputDirectory>
<includes>
<include>*.*</include>
</includes>
</fileSet>
</fileSets>
<dependencySets>

View file

@ -1,2 +0,0 @@
Any provider implementation jars and libraries in this folder will be loaded by Keycloak. See the providers
section in the documentation for more details.

View file

@ -1,3 +0,0 @@
Themes to configure the look and feel of login pages and account management console. It's not recommended to
modify existing the built-in themes, instead you should create a new theme that extends a built-in theme. See the theme
section in the documentation for more details.

View file

@ -1,89 +0,0 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:j="urn:jboss:domain:1.3"
version="2.0"
exclude-result-prefixes="xalan j">
<xsl:param name="config"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" xalan:indent-amount="4" standalone="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()[name(.)='extensions']">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<extension module="org.keycloak.keycloak-subsystem"/>
</xsl:copy>
</xsl:template>
<xsl:template match="node()[name(.)='datasources']">
<xsl:copy>
<xsl:apply-templates select="node()[name(.)='datasource']"/>
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<xsl:apply-templates select="node()[name(.)='drivers']"/>
</xsl:copy>
</xsl:template>
<xsl:template match="node()[name(.)='profile']">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<subsystem xmlns="urn:jboss:domain:keycloak:1.0">
<auth-server name="main-auth-server">
<enabled>true</enabled>
<web-context>auth</web-context>
</auth-server>
</subsystem>
</xsl:copy>
</xsl:template>
<xsl:template match="node()[name(.)='security-domains']">
<xsl:copy>
<xsl:apply-templates select="node()[name(.)='security-domain']"/>
<security-domain name="keycloak">
<authentication>
<login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"/>
</authentication>
</security-domain>
<security-domain name="sp" cache-type="default">
<authentication>
<login-module code="org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule" flag="required"/>
</authentication>
</security-domain>
</xsl:copy>
</xsl:template>
<!-- for some reason, Wildfly 8 final decided to turn off management-native which means jboss-as-maven-plugin no
longer works -->
<xsl:template match="node()[name(.)='management-interfaces']">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<native-interface security-realm="ManagementRealm">
<socket-binding native="management-native"/>
</native-interface>
</xsl:copy>
</xsl:template>
<!-- for some reason, Wildfly 8 final decided to turn off management-native which means jboss-as-maven-plugin no
longer works -->
<xsl:template match="node()[name(.)='socket-binding-group']">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<socket-binding name="management-native" interface="management" port="9999"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

View file

@ -19,14 +19,6 @@
<directory>${project.build.directory}/unpacked/docs</directory>
<outputDirectory>docs</outputDirectory>
</fileSet>
<fileSet>
<directory>${project.build.directory}/unpacked/wildfly-${wildfly.version}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>**/*.sh</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>${project.build.directory}/unpacked/modules</directory>
<outputDirectory>modules/system/layers/base</outputDirectory>
@ -38,13 +30,6 @@
<include>**/**</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/welcome-content</directory>
<outputDirectory>welcome-content</outputDirectory>
<includes>
<include>*.*</include>
</includes>
</fileSet>
<fileSet>
<directory>../../</directory>
<includes>
@ -57,7 +42,7 @@
<outputDirectory>docs/javadocs</outputDirectory>
</fileSet>
<fileSet>
<directory>../../services/target/site/apidocs</directory>
<directory>../../services/target/apidocs</directory>
<outputDirectory>docs/rest-api</outputDirectory>
</fileSet>
<fileSet>

View file

@ -27,7 +27,7 @@
</dependencies>
<build>
<finalName>keycloak-${project.version}</finalName>
<finalName>keycloak-overlay-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View file

@ -1,32 +0,0 @@
<!--
~ JBoss, Home of Professional Open Source.
~ Copyright (c) 2011, Red Hat, Inc., and individual contributors
~ as indicated by the @author tags. See the copyright.txt file in the
~ distribution for a full listing of individual contributors.
~
~ This is free software; you can redistribute it and/or modify it
~ under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this software; if not, write to the Free
~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Welcome to Keycloak</title>
<meta http-equiv="refresh" content="0; url=/auth/" />
</head>
<body>
</body>
</html>

View file

@ -55,6 +55,7 @@
<module name="org.bouncycastle"/>
<module name="org.jboss.resteasy.resteasy-jackson-provider" services="import"/>
<module name="org.jboss.resteasy.resteasy-jaxrs"/>
</dependencies>
<exclusions>
<module name="org.jboss.resteasy.resteasy-jackson2-provider"/>

View file

@ -8,21 +8,21 @@
<itemizedlist>
<listitem>
keycloak-appliance-dist-all-&project.version;.zip
keycloak-&project.version;.zip
</listitem>
<listitem>
keycloak-war-dist-all-&project.version;.zip
keycloak-overlay-&project.version;.zip
</listitem>
</itemizedlist>
</para>
<section id="Appliance_install">
<title>Appliance Install</title>
<section id="server_install">
<title>Server Install</title>
<para>
The
<literal>keycloak-appliance-dist-all-&project.version;.zip</literal>
<literal>keycloak-&project.version;.zip</literal>
is quite large, but contains a complete server (backed by Wildfly)
that runs out of the box. The only thing you'll have to enable and configure is SSL. Unzipping it, the
directory layout looks
@ -31,15 +31,13 @@
<para>
<programlisting>
keycloak-appliance-dist-all-&project.version;/
keycloak/
bin/
standalone.sh
standalone.bat
standalone/configuration/
keycloak-server.json
themes/
examples/
keycloak-&project.version;/
bin/
standalone.sh
standalone.bat
standalone/configuration/
keycloak-server.json
themes/
docs/
</programlisting>
</para>
@ -58,51 +56,32 @@ keycloak-appliance-dist-all-&project.version;/
</para>
</section>
<section id="WAR_distribution_installation">
<title>WAR Distribution Installation</title>
<title>Server Overlay Installation</title>
<para>
The
<literal>keycloak-war-dist-all-&project.version;.zip</literal>
<literal>keycloak-overlay-&project.version;.zip</literal>
contains
just the bits you need to install keycloak on your favorite web container. We currently only support
installing it on top of an existing Wildfly 8 or JBoss EAP 6.x distribution. We may in the
future provide directions on how to install it on another web container like Tomcat or Jetty. If anybody
in the community is interested in pulling this together, please contact us. Its mostly Maven pom work.
just the bits you need to install keycloak on an existing WildFly 8.2.0.Final installation.
</para>
<para>
The directory structure of this distro looks like this:
</para>
<para>
<programlisting>
keycloak-war-dist-all-&project.version;/
deployments/
auth-server.war/
keycloak-ds.xml
configuration/
keycloak-server.json
themes/
examples/
standalone/
configuration/
keycloak-server.json
themes/
providers/
modules
docs/
</programlisting>
</para>
<para>
After unzipping this file, copy everything in <literal>deployments</literal> directory into the
<literal>standalone/deployments</literal> of your JBoss or Wildfly distro. Also, copy everything in
<literal>configuration</literal> directory into the <literal>standalone/configuration</literal> directory.
Unzip this archive into the root of your WildFly installation.
</para>
<para>
<programlisting>
$ cd keycloak-war-dist-all-&project.version;
$ cp -r deployments $JBOSS_HOME/standalone/deployments
$ cp -r configuration $JBOSS_HOME/standalone/configuration
</programlisting>
</para>
<para>
After these steps you MUST then <link linkend='jboss-adapter-installation'>download and install the client adapter</link>
as this may contain modules the server needs (like Bouncycastle). You will also need to install the adapter
to run the examples on the same server.
</para>
<para>
After booting up the JBoss or Wildfly distro, you can then make sure it is installed properly
After booting up the Wildfly distro, you can then make sure it is installed properly
by logging into the admin console at<ulink
url="http://localhost:8080/auth/admin/index.html">
http://localhost:8080/auth/admin/index.html</ulink>.
@ -110,9 +89,6 @@ keycloak-war-dist-all-&project.version;/
Password: <emphasis>admin</emphasis>. Keycloak will then prompt you to
enter in a new password.
</para>
<para>
You can no longer run Keycloak on JBoss AS 7.1.1. You must run on EAP 6.x or Wildfly.
</para>
</section>
<section>
<title id="configure-server">Configuring the Server</title>
@ -137,56 +113,12 @@ keycloak-war-dist-all-&project.version;/
<section>
<title>Relational Database Configuration</title>
<para>
By default, Keycloak uses a relational database to store Keycloak data. This datasource is the <literal>standalone/deployments/keycloak-ds.xml</literal>
file of your Keycloak Server installation if you used <xref linkend="WAR_distribution_installation" /> or in <literal>standalone/configuration/standalone.xml</literal>
if you used <xref linkend="Appliance_install" />. File <literal>keycloak-ds.xml</literal> is used in WAR
distribution, so that you have datasource available out of the box and you don't need to edit <literal>standalone.xml</literal> file.
However a good thing is to always delete the file <literal>keycloak-ds.xml</literal> and move its configuration text
into the centrally managed <literal>standalone.xml</literal> file.
This will allow you to manage the database connection pool from the Wildfly/JBoss administration console. Here's what
<literal>standalone/configuration/standalone.xml</literal> should look like after you've done this:
You might want to use a better relational database for Keycloak like PostgreSQL or MySQL. You might also
want to tweak the configuration settings of the datasource. Please see the <ulink url="https://docs.jboss.org/author/display/WFLY8/DataSource+configuration">Wildfly</ulink>
documentation on how to do this.
</para>
<para>
<programlisting><![CDATA[
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS"
pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:jboss/datasources/KeycloakDS"
pool-name="KeycloakDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
]]>
</programlisting>
</para>
<para>
Besides moving the database config into the central <literal>standalone.xml</literal> configuration file
you might want to use a better relational database for Keycloak like PostgreSQL or MySQL. You might also
want to tweak the configuration settings of the datasource. Please see the <ulink url="https://docs.jboss.org/author/display/WFLY8/DataSource+configuration">Wildfly</ulink>,
<ulink url="https://docs.jboss.org/author/display/AS71/DataSource+configuration">JBoss AS7</ulink>,
or <ulink url="https://docs.jboss.org/author/display/AS71/DataSource+configuration">JBoss EAP 6.x</ulink> documentation on how to do this.
</para>
<para>
Keycloak also runs on a Hibernate/JPA backend which is configured in the
Keycloak runs on a Hibernate/JPA backend which is configured in the
<literal>standalone/configuration/keycloak-server.json</literal>.
By default the setting is like this:
<programlisting><![CDATA[
@ -463,29 +395,6 @@ All configuration options are optional. Default value for directory is <literal>
</para>
</section>
<section>
<title>EAP6.x Logging</title>
<para>
Accessing the admin console will get these annoying log messages:
</para>
<programlisting>
WARN [org.jboss.resteasy.core.ResourceLocator] (http-/127.0.0.1:8080-3)
Field providers of subresource xxx will not be injected according to spec
</programlisting>
<para>
These can be ignored by editing standalone.xml of your jboss installation:
</para>
<programlisting>
<![CDATA[
<logger category="org.jboss.resteasy.core.ResourceLocator">
<level name="ERROR"/>
</logger>
]]>
</programlisting>
</section>
<section id="ssl_modes">
<title>SSL/HTTPS Requirement/Modes</title>
<warning>
@ -553,7 +462,7 @@ All configuration options are optional. Default value for directory is <literal>
</listitem>
<listitem>
Enable JBoss or Wildfly to use this certificate and turn on SSL/HTTPS.
Enable Wildfly to use this certificate and turn on SSL/HTTPS.
</listitem>
</itemizedlist>
</para>
@ -674,29 +583,6 @@ All configuration options are optional. Default value for directory is <literal>
Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">Wildfly Undertow</ulink> documentation for more information on fine tuning the socket connections.
</para>
</section>
<section>
<title>Installing the keystore to JBoss EAP6</title>
<para>
Now that you have a Java keystore with the appropriate certificates, you need to configure your
JBoss EAP6 installation to use it. First step is to move the keystore file to a directory
you can reference in configuration. I like to put it in <literal>standalone/configuration</literal>.
Then you need to edit <literal>standalone/configuration/standalone.xml</literal> to enable SSL/HTTPS.
</para>
<para>
<programlisting><![CDATA[<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" redirect-port="443" />
<connector name="https" scheme="https" protocol="HTTP/1.1" socket-binding="https"
enable-lookups="false" secure="true">
<ssl name="localhost-ssl" password="secret" protocol="TLSv1"
key-alias="localhost" certificate-key-file="${jboss.server.config.dir}/keycloak.jks" />
</connector>
...
</subsystem>]]></programlisting>
</para>
<para>
Check the <ulink url="https://docs.jboss.org/author/display/AS71/SSL+setup+guide">JBoss</ulink> documentation for more information on fine tuning the socket connections.
</para>
</section>
</section>
<section>
@ -710,7 +596,7 @@ All configuration options are optional. Default value for directory is <literal>
</para>
<section>
<title>WildFly</title>
<title>Configure WildFly</title>
<para>
Open <literal>standalone/configuration/standalone.xml</literal> in your favorite editor.
@ -742,39 +628,6 @@ All configuration options are optional. Default value for directory is <literal>
Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">WildFly</ulink> documentation for more information.
</para>
</section>
<section>
<title>EAP</title>
<para>
Open <literal>standalone/configuration/standalone.xml</literal> in your favorite editor.
</para>
<para>
You need to add <literal>redirect-port</literal> to http <literal>connector</literal> element and
add the <literal>RemoteIpValve</literal> valve:
<programlisting><![CDATA[
<subsystem xmlns="urn:jboss:domain:web:1.5"
default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http"
socket-binding="http"
redirect-port="443"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
<valve name="remoteipvalve" module="org.jboss.as.web"
class-name="org.apache.catalina.valves.RemoteIpValve">
<param param-name="protocolHeader" param-value="x-forwarded-proto"/>
</valve>
</subsystem>
]]></programlisting>
</para>
</section>
</section>
</section>

View file

@ -14,22 +14,12 @@ $ git@github.com:keycloak/keycloak.git
* Build everything to make sure its kosher.
```
$ cd keycloak
$ mvn install
```
* Build javadoc and jaxrs-doc
```
$ mvn javadoc:javadoc
# This is for jaxrs-docs
$ cd services
$ mvn package
# back to root keycloak dir
$ cd ..
$ mvn -Pjboss-release install
```
* Upload to Nexus (from project root)
```
$ mvn -Pdistribution deploy
$ mvn -Pjboss-release deploy
```
* Login to Nexus and release the maven repository uploads in the staging area.
@ -77,4 +67,4 @@ Releases are automatically synced to Maven central, but this can take up to one
## Announce
* Update Magnolia site to link keycloak docs and announcements.
* Write a blog and email about release including links to download, migration guide, docs, and blurb about what's new
* Write a blog and email about release including links to download, migration guide, docs, and blurb about what's new

41
pom.xml
View file

@ -1042,22 +1042,6 @@
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>1024m</maxmemory>
<quiet>false</quiet>
<aggregate>true</aggregate>
<excludePackageNames>
se.unlogic.*:com.restfully.*:org.jboss.resteasy.examples.*:org.jboss.resteasy.tests.*
</excludePackageNames>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
@ -1067,6 +1051,31 @@
<module>docbook</module>
<module>distribution</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>aggregate</id>
<phase>package</phase>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>1024m</maxmemory>
<aggregate>true</aggregate>
<excludePackageNames>
se.unlogic.*:com.restfully.*:org.jboss.resteasy.examples.*:org.jboss.resteasy.tests.*
</excludePackageNames>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View file

@ -183,35 +183,26 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>generate-service-docs</id>
<phase>generate-resources</phase>
<configuration>
<subpackages>org.keycloak.services.resources.admin:org.keycloak.protocol.oidc</subpackages>
<doclet>com.lunatech.doclets.jax.jaxrs.JAXRSDoclet</doclet>
<docletArtifacts>
<docletArtifact>
<groupId>com.lunatech.jax-doclets</groupId>
<artifactId>doclets</artifactId>
<version>0.10.2</version>
</docletArtifact>
</docletArtifacts>
<detectOfflineLinks>false</detectOfflineLinks>
<offlineLinks>
<offlineLink>
<url>../javadocs</url>
<location>${project.basedir}/../target/site/apidocs</location>
</offlineLink>
</offlineLinks>
<additionalparam>-disablejavascriptexample</additionalparam>
<additionalparam>-pathexcludefilter '/admin/.*index.*' -pathexcludefilter '/admin' -pathexcludefilter '/admin/\\{realm\\}/console.*'</additionalparam>
</configuration>
<goals>
<goal>javadoc</goal>
</goals>
</execution>
</executions>
<configuration>
<subpackages>org.keycloak.services.resources.admin:org.keycloak.protocol.oidc</subpackages>
<doclet>com.lunatech.doclets.jax.jaxrs.JAXRSDoclet</doclet>
<docletArtifacts>
<docletArtifact>
<groupId>com.lunatech.jax-doclets</groupId>
<artifactId>doclets</artifactId>
<version>0.10.2</version>
</docletArtifact>
</docletArtifacts>
<detectOfflineLinks>false</detectOfflineLinks>
<offlineLinks>
<offlineLink>
<url>../javadocs</url>
<location>${project.basedir}/../target/site/apidocs</location>
</offlineLink>
</offlineLinks>
<additionalparam>-disablejavascriptexample</additionalparam>
<additionalparam>-pathexcludefilter '/admin/.*index.*' -pathexcludefilter '/admin' -pathexcludefilter '/admin/\\{realm\\}/console.*'</additionalparam>
</configuration>
</plugin>
</plugins>
</build>