From: Kai Moritz Date: Tue, 7 Apr 2026 16:42:07 +0000 (+0200) Subject: WIP:example-content:hibernate-maven-plugin X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=71e85766f043da195ad2dffb743a7771aae261a1;p=website WIP:example-content:hibernate-maven-plugin --- diff --git a/exampleSite/content/projects/hibernate-maven-plugin/_index.html b/exampleSite/content/projects/hibernate-maven-plugin/_index.html new file mode 100644 index 00000000..e98d6a91 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/_index.html @@ -0,0 +1,149 @@ +--- +title: Hibernate Maven Plugin +weight: 0 +outputs: + - html +url: projects/hibernate-maven-plugin/ +layout: article +--- +
+

Hibernate Maven Plugin

+

A simple plugin for generating a database-schema from Hibernate-Mappings

+ +

+ The hibernate-maven-plugin is a plugin for generating a database-schema + from your Hibernate-Mappings and create or update your database + accordingly. + Its main usage is to automatically create and populate a test-database + for unit-tests in cooperation with the + dbunit-maven-plugin. +

+ +

+ The plugin was designed with three main goals in mind: +

+ +
    + +
  • It should be easy to use.
  • + +
  • It should be maximal unlikely, to erase a producation-database by accident.
  • + +
  • It should not slow down the development cycle.
  • +
+ +

+ To achieve the first goal, the convention-over-configuration paradigma + was applied and the plugin was stuffed with usefull logging-messages. + So, if in doubt, just turn on the debugging output with the mvn -X .... +

+ +

+ To achieve the second goal, the precedence in which the configuration + locations are consulted was layouted in a way that makes it possible, to + prevent overwrites of the wrong database by accident. +

+ +

+ Last but not least, in order to not slow down the development cycle, the + hibernate-maven-plugin only executes the generated SQL, if the mapping + or the configuration has changed (or if you force it to do so). +

+ +

+ For more information about the inspiration to write this tiny plugin, + read our blog-article about the hibernate-maven-plugin. +

+
+

Documentation

+ + +
+

Releases

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/code-md.html b/exampleSite/content/projects/hibernate-maven-plugin/code-md.html new file mode 100644 index 00000000..fc76d9a7 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/code-md.html @@ -0,0 +1,143 @@ +--- +title: Code MD +weight: 28 +outputs: + - html +url: projects/hibernate-maven-plugin/code-md.html +layout: article +--- +
+

Code (MD)

+

Foo bar bla blub HTML, eingerückt:

+ +
+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + Foo + + +
+

Bar

+
+ + + +{{< /highlight >}}
+ +

HTML, fenced:

+ +
+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + Foo + + +
+

Bar

+
+ + + +{{< /highlight >}}
+ +

Java, eingerückt:

+ +
+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} +import java.util.math.* + +public class MyClass +{ + int i = 0; + String text = "foo"; + + + public MyClass() + { + i++; + } + + @Override + public String toString() + { + return text + ": " + i; + } +} + +{{< /highlight >}}
+ +

Java, fenced:

+ +
+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} +import java.util.math.* + +public class MyClass +{ + int i = 0; + String text = "foo"; + + + public MyClass() + { + i++; + } + + @Override + public String toString() + { + return text + ": " + i; + } +} + +{{< /highlight >}}
+ +

Fabelhaft import java.util.math.*

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/code.html b/exampleSite/content/projects/hibernate-maven-plugin/code.html new file mode 100644 index 00000000..5d535051 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/code.html @@ -0,0 +1,70 @@ +--- +title: Code +weight: 27 +outputs: + - html +url: projects/hibernate-maven-plugin/code.html +layout: article +--- +
+
+

Heading

+

Abschnitt Text usw.

+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + create + + + + +{{< /highlight >}}
+

Abschnitt Text usw.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/configuration.html b/exampleSite/content/projects/hibernate-maven-plugin/configuration.html new file mode 100644 index 00000000..a71d05ed --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/configuration.html @@ -0,0 +1,382 @@ +--- +title: Configuration Examples +weight: 20 +outputs: + - html +url: projects/hibernate-maven-plugin/configuration.html +layout: article +--- +
+

Configuration Examples

+

Configuration Through A Configuration-File

+ +

+ The most simple way to configure the plugin is, to put all the + hibernate-configuration in a hibernate.properties- or + a hibernate.cfg.xml-file on your classpath or in the + persistence.xml-file of your JPA-configuration, just + like you would do, if you are not using the + hibernate-maven-plugin. +

+ +

+ Doing so, the only additionally configuration needed, to activat the plugin + is the following entry in the plugins-section of your pom.xml: +

+ +
+{{< highlight unknown "guessSyntax=true, linenos=inline, tagWidth=2, style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + create + + + + + +{{< /highlight >}}
+ +

+ This would create the configured database. + If you want it to be droped beforehand, you have to add the goal + drop: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + drop + create + + + + + +{{< /highlight >}}
+ +

+ A correspondin goal for the command update is missing in this + version, but we are planning to implement it in near feature. +

+ +

+ In order to let this configuration work, your configuration file must + contain a complete valid configuration for the database, that you want + to use. + A simple example hibernate.properties-file may look like this: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.connection.url=jdbc:h2:file:./target/db +hibernate.connection.driver_class=org.h2.Driver +hibernate.connection.username=sa +hibernate.connection.password= + +{{< /highlight >}}
+ +

+ But be aware, that using this configuration-approach the database-url, + that is build in the application is the same that is used while testing, + where the database is droped and recreated by the plugin. + Because of that, + + you should never fire up this configuration on your production + system, or your database might be erased! + +

+ +

+ A better approach is, to specify a different url for testing like in the + following snippet: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + drop + create + + + + + + + + +{{< /highlight >}}
+ +

+ Configuration properties, that are set in the configuration-section + of the plugin-configuration cannnot be overwritten elsewere (for details + see Configuration-Method-Precedence). + You never can overwrite them by accident when specifying a property on + the commandline or in your settings.xml. +

+
+

Configuration through maven-properties

+ +

+ Alternatively, it is possible, to configure the plugin via maven-properties. + Each relevant configuration-option has a corresponding maven-property + (for a full list see the Documentation of the goal create). + These are named after the + Hibernate JDBC Properties: +

+ +
    + +
  • hibernate.connection.driver_class
  • + +
  • hibernate.dialect
  • + +
  • hibernate.connection.url
  • + +
  • hibernate.connection.username
  • + +
  • hibernate.connection.password
  • +
+ +

+ So, instead of writing the hibernate-configuration in the properties-file, + like above, you could put it in the properties-section of your + pom.xml. +

+ +

+ Thogether with the plugin-definition from above, the following would + be a complete configuration (again, the database-url was overwritten in + the plugin-configuration, to be sure to have a separate database for + testing): +

+ +
+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + org.hsqldb.jdbcDriver + org.hibernate.dialect.HSQLDialect + + sa + + + +... + + + + ... + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + drop + create + + + + + + + + + + +{{< /highlight >}}
+ +

+ This way, you can reuse the same properties to provide a + default-configurationthe, that is build into your application, and + overwrite the database-url, that is used during testing to prevent + accidential drops of your production database. +

+
+

Configuration through the plugin-configuration

+ +

+ A third way for configuring the plugin is the plugin-configuration. + The relevant configuration-parameters are: +

+ +
    + +
  • driver
  • + +
  • dialect
  • + +
  • url
  • + +
  • username
  • + +
  • password
  • +
+ +

+ The equivalent of the configuration from the last section would look + like this: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + drop + create + + + + + org.hsqldb.jdbcDriver + org.hibernate.dialect.HSQLDialect + + sa + + + + +{{< /highlight >}}
+ +

+ The parameter hibernateProperties (name of the hibernate-properties-file + to use, defaults to hibernate.properties) can only be configured through + this approach. +

+ +

+ For more explanations, see the + Documentation of the goal create. +

+
+

Configuration-Method-Precedence

+ +

+ The configuration is gathered in a fix order: +

+ +
    + +
  1. hibernate.properties
  2. + +
  3. hibernate.cfg.xml
  4. + +
  5. persistence.xml
  6. + +
  7. maven-properties
  8. + +
  9. plugin-configuration
  10. +
+ +

+ If you are in doubt about where a configuration-value comes from, run + maven with the debug-output enabled: mvn -X hibernate:create + and be aware, that maven-properties can be overwitten on the command-line, + in your ~/.m2/settings.xml and in a profile. +

+ +

+ The plugin-configuration comes last and overwrites everything else. + That way, you can be sure, that a configuration-value, that is + specified in the plugin-configuration will never be overwritten by any + other configuration-method. +

+ +

+ If you need to overwrite plugin-configuration-values with + maven-properties, you can use maven-properties in the plugin-configuration: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + drop + create + + + + + ${my-password-property} + + + +{{< /highlight >}}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/debugging.html b/exampleSite/content/projects/hibernate-maven-plugin/debugging.html new file mode 100644 index 00000000..b0fcba9e --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/debugging.html @@ -0,0 +1,82 @@ +--- +title: Enable Debugging-Output +weight: 25 +outputs: + - html +url: projects/hibernate-maven-plugin/debugging.html +layout: article +--- +
+

Enable Debugging-Output

+ +

+ If you are new to hibernate-maven-plugin, in many cases, the + Configuration-Method-Precedence + may be the source of configuration errors. + To solve this problem, you should run maven with the debugging output + enabled. + For example, by executing: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + +mvn -X compile hibernate:create +{{< /highlight >}}
+ +

+ (The compile might be necessary, because hibernate-maven-plugin + has to scan the compiled classes for annotations!) +

+ +

+ Unlike the majority of the maven-plugins, hibernate-maven-plugin was + designed to give a good many hints, when debugging is enabled. + Because, if you do not know, what went wrong, you can't fix it! +

+ +

+ But be warned: hibernate-maven-plugin tends to be very chatty ;) +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/force.html b/exampleSite/content/projects/hibernate-maven-plugin/force.html new file mode 100644 index 00000000..2bd307e2 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/force.html @@ -0,0 +1,93 @@ +--- +title: Force Exceution +weight: 29 +outputs: + - html +url: projects/hibernate-maven-plugin/force.html +layout: article +--- +
+

Force Execution

+ +

+ The hibernate-maven-plugin computes MD5-sums for all found annotated + classes and stores them together with the generated schema. + If no classes were changed or added and the dialect wasn't changed too, it + automatically skips the configured SQL-generation — and more + important in this respect — the execution of the generated SQL, + to speed up the development cycle. +

+ +

+ The plugin signals, that the execution was skipped by setting the maven + property ${hibernate.schema.skipped} to true. + This may be helpful, because other plugins like + dbunit-plugin + may fail, when the execution is skipped. +

+ +

+ If you need the hibernate-maven-plugin to never skip execution automatically, + you can force it to do so, if you set the parameter force to + true: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + true + + +{{< /highlight >}}
+ +

+ Or you may specify -Dhibernate.schema.force=true at the command line, + if you want to force hibernate-maven-plugin only once. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/pitfalls.html b/exampleSite/content/projects/hibernate-maven-plugin/pitfalls.html new file mode 100644 index 00000000..c98c23f9 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/pitfalls.html @@ -0,0 +1,359 @@ +--- +title: Known Pitfalls (FAQ) +weight: 30 +outputs: + - html +url: projects/hibernate-maven-plugin/pitfalls.html +layout: article +--- +
+

Known Pitfalls (FAQ)

+

Annotated classes in dependencies are not found.

+ +

+ hibernate-maven-plugin by default scans dependencies in the scope + compile. You can configure it to scan dependencies in other + scopes as well. But it scans only direct dependencies. Transitive + dependencies are not scanned for annotated classes. If some of your + annotated classes are hidden in a transitive dependency, you can simply + add that dependency explicitly. +

+
+

hibernate-maven-plugin always needs a database-connection

+ +

+ The default-configuration executes the created SQL. + Therefore, it needs a valid database-connection and fails, if none is + available. + If you do not need the generated SQL to be executed automatically, + you can set the property hibernate.schema.execute to + false. + This can be achieved with the command-line parameter + -Dhibernate.schema.execute=false or with the following + configuration: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + false + +{{< /highlight >}}
+ +

+ But even when no database is to be created, hibernate always needs to know + the dialect. Hence, the plugin will still fail, if this parameter is also + missing! +

+
+

Dependency for driver-class XYZ is missing

+ +

+ One regular problem is the scope of the jdbc-driver-dependency. + It is very unlikely, that this dependency is needed at compile-time. + So a tidy maven-developer would usually scope it for runtime. +

+ +

+ But this will break the execution of the hibernate-maven-plugin. + Since it will not be able to see the needed dependency, it will fail with + an error-message like: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + +[INFO] Gathered hibernate-configuration (turn on debugging for details): +[INFO] hibernate.connection.username = sa +[INFO] hibernate.connection.password = +[INFO] hibernate.dialect = org.hibernate.dialect.H2Dialect +[INFO] hibernate.connection.url = jdbc:h2:file:./db +[INFO] hibernate.hbm2dll.create_namespaces = false +[INFO] hibernate.connection.driver_class = org.h2.Driver +[INFO] hibernate.format_sql = true +[INFO] HHH000412: Hibernate Core {5.0.2.Final} +[INFO] HHH000206: hibernate.properties not found +[INFO] HHH000021: Bytecode provider name : javassist +[INFO] Adding /home/kai/project/target/classes to the list of roots to scan... +[INFO] Adding dependencies from scope compile to the list of roots to scan +[INFO] Adding dependencies from scope org.hibernate:hibernate-core:jar:4.3.0.Final to the list of roots to scan +[INFO] Adding annotated resource: de.juplo.tests.SimplestMavenHib4Test +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD FAILURE +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 1.760s +[INFO] Finished at: Mon Mar 07 19:06:54 CET 2016 +[INFO] Final Memory: 11M/215M +[INFO] ------------------------------------------------------------------------ +[ERROR] Failed to execute goal de.juplo:hibernate-maven-plugin:2.1.2-SNAPSHOT:drop (default) on project hibernate4-properties-test: Could not open the JDBC-connection: Unable to load class [org.h2.Driver]: Could not load requested class : org.h2.Driver -> [Help 1] +[ERROR] +[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. +[ERROR] Re-run Maven using the -X switch to enable full debug logging. +[ERROR] +[ERROR] For more information about the errors and possible solutions, please read the following articles: +[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException +{{< /highlight >}}
+ +

+ A quick workaround for this error would be, to delete the runtime-constraint + for the jdbc-driver-dependency. +

+ +

+ A much cleaner way is, to (additionally) ad the dependency, to the + plugin-definition: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + + + drop + create + + + + + + org.hsqldb + hsqldb + 2.2.8 + + + +{{< /highlight >}}
+ +

+ This is also the best way, if you use a different jdbc-driver for + testing, than in production. + Because otherwise, this dependency will unnecessarily bloat the + runtime-dependencies of your project. +

+ +

"##DBUnit fails after execution of hibernate was skipped because nothing has changed

+ +

+ If hibernate-maven-plugin skips its excecution, this may lead to errors in + other plugins. + For example, when importing sample-data in the automatically created database + with the help of the dbunit-plugin, + the CLEAN_INSERT-operation may fail because of foreign-key-constraints, + if the database was not recreated, because the hibernate-maven-plugin has + skipped its excecution. +

+ +

+ A quick fix to this problem is, to force + hibernate-maven-plugin to generate and execute the SQL every time it is running. + But to recreate the database on every testrun may noticeable slow down your + development cycle, if you have to wait for slow IO. +

+ +

+ To circumvent this problem, hibernate-maven-plugin signals a skipped + excecution by setting the maven property ${hibernate.schema.skipped} to + true. + You can configure other plugins to react on this signal. + For example, the dbunit-plugin can be configured to skip its excecution, if + hibernate-maven-plugin was skipped like this: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + org.codehaus.mojo + dbunit-maven-plugin + + ${hibernate.schema.skipped} + + +{{< /highlight >}}
+
+

The database will not be recreated after a manual drop/clean

+ +

+ If one manually drops the database or removes the hsqldb-files, it will not + be recreated by the hibernate-maven-plugin, because it cannot detect, that + the database needs to be recreated. + This happens, because the plugin will not recreate the database if neither + the configuration nor the annotated classes have changed, because an + unnecessary drop-create-cycle might take a long time. The plugin will + report that like this: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + +[INFO] No modified annotated classes found and dialect unchanged. +[INFO] Skipping schema generation! +{{< /highlight >}}
+ +

+ If one always uses mvn clean for cleanup, this will not happen. + Otherwise the recreation must be forced: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + +mvn hibernate:create -Dhibernate.schema.force=true +{{< /highlight >}}
+
+

The hibernate:create goal is not executed, when tests are skipped

+ +

+ The hibernate-maven-plugin automatically skips its execution, when + maven.test.skip is set to true. If you need it to be always + executed, you can configure that explicitly like this: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + ... + + false + + +{{< /highlight >}}
+ +

+ Background-information for this design-decission can be found on the extra + page To skip or not to skip: that is the question... +

+
+

I do not want my dependencies to be scanned for hibernate annotations

+ +

+ If you do not want your dependencies to be scanned for hibernate annotations, + you can pass -Dhibernate.schema.scan.dependencies=none to maven + or set scanDependencies to none in the configuration + of the plugin like this: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + ... + + none + + +{{< /highlight >}}
+
+

No annotated classes found

+ +

+ If you are working under Windows and get the error-message + No annotated classes found in directory C:\projects\X Y Z\path-to-project\target\classes, + but you are really sure, that there are annotated classes in that + directory, you are expiriencing a bug, in the scannotation-library, that + was closed in version 1.1.0 of the hibernate-maven-plugin. +

+ +

+ + You should consider to upgrade to the latest version of the plugin. + +

+
+

If two goals are specified, the second one is always skipped

+ +

+ If you specify two goals, for example drop and + create, each goal has to be specified in its own + execution, so that you can specify two different + output-files for the two goals. + Otherwise, both goals will use the same output-file and the goal, that + is run second, will always skip, becaus it will find, that the output + file already exists and conclude, that its work was already done in a + prior run. +

+ +

+ Example configuration for two goals: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + + Create Drop-Schema + test-compile + + drop + + + db-schema/drop-schema.ddl + + + + Create Create-Schema + test-compile + + create + + + db-schema/create-schema.ddl + + + + +{{< /highlight >}}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/_index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/_index.html new file mode 100644 index 00000000..f0a65ef1 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/_index.html @@ -0,0 +1,92 @@ +--- +title: Project Information +weight: 1 +outputs: + - html +url: projects/hibernate-maven-plugin/project-info.html +layout: article +--- +
+
+

Project Information

+

This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

+

Overview

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DocumentDescription
CI ManagementThis document lists the continuous integration management system of this project for building and testing code on a frequent, regular basis.
DependenciesThis document lists the project's dependencies and provides information on each dependency.
Maven CoordinatesThis document describes how to include this project as a dependency using various dependency management tools.
Distribution ManagementThis document provides informations on the distribution management of this project.
AboutA simple plugin for generating a database-schema from Hibernate-Mappings
LicensesThis document lists the project license(s).
Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
PluginsThis document lists the build plugins and the report plugins used by this project.
Source Code ManagementThis document lists ways to access the online source repository.
SummaryThis document lists other related information of this project
TeamThis document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/ci-management.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/ci-management.html new file mode 100644 index 00000000..155a5483 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/ci-management.html @@ -0,0 +1,56 @@ +--- +title: CI Management +weight: 2 +outputs: + - html +url: projects/hibernate-maven-plugin/ci-management.html +layout: article +--- +
+
+

Overview

+

This project uses Continuum.

+

Access

+

The following is a link to the continuous integration system used by the project:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/dependencies.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/dependencies.html new file mode 100644 index 00000000..2906266a --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/dependencies.html @@ -0,0 +1,1237 @@ +--- +title: Dependencies +weight: 3 +outputs: + - html +url: projects/hibernate-maven-plugin/dependencies.html +layout: article +--- +
+
+

Project Dependencies

+

compile

+

The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicenses
com.pyx4jmaven-plugin-log4j1.0.1jarThe Apache Software License, Version 2.0
de.juploscannotation1.0.4jar-
javax.eljavax.el-api3.0.0jarCDDL + GPLv2 with classpath exception
org.apache.mavenmaven-core3.3.3jarApache License, Version 2.0
org.apache.mavenmaven-plugin-api3.3.3jarApache License, Version 2.0
org.hibernatehibernate-core5.2.18.FinaljarGNU Lesser General Public License
org.hibernatehibernate-envers5.2.18.FinaljarGNU Lesser General Public License
org.hibernatehibernate-validator5.3.1.FinaljarApache License, Version 2.0
+

Project Transitive Dependencies

+

The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

+

compile

+

The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionClassifierTypeLicenses
antlrantlr2.7.7-jarBSD License
aopallianceaopalliance1.0-jarPublic Domain
com.fasterxmlclassmate1.3.0-jarThe Apache Software License, Version 2.0
com.google.guavaguava18.0-jarThe Apache Software License, Version 2.0
javax.annotationjsr250-api1.0-jarCOMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
javax.enterprisecdi-api1.0-jarApache License, Version 2.0
javax.injectjavax.inject1-jarThe Apache Software License, Version 2.0
javax.validationvalidation-api1.1.0.Final-jarThe Apache Software License, Version 2.0
log4jlog4j1.2.14-jarThe Apache Software License, Version 2.0
org.apache.mavenmaven-aether-provider3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-artifact3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-builder-support3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-model3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-model-builder3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-repository-metadata3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-settings3.3.3-jarApache License, Version 2.0
org.apache.mavenmaven-settings-builder3.3.3-jarApache License, Version 2.0
org.codehaus.plexusplexus-classworlds2.5.2-jarThe Apache Software License, Version 2.0
org.codehaus.plexusplexus-component-annotations1.5.5-jarThe Apache Software License, Version 2.0
org.codehaus.plexusplexus-interpolation1.21-jarThe Apache Software License, Version 2.0
org.dom4jdom4j2.1.1-jarBSD 3-clause New License
org.eclipse.aetheraether-api1.0.2.v20150114-jarEclipse Public License, Version 1.0
org.eclipse.aetheraether-impl1.0.2.v20150114-jarEclipse Public License, Version 1.0
org.eclipse.aetheraether-spi1.0.2.v20150114-jarEclipse Public License, Version 1.0
org.eclipse.aetheraether-util1.0.2.v20150114-jarEclipse Public License, Version 1.0
org.eclipse.sisuorg.eclipse.sisu.inject0.3.0-jarEclipse Public License, Version 1.0
org.eclipse.sisuorg.eclipse.sisu.plexus0.3.0-jarEclipse Public License, Version 1.0
org.hibernate.commonhibernate-commons-annotations5.0.1.Final-jarGNU Lesser General Public License
org.hibernate.javax.persistencehibernate-jpa-2.1-api1.0.0.Final-jarEclipse Public License (EPL), Version 1.0Eclipse Distribution License (EDL), Version 1.0
org.javassistjavassist3.22.0-GA-jarMPL 1.1LGPL 2.1Apache License 2.0
org.jbossjandex2.0.3.Final-jarApache License, Version 2.0
org.jboss.loggingjboss-logging3.3.1.Final-jarApache License, version 2.0
org.jboss.spec.javax.transactionjboss-transaction-api_1.2_spec1.0.1.Final-jarCommon Development and Distribution LicenseGNU General Public License, Version 2 with the Classpath Exception
org.sonatype.plexusplexus-cipher1.4-jarApache Public License 2.0
org.sonatype.plexusplexus-sec-dispatcher1.3-jarApache Public License 2.0
org.sonatype.sisusisu-guice3.2.5no_aopjarThe Apache Software License, Version 2.0
+

Project Dependency Graph

+ +
+

Dependency Tree

+
+

Licenses

+

Apache License, version 2.0: JBoss Logging 3

+

Eclipse Public License (EPL), Version 1.0: Java Persistence API, Version 2.1

+

Apache Public License 2.0: Plexus Cipher: encryption/decryption Component, Plexus Security Dispatcher Component

+

Common Development and Distribution License: Java Transaction API

+

BSD 3-clause New License: dom4j

+

Public Domain: AOP alliance

+

GNU Lesser General Public License: Core Hibernate O/RM functionality, ENtity VERSioning support, Hibernate Commons Annotations

+

Eclipse Distribution License (EDL), Version 1.0: Java Persistence API, Version 2.1

+

Eclipse Public License, Version 1.0: Aether API, Aether Implementation, Aether SPI, Aether Utilities, org.eclipse.sisu.inject, org.eclipse.sisu.plexus

+

Unknown: scannotation

+

Apache License 2.0: Javassist

+

BSD License: AntLR Parser Generator

+

Apache License, Version 2.0: CDI APIs, Hibernate Validator Engine, Java Annotation Indexer, Maven Aether Provider, Maven Artifact, Maven Builder Support, Maven Core, Maven Model, Maven Model Builder, Maven Plugin API, Maven Repository Metadata Model, Maven Settings, Maven Settings Builder

+

COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0: JSR-250 Common Annotations for the JavaTM Platform

+

LGPL 2.1: Javassist

+

CDDL + GPLv2 with classpath exception: Expression Language 3.0 API

+

GNU General Public License, Version 2 with the Classpath Exception: Java Transaction API

+

MPL 1.1: Javassist

+

The Apache Software License, Version 2.0: Bean Validation API, ClassMate, Guava: Google Core Libraries for Java, Hibernate Maven Plugin, Log4j, Plexus :: Component Annotations, Plexus Classworlds, Plexus Interpolation API, Sisu Guice - Core Library, javax.inject, maven-plugin-log4j

+

Dependency File Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilenameSizeEntriesClassesPackagesJava VersionDebug Information
antlr-2.7.7.jar445.3 kB239224121.2Yes
aopalliance-1.0.jar4.5 kB15921.3Yes
classmate-1.3.0.jar64.1 kB523741.6Yes
guava-18.0.jar2.3 MB17191690171.6Yes
maven-plugin-log4j-1.0.1.jar3.7 kB12111.4Yes
scannotation-1.0.4.jar20.3 kB231321.6Yes
jsr250-api-1.0.jar5.8 kB161121.5Yes
javax.el-api-3.0.0.jar73.1 kB574611.7Yes
cdi-api-1.0.jar44.9 kB927571.5Yes
javax.inject-1.jar2.5 kB8611.5No
validation-api-1.1.0.Final.jar63.8 kB12210681.6Yes
log4j-1.2.14.jar367.4 kB288256191.1Yes
maven-aether-provider-3.3.3.jar66.3 kB432611.7Yes
maven-artifact-3.3.3.jar55.1 kB5732111.7Yes
maven-builder-support-3.3.3.jar15 kB241011.7Yes
maven-core-3.3.3.jar631.9 kB489390561.7Yes
maven-model-3.3.3.jar160.8 kB675031.7Yes
maven-model-builder-3.3.3.jar176.4 kB154121161.7Yes
maven-plugin-api-3.3.3.jar46.1 kB462561.7Yes
maven-repository-metadata-3.3.3.jar26 kB25721.7Yes
maven-settings-3.3.3.jar43 kB331721.7Yes
maven-settings-builder-3.3.3.jar43.2 kB533251.7Yes
plexus-classworlds-2.5.2.jar52.7 kB523751.6Yes
plexus-component-annotations-1.5.5.jar4.2 kB15311.5No
plexus-interpolation-1.21.jar62.5 kB604461.5Yes
dom4j-2.1.1.jar323.6 kB201184141.8Yes
aether-api-1.0.2.v20150114.jar136.3 kB149128111.5Yes
aether-impl-1.0.2.v20150114.jar173 kB1149641.5Yes
aether-spi-1.0.2.v20150114.jar30.7 kB543481.5Yes
aether-util-1.0.2.v20150114.jar146.9 kB126101131.5Yes
org.eclipse.sisu.inject-0.3.0.jar375.3 kB28726991.6Yes
org.eclipse.sisu.plexus-0.3.0.jar205.4 kB196164201.6Yes
hibernate-core-5.2.18.Final.jar6.7 MB484745122561.8Yes
hibernate-envers-5.2.18.Final.jar483.9 kB364309371.8Yes
hibernate-validator-5.3.1.Final.jar723.4 kB548458541.6Yes
hibernate-commons-annotations-5.0.1.Final.jar75.3 kB806771.6Yes
hibernate-jpa-2.1-api-1.0.0.Final.jar113.4 kB20720041.6Yes
javassist-3.22.0-GA.jar739.6 kB426402171.6Yes
jandex-2.0.3.Final.jar186.7 kB11210211.6Yes
jboss-logging-3.3.1.Final.jar66 kB574511.6Yes
jboss-transaction-api_1.2_spec-1.0.1.Final.jar28.4 kB352221.7Yes
plexus-cipher-1.4.jar13.5 kB20611.4Yes
plexus-sec-dispatcher-1.3.jar28.6 kB311331.4Yes
sisu-guice-3.2.5-no_aop.jar399.7 kB33131681.6Yes
TotalSizeEntriesClassesPackagesJava VersionDebug Information
4415.7 MB11946106966611.842
compile: 44compile: 15.7 MBcompile: 11946compile: 10696compile: 6611.8compile: 42
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/dependency-info.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/dependency-info.html new file mode 100644 index 00000000..a3814580 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/dependency-info.html @@ -0,0 +1,54 @@ +--- +title: Maven Coordinates +weight: 4 +outputs: + - html +url: projects/hibernate-maven-plugin/dependency-info.html +layout: article +--- +
+
+

Maven Coordinates

+

Apache Maven

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/distribution-management.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/distribution-management.html new file mode 100644 index 00000000..55f918f3 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/distribution-management.html @@ -0,0 +1,56 @@ +--- +title: Distribution Management +weight: 5 +outputs: + - html +url: projects/hibernate-maven-plugin/distribution-management.html +layout: article +--- +
+
+

Overview

+

The following is the distribution management information used by this project.

+

Repository - ossrh

https://oss.sonatype.org/service/local/staging/deploy/maven2/
+

Snapshot Repository - ossrh

https://oss.sonatype.org/content/repositories/snapshots
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/licenses.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/licenses.html new file mode 100644 index 00000000..589e1036 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/licenses.html @@ -0,0 +1,57 @@ +--- +title: Licenses +weight: 6 +outputs: + - html +url: projects/hibernate-maven-plugin/licenses.html +layout: article +--- +
+
+

Overview

+

Typically the licenses listed for the project are that of the project itself, and not of dependencies.

+

Project Licenses

+

The Apache Software License, Version 2.0

+

A business-friendly OSS license

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/plugin-management.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/plugin-management.html new file mode 100644 index 00000000..4fd2bc67 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/plugin-management.html @@ -0,0 +1,74 @@ +--- +title: Plugin Management +weight: 7 +outputs: + - html +url: projects/hibernate-maven-plugin/plugin-management.html +layout: article +--- +
+
+

Project Plugin Management

+ + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersion
org.apache.maven.pluginsmaven-antrun-plugin1.3
org.apache.maven.pluginsmaven-assembly-plugin2.2-beta-5
org.apache.maven.pluginsmaven-dependency-plugin2.8
org.apache.maven.pluginsmaven-release-plugin2.5.3
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/plugins.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/plugins.html new file mode 100644 index 00000000..fe10fa36 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/plugins.html @@ -0,0 +1,152 @@ +--- +title: Plugins +weight: 8 +outputs: + - html +url: projects/hibernate-maven-plugin/plugins.html +layout: article +--- +
+
+

Project Build Plugins

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersion
org.apache.maven.pluginsmaven-clean-plugin2.5
org.apache.maven.pluginsmaven-compiler-plugin3.3
org.apache.maven.pluginsmaven-dependency-plugin2.10
org.apache.maven.pluginsmaven-deploy-plugin2.7
org.apache.maven.pluginsmaven-gpg-plugin1.5
org.apache.maven.pluginsmaven-install-plugin2.4
org.apache.maven.pluginsmaven-invoker-plugin1.10
org.apache.maven.pluginsmaven-jar-plugin2.4
org.apache.maven.pluginsmaven-javadoc-plugin2.7
org.apache.maven.pluginsmaven-plugin-plugin3.4
org.apache.maven.pluginsmaven-resources-plugin2.7
org.apache.maven.pluginsmaven-scm-plugin1.9.4
org.apache.maven.pluginsmaven-site-plugin3.9.1
org.apache.maven.pluginsmaven-source-plugin2.1.2
org.apache.maven.pluginsmaven-surefire-plugin2.12.4
org.sonatype.pluginsnexus-staging-maven-plugin1.6.7
+

Project Report Plugins

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersion
org.apache.maven.pluginsmaven-changes-plugin2.11
org.apache.maven.pluginsmaven-javadoc-plugin2.7
org.apache.maven.pluginsmaven-jxr-plugin2.5
org.apache.maven.pluginsmaven-plugin-plugin3.4
org.apache.maven.pluginsmaven-pmd-plugin3.4
org.apache.maven.pluginsmaven-project-info-reports-plugin3.9.0
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/scm.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/scm.html new file mode 100644 index 00000000..ca9be630 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/scm.html @@ -0,0 +1,56 @@ +--- +title: Source Code Management +weight: 9 +outputs: + - html +url: projects/hibernate-maven-plugin/scm.html +layout: article +--- +
+
+

Overview

+

This project uses Git to manage its source code. Instructions on Git use can be found at https://git-scm.com/doc.

+

Web Browser Access

+

The following is a link to a browsable version of the source repository:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/summary.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/summary.html new file mode 100644 index 00000000..4cf807e9 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/summary.html @@ -0,0 +1,89 @@ +--- +title: Summary +weight: 10 +outputs: + - html +url: projects/hibernate-maven-plugin/summary.html +layout: article +--- +
+
+

Project Summary

+

Project Information

+ + + + + + + + + + + + +
FieldValue
NameHibernate Maven Plugin
DescriptionA simple plugin for generating a database-schema from Hibernate-Mappings
Homepagehttps://juplo.de/hibernate-maven-plugin/index.html
+

Project Organization

+

This project does not belong to an organization.

+

Build Information

+ + + + + + + + + + + + + + + + + + +
FieldValue
GroupIdde.juplo
ArtifactIdhibernate-maven-plugin
Version2.1.2-SNAPSHOT
Typemaven-plugin
Java Version1.8
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-info/team.html b/exampleSite/content/projects/hibernate-maven-plugin/project-info/team.html new file mode 100644 index 00000000..70f28132 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-info/team.html @@ -0,0 +1,131 @@ +--- +title: Team +weight: 11 +outputs: + - html +url: projects/hibernate-maven-plugin/team.html +layout: article +--- +
+
+

Project Team

+

A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

+

The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

+

Members

+

The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

+ + + + + + + + + + +
ImageIdNameEmail
kaiKai Moritzkai@juplo.de
+

Contributors

+

The following additional people have contributed to this project through the way of suggestions, patches or documentation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImageNameEmail
Adriano Machadoadriano.m.machado@hotmail.com
Lorenzo Nicoralorenzo.nicora@nicus.it
Eduard Szenteeduard.szente@gmail.com
Stephen Johnsonstejohns@redhat.com
Victor Tataivtatai@gmail.com
Erik-Berndt Schepererik.berndt.scheper@gmail.com
Guido WimmelWimmel.Guido@swm.de
Joel Johnsonmrjoel@lixil.net
Paul K. Moorepaulkmoore@gmail.com
Mark Robinsonmark@mrobinson.ca
Claus Grafclausgraf@gmail.com
Joachim Van der Auwerajoachim@progs.be
Andreas Kuhtzandreas.kuhtz@gmail.com
Heer Fabiofabio.heer@dvbern.ch
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/_index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/_index.html new file mode 100644 index 00000000..9b999969 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/_index.html @@ -0,0 +1,80 @@ +--- +title: Project Reports +weight: 12 +outputs: + - html +url: projects/hibernate-maven-plugin/project-reports.html +layout: article +--- +
+
+

Generated Reports

+

This document provides an overview of the various reports that are automatically generated by Maven . Each report is briefly described below.

+

Overview

+ + + + + + + + + + + + + + + + + + + + + + + + +
DocumentDescription
Test JavaDocsTest JavaDoc API documentation.
JavaDocsJavaDoc API documentation.
Source XrefHTML based, cross-reference version of Java source code.
Test Source XrefHTML based, cross-reference version of Java test source code.
CPDDuplicate code detection.
PMDVerification of coding rules.
Plugin DocumentationThis report provides goals and parameters documentation of a plugin.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/apidocs/index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/apidocs/index.html new file mode 100644 index 00000000..396025c1 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/apidocs/index.html @@ -0,0 +1,7 @@ +--- +title: JavaDocs +weight: 14 +--- + + +

View JavaDocs

diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/cpd.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/cpd.html new file mode 100644 index 00000000..dac6f248 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/cpd.html @@ -0,0 +1,125 @@ +--- +title: CPD +weight: 17 +outputs: + - html +url: projects/hibernate-maven-plugin/cpd.html +layout: article +--- +
+
+

CPD Results

+

The following document contains the results of PMD's CPD 5.2.3.

+

Duplications

+ + + + + + + + + + +
FileLine
de/juplo/plugins/hibernate/CreateMojo.java41
de/juplo/plugins/hibernate/DropMojo.java41
+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} +public class CreateMojo extends AbstractSchemaMojo +{ + /** + * Output file. + *

+ * If the specified filename is not absolut, the file will be created + * relative to the project build directory + * (project.build.directory). + * + * @parameter property="hibernate.schema.create" default-value="create.sql" + * @since 1.0 + */ + private String outputFile; + + + @Override + public final void execute() + throws + MojoFailureException, + MojoExecutionException + { + super.execute(outputFile); + } + + + @Override + void build( + MetadataImplementor metadata, + ExecutionOptions options, + TargetDescriptor target + ) + throws + MojoExecutionException, + MojoFailureException + { + ServiceRegistry service = + metadata.getMetadataBuildingOptions().getServiceRegistry(); + SchemaManagementTool tool = service.getService(SchemaManagementTool.class); + + Map config = options.getConfigurationValues(); + SourceDescriptor source = new SourceDescriptor() + { + @Override + public SourceType getSourceType() + { + return SourceType.METADATA; + } + + @Override + public ScriptSourceInput getScriptSourceInput() + { + return null; + } + }; + + tool.getSchemaCreator(config).doCreation(metadata, options, source, target); +{{< /highlight >}}

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/_index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/_index.html new file mode 100644 index 00000000..0b018312 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/_index.html @@ -0,0 +1,123 @@ +--- +title: Plugin Documentation +weight: 19 +outputs: + - html +url: projects/hibernate-maven-plugin/plugin-info.html +layout: article +--- +
+
+

Plugin Documentation

+

Goals available for this plugin:

+ + + + + + + + + + + + + + + +
GoalDescription
hibernate:createGenerate/Execute SQL to create a database-schema that represents +the configured mappings.
hibernate:dropGenerate/Execute SQL to drop all tables of a database-schema that +represents the configured mappings.
hibernate:helpDisplay help information on hibernate-maven-plugin.
+Call mvn hibernate:help -Ddetail=true +-Dgoal=<goal-name> to display parameter details.
hibernate:updateGenerate/Execute SQL to update the database-schema according to the +configured mappings.
+

System Requirements

+

The following specifies the minimum requirements to run this Maven plugin:

+ + + + + + + + + + + + +
Maven2.0.6
JDK1.8
MemoryNo minimum requirement.
Disk SpaceNo minimum requirement.
+

Usage

+

You should specify the version in your project's plugin configuration:

+
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + ... + + + + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + ... + + + + + + de.juplo + hibernate-maven-plugin + 2.1.2-SNAPSHOT + + ... + + + ... + + +{{< /highlight >}}
+

For more information, see "Guide to Configuring Plug-ins"

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/create-mojo.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/create-mojo.html new file mode 100644 index 00000000..f29bed4e --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/create-mojo.html @@ -0,0 +1,965 @@ +--- +title: Goal — hibernate:create +weight: 21 +outputs: + - html +url: projects/hibernate-maven-plugin/create-mojo.html +layout: article +--- +
+ + +
+

hibernate:create

+ +

Full name:

+ +

de.juplo:hibernate-maven-plugin:2.1.2-SNAPSHOT:create

+ +

Description:

+ +
Generate/Execute SQL to create a database-schema that represents +the configured mappings.
+ +

Attributes:

+ +
    + +
  • Requires a Maven project to be executed.
  • + +
  • Requires dependency resolution of artifacts in scope: runtime.
  • + +
  • The goal is thread-safe and supports parallel builds.
  • + +
  • Binds by default to the lifecycle phase: process-classes.
  • +
+
+

Optional Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeSinceDescription
createNamespacesBoolean2.0Specifies whether to automatically create also the database +schema/catalog.
Default value is: false.
User property is: hibernate.hbm2dll.create_namespaces.
delimiterString1.0Delimiter in output-file. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: ;.
User property is: hibernate.hbm2ddl.delimiter.
dialectString1.0Hibernate dialect.
User property is: hibernate.dialect.
driverString1.0SQL-Driver name.
User property is: hibernate.connection.driver_class.
executeBoolean2.0Excecute the generated SQL. If set to false, only the +SQL-script is created and the database is not touched. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: true.
User property is: hibernate.schema.execute.
forceboolean1.0Force generation/execution + +

Force the generation and (if configured) the execution of the +SQL, even if no modified or newly added annotated classes where +found and the configuration was not changed.

+ +

skip takes precedence over force.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: false.
User property is: hibernate.schema.force.
formatBoolean1.0Format output-file.
User property is: hibernate.format_sql.
hibernateConfigString1.1.0Path to Hibernate configuration file (.cfg.xml). If this parameter +is specified, the plugin will try to load configuration values from +a file with the given path or a ressource on the classpath with the +given name. If both fails, the execution of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.cfg.xml on the +classpath, if it is present, but will not fail if there is no such +ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +

Settings in this file will overwrite settings in the properties +file.


hibernatePropertiesString1.0Path to a file or name of a ressource with hibernate properties. If +this parameter is specified, the plugin will try to load +configuration values from a file with the given path or a ressource +on the classpath with the given name. If both fails, the execution +of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.properties on +the classpath, if it is present, but will not fail if there is no +such ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.


implicitNamingStrategyString2.0Implicit naming strategy
User property is: hibernate.implicit_naming_strategy.
mappingsString1.0.2List of Hibernate-Mapping-Files (XML). Multiple files can be +separated with white-spaces and/or commas.
User property is: hibernate.mapping.
outputDirectoryString1.0Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +classes. Additionally, all dependencies are scanned for annotated +classes.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


User property is: project.build.outputDirectory.
outputFileString1.0Output file. + +

If the specified filename is not absolut, the file will be +created relative to the project build directory +(project.build.directory).


Default value is: create.sql.
User property is: hibernate.schema.create.
passwordString1.0Database password
User property is: hibernate.connection.password.
persistenceUnitString1.1.0Name of the persistence-unit. If this parameter is specified, the +plugin will try to load configuration values from a +persistence-unit with the specified name. If no such +persistence-unit can be found, the plugin will throw an exception. + +

If this parameter is not set and there is only one +persistence-unit available, that unit will be used automatically. +But if this parameter is not set and there are multiple +persistence-units available on, the class-path, the execution of +the plugin will fail.

+ +

Settings in this file will overwrite settings in the properties +or the configuration file.


physicalNamingStrategyString2.0Physical naming strategy
User property is: hibernate.physical_naming_strategy.
scanClassesBoolean2.0Wether the project should be scanned for annotated-classes, or not + +

This parameter is intended to allow overwriting of the parameter +exclude-unlisted-classes of a +persistence-unit. If not specified, it defaults to +true


User property is: hibernate.schema.scan.classes.
scanDependenciesString1.0.3Dependency-Scopes, that should be scanned for annotated classes. + +

By default, only dependencies in the scope compile +are scanned for annotated classes. Multiple scopes can be seperated +by white space or commas.

+ +

If you do not want any dependencies to be scanned for annotated +classes, set this parameter to none.

+ +

The plugin does not scan for annotated classes in transitive +dependencies. If some of your annotated classes are hidden in a +transitive dependency, you can simply add that dependency +explicitly.


Default value is: compile.
User property is: hibernate.schema.scan.dependencies.
scanTestClassesBoolean1.0.1Whether to scan the test-branch of the project for annotated +classes, or not. + +

If this parameter is set to true the test-classes +of the artifact will be scanned for hibernate-annotated classes +additionally.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: false.
User property is: hibernate.schema.scan.test_classes.
showBoolean1.0Show the generated SQL in the command-line output.
User property is: hibernate.show_sql.
skipboolean1.0Skip execution + +

If set to true, the execution is skipped.

+ +

A skipped execution is signaled via the maven-property +${hibernate.schema.skipped}.

+ +

The execution is skipped automatically, if no modified or newly +added annotated classes are found and the dialect was not +changed.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: ${maven.test.skip}.
User property is: hibernate.schema.skip.
testOutputDirectoryString1.0.2Test-Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +test-classes.

+ +

This parameter is only used, when scanTestClasses +is set to true!

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


User property is: project.build.testOutputDirectory.
urlString1.0Database URL.
User property is: hibernate.connection.url.
usernameString1.0Database username
User property is: hibernate.connection.username.
+
+
+

Parameter Details

+ +

createNamespaces:

+ +
Specifies whether to automatically create also the database +schema/catalog.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.hbm2dll.create_namespaces
  • + +
  • Default: false
  • +

+

delimiter:

+ +
Delimiter in output-file. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.hbm2ddl.delimiter
  • + +
  • Default: ;
  • +

+

dialect:

+ +
Hibernate dialect.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.dialect
  • +

+

driver:

+ +
SQL-Driver name.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.driver_class
  • +

+

execute:

+ +
Excecute the generated SQL. If set to false, only the +SQL-script is created and the database is not touched. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.execute
  • + +
  • Default: true
  • +

+

force:

+ +
Force generation/execution + +

Force the generation and (if configured) the execution of the +SQL, even if no modified or newly added annotated classes where +found and the configuration was not changed.

+ +

skip takes precedence over force.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.force
  • + +
  • Default: false
  • +

+

format:

+ +
Format output-file.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.format_sql
  • +

+

hibernateConfig:

+ +
Path to Hibernate configuration file (.cfg.xml). If this parameter +is specified, the plugin will try to load configuration values from +a file with the given path or a ressource on the classpath with the +given name. If both fails, the execution of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.cfg.xml on the +classpath, if it is present, but will not fail if there is no such +ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +

Settings in this file will overwrite settings in the properties +file.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.1.0
  • + +
  • Required: No
  • +

+

hibernateProperties:

+ +
Path to a file or name of a ressource with hibernate properties. If +this parameter is specified, the plugin will try to load +configuration values from a file with the given path or a ressource +on the classpath with the given name. If both fails, the execution +of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.properties on +the classpath, if it is present, but will not fail if there is no +such ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • +

+

implicitNamingStrategy:

+ +
Implicit naming strategy
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.implicit_naming_strategy
  • +

+

mappings:

+ +
List of Hibernate-Mapping-Files (XML). Multiple files can be +separated with white-spaces and/or commas.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.2
  • + +
  • Required: No
  • + +
  • User Property: hibernate.mapping
  • +

+

outputDirectory:

+ +
Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +classes. Additionally, all dependencies are scanned for annotated +classes.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: project.build.outputDirectory
  • +

+

outputFile:

+ +
Output file. + +

If the specified filename is not absolut, the file will be +created relative to the project build directory +(project.build.directory).

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.create
  • + +
  • Default: create.sql
  • +

+

password:

+ +
Database password
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.password
  • +

+

persistenceUnit:

+ +
Name of the persistence-unit. If this parameter is specified, the +plugin will try to load configuration values from a +persistence-unit with the specified name. If no such +persistence-unit can be found, the plugin will throw an exception. + +

If this parameter is not set and there is only one +persistence-unit available, that unit will be used automatically. +But if this parameter is not set and there are multiple +persistence-units available on, the class-path, the execution of +the plugin will fail.

+ +

Settings in this file will overwrite settings in the properties +or the configuration file.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.1.0
  • + +
  • Required: No
  • +

+

physicalNamingStrategy:

+ +
Physical naming strategy
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.physical_naming_strategy
  • +

+

scanClasses:

+ +
Wether the project should be scanned for annotated-classes, or not + +

This parameter is intended to allow overwriting of the parameter +exclude-unlisted-classes of a +persistence-unit. If not specified, it defaults to +true

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.classes
  • +

+

scanDependencies:

+ +
Dependency-Scopes, that should be scanned for annotated classes. + +

By default, only dependencies in the scope compile +are scanned for annotated classes. Multiple scopes can be seperated +by white space or commas.

+ +

If you do not want any dependencies to be scanned for annotated +classes, set this parameter to none.

+ +

The plugin does not scan for annotated classes in transitive +dependencies. If some of your annotated classes are hidden in a +transitive dependency, you can simply add that dependency +explicitly.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.3
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.dependencies
  • + +
  • Default: compile
  • +

+

scanTestClasses:

+ +
Whether to scan the test-branch of the project for annotated +classes, or not. + +

If this parameter is set to true the test-classes +of the artifact will be scanned for hibernate-annotated classes +additionally.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0.1
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.test_classes
  • + +
  • Default: false
  • +

+

show:

+ +
Show the generated SQL in the command-line output.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.show_sql
  • +

+

skip:

+ +
Skip execution + +

If set to true, the execution is skipped.

+ +

A skipped execution is signaled via the maven-property +${hibernate.schema.skipped}.

+ +

The execution is skipped automatically, if no modified or newly +added annotated classes are found and the dialect was not +changed.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.skip
  • + +
  • Default: ${maven.test.skip}
  • +

+

testOutputDirectory:

+ +
Test-Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +test-classes.

+ +

This parameter is only used, when scanTestClasses +is set to true!

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.2
  • + +
  • Required: No
  • + +
  • User Property: project.build.testOutputDirectory
  • +

+

url:

+ +
Database URL.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.url
  • +

+

username:

+ +
Database username
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.username
  • +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/drop-mojo.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/drop-mojo.html new file mode 100644 index 00000000..6b7e7d98 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/drop-mojo.html @@ -0,0 +1,965 @@ +--- +title: Goal — hibernate:drop +weight: 23 +outputs: + - html +url: projects/hibernate-maven-plugin/drop-mojo.html +layout: article +--- +
+ + +
+

hibernate:drop

+ +

Full name:

+ +

de.juplo:hibernate-maven-plugin:2.1.2-SNAPSHOT:drop

+ +

Description:

+ +
Generate/Execute SQL to drop all tables of a database-schema that +represents the configured mappings.
+ +

Attributes:

+ +
    + +
  • Requires a Maven project to be executed.
  • + +
  • Requires dependency resolution of artifacts in scope: runtime.
  • + +
  • The goal is thread-safe and supports parallel builds.
  • + +
  • Binds by default to the lifecycle phase: process-classes.
  • +
+
+

Optional Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeSinceDescription
createNamespacesBoolean2.0Specifies whether to automatically create also the database +schema/catalog.
Default value is: false.
User property is: hibernate.hbm2dll.create_namespaces.
delimiterString1.0Delimiter in output-file. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: ;.
User property is: hibernate.hbm2ddl.delimiter.
dialectString1.0Hibernate dialect.
User property is: hibernate.dialect.
driverString1.0SQL-Driver name.
User property is: hibernate.connection.driver_class.
executeBoolean2.0Excecute the generated SQL. If set to false, only the +SQL-script is created and the database is not touched. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: true.
User property is: hibernate.schema.execute.
forceboolean1.0Force generation/execution + +

Force the generation and (if configured) the execution of the +SQL, even if no modified or newly added annotated classes where +found and the configuration was not changed.

+ +

skip takes precedence over force.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: false.
User property is: hibernate.schema.force.
formatBoolean1.0Format output-file.
User property is: hibernate.format_sql.
hibernateConfigString1.1.0Path to Hibernate configuration file (.cfg.xml). If this parameter +is specified, the plugin will try to load configuration values from +a file with the given path or a ressource on the classpath with the +given name. If both fails, the execution of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.cfg.xml on the +classpath, if it is present, but will not fail if there is no such +ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +

Settings in this file will overwrite settings in the properties +file.


hibernatePropertiesString1.0Path to a file or name of a ressource with hibernate properties. If +this parameter is specified, the plugin will try to load +configuration values from a file with the given path or a ressource +on the classpath with the given name. If both fails, the execution +of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.properties on +the classpath, if it is present, but will not fail if there is no +such ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.


implicitNamingStrategyString2.0Implicit naming strategy
User property is: hibernate.implicit_naming_strategy.
mappingsString1.0.2List of Hibernate-Mapping-Files (XML). Multiple files can be +separated with white-spaces and/or commas.
User property is: hibernate.mapping.
outputDirectoryString1.0Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +classes. Additionally, all dependencies are scanned for annotated +classes.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


User property is: project.build.outputDirectory.
outputFileString1.0Output file. + +

If the specified filename is not absolut, the file will be +created relative to the project build directory +(project.build.directory).


Default value is: drop.sql.
User property is: hibernate.schema.drop.
passwordString1.0Database password
User property is: hibernate.connection.password.
persistenceUnitString1.1.0Name of the persistence-unit. If this parameter is specified, the +plugin will try to load configuration values from a +persistence-unit with the specified name. If no such +persistence-unit can be found, the plugin will throw an exception. + +

If this parameter is not set and there is only one +persistence-unit available, that unit will be used automatically. +But if this parameter is not set and there are multiple +persistence-units available on, the class-path, the execution of +the plugin will fail.

+ +

Settings in this file will overwrite settings in the properties +or the configuration file.


physicalNamingStrategyString2.0Physical naming strategy
User property is: hibernate.physical_naming_strategy.
scanClassesBoolean2.0Wether the project should be scanned for annotated-classes, or not + +

This parameter is intended to allow overwriting of the parameter +exclude-unlisted-classes of a +persistence-unit. If not specified, it defaults to +true


User property is: hibernate.schema.scan.classes.
scanDependenciesString1.0.3Dependency-Scopes, that should be scanned for annotated classes. + +

By default, only dependencies in the scope compile +are scanned for annotated classes. Multiple scopes can be seperated +by white space or commas.

+ +

If you do not want any dependencies to be scanned for annotated +classes, set this parameter to none.

+ +

The plugin does not scan for annotated classes in transitive +dependencies. If some of your annotated classes are hidden in a +transitive dependency, you can simply add that dependency +explicitly.


Default value is: compile.
User property is: hibernate.schema.scan.dependencies.
scanTestClassesBoolean1.0.1Whether to scan the test-branch of the project for annotated +classes, or not. + +

If this parameter is set to true the test-classes +of the artifact will be scanned for hibernate-annotated classes +additionally.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: false.
User property is: hibernate.schema.scan.test_classes.
showBoolean1.0Show the generated SQL in the command-line output.
User property is: hibernate.show_sql.
skipboolean1.0Skip execution + +

If set to true, the execution is skipped.

+ +

A skipped execution is signaled via the maven-property +${hibernate.schema.skipped}.

+ +

The execution is skipped automatically, if no modified or newly +added annotated classes are found and the dialect was not +changed.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: ${maven.test.skip}.
User property is: hibernate.schema.skip.
testOutputDirectoryString1.0.2Test-Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +test-classes.

+ +

This parameter is only used, when scanTestClasses +is set to true!

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


User property is: project.build.testOutputDirectory.
urlString1.0Database URL.
User property is: hibernate.connection.url.
usernameString1.0Database username
User property is: hibernate.connection.username.
+
+
+

Parameter Details

+ +

createNamespaces:

+ +
Specifies whether to automatically create also the database +schema/catalog.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.hbm2dll.create_namespaces
  • + +
  • Default: false
  • +

+

delimiter:

+ +
Delimiter in output-file. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.hbm2ddl.delimiter
  • + +
  • Default: ;
  • +

+

dialect:

+ +
Hibernate dialect.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.dialect
  • +

+

driver:

+ +
SQL-Driver name.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.driver_class
  • +

+

execute:

+ +
Excecute the generated SQL. If set to false, only the +SQL-script is created and the database is not touched. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.execute
  • + +
  • Default: true
  • +

+

force:

+ +
Force generation/execution + +

Force the generation and (if configured) the execution of the +SQL, even if no modified or newly added annotated classes where +found and the configuration was not changed.

+ +

skip takes precedence over force.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.force
  • + +
  • Default: false
  • +

+

format:

+ +
Format output-file.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.format_sql
  • +

+

hibernateConfig:

+ +
Path to Hibernate configuration file (.cfg.xml). If this parameter +is specified, the plugin will try to load configuration values from +a file with the given path or a ressource on the classpath with the +given name. If both fails, the execution of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.cfg.xml on the +classpath, if it is present, but will not fail if there is no such +ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +

Settings in this file will overwrite settings in the properties +file.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.1.0
  • + +
  • Required: No
  • +

+

hibernateProperties:

+ +
Path to a file or name of a ressource with hibernate properties. If +this parameter is specified, the plugin will try to load +configuration values from a file with the given path or a ressource +on the classpath with the given name. If both fails, the execution +of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.properties on +the classpath, if it is present, but will not fail if there is no +such ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • +

+

implicitNamingStrategy:

+ +
Implicit naming strategy
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.implicit_naming_strategy
  • +

+

mappings:

+ +
List of Hibernate-Mapping-Files (XML). Multiple files can be +separated with white-spaces and/or commas.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.2
  • + +
  • Required: No
  • + +
  • User Property: hibernate.mapping
  • +

+

outputDirectory:

+ +
Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +classes. Additionally, all dependencies are scanned for annotated +classes.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: project.build.outputDirectory
  • +

+

outputFile:

+ +
Output file. + +

If the specified filename is not absolut, the file will be +created relative to the project build directory +(project.build.directory).

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.drop
  • + +
  • Default: drop.sql
  • +

+

password:

+ +
Database password
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.password
  • +

+

persistenceUnit:

+ +
Name of the persistence-unit. If this parameter is specified, the +plugin will try to load configuration values from a +persistence-unit with the specified name. If no such +persistence-unit can be found, the plugin will throw an exception. + +

If this parameter is not set and there is only one +persistence-unit available, that unit will be used automatically. +But if this parameter is not set and there are multiple +persistence-units available on, the class-path, the execution of +the plugin will fail.

+ +

Settings in this file will overwrite settings in the properties +or the configuration file.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.1.0
  • + +
  • Required: No
  • +

+

physicalNamingStrategy:

+ +
Physical naming strategy
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.physical_naming_strategy
  • +

+

scanClasses:

+ +
Wether the project should be scanned for annotated-classes, or not + +

This parameter is intended to allow overwriting of the parameter +exclude-unlisted-classes of a +persistence-unit. If not specified, it defaults to +true

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.classes
  • +

+

scanDependencies:

+ +
Dependency-Scopes, that should be scanned for annotated classes. + +

By default, only dependencies in the scope compile +are scanned for annotated classes. Multiple scopes can be seperated +by white space or commas.

+ +

If you do not want any dependencies to be scanned for annotated +classes, set this parameter to none.

+ +

The plugin does not scan for annotated classes in transitive +dependencies. If some of your annotated classes are hidden in a +transitive dependency, you can simply add that dependency +explicitly.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.3
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.dependencies
  • + +
  • Default: compile
  • +

+

scanTestClasses:

+ +
Whether to scan the test-branch of the project for annotated +classes, or not. + +

If this parameter is set to true the test-classes +of the artifact will be scanned for hibernate-annotated classes +additionally.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0.1
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.test_classes
  • + +
  • Default: false
  • +

+

show:

+ +
Show the generated SQL in the command-line output.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.show_sql
  • +

+

skip:

+ +
Skip execution + +

If set to true, the execution is skipped.

+ +

A skipped execution is signaled via the maven-property +${hibernate.schema.skipped}.

+ +

The execution is skipped automatically, if no modified or newly +added annotated classes are found and the dialect was not +changed.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.skip
  • + +
  • Default: ${maven.test.skip}
  • +

+

testOutputDirectory:

+ +
Test-Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +test-classes.

+ +

This parameter is only used, when scanTestClasses +is set to true!

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.2
  • + +
  • Required: No
  • + +
  • User Property: project.build.testOutputDirectory
  • +

+

url:

+ +
Database URL.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.url
  • +

+

username:

+ +
Database username
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.username
  • +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/help-mojo.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/help-mojo.html new file mode 100644 index 00000000..08238a5b --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/help-mojo.html @@ -0,0 +1,198 @@ +--- +title: Goal — hibernate:help +weight: 24 +outputs: + - html +url: projects/hibernate-maven-plugin/help-mojo.html +layout: article +--- +
+ + +
+

hibernate:help

+ +

Full name:

+ +

de.juplo:hibernate-maven-plugin:2.1.2-SNAPSHOT:help

+ +

Description:

+ +
Display help information on hibernate-maven-plugin.
+Call mvn hibernate:help -Ddetail=true +-Dgoal=<goal-name> to display parameter details.
+ +

Attributes:

+ +
    + +
  • The goal is thread-safe and supports parallel builds.
  • +
+
+

Optional Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeSinceDescription
detailboolean-If true, display all settable properties for each +goal.
Default value is: false.
User property is: detail.
goalString-The name of the goal for which to show help. If unspecified, all +goals will be displayed.
User property is: goal.
indentSizeint-The number of spaces per indentation level, should be positive.
Default value is: 2.
User property is: indentSize.
lineLengthint-The maximum length of a display line, should be positive.
Default value is: 80.
User property is: lineLength.
+
+
+

Parameter Details

+ +

detail:

+ +
If true, display all settable properties for each +goal.
+ +
    + +
  • Type: boolean
  • + +
  • Required: No
  • + +
  • User Property: detail
  • + +
  • Default: false
  • +

+

goal:

+ +
The name of the goal for which to show help. If unspecified, all +goals will be displayed.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Required: No
  • + +
  • User Property: goal
  • +

+

indentSize:

+ +
The number of spaces per indentation level, should be positive.
+ +
    + +
  • Type: int
  • + +
  • Required: No
  • + +
  • User Property: indentSize
  • + +
  • Default: 2
  • +

+

lineLength:

+ +
The maximum length of a display line, should be positive.
+ +
    + +
  • Type: int
  • + +
  • Required: No
  • + +
  • User Property: lineLength
  • + +
  • Default: 80
  • +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/update-mojo.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/update-mojo.html new file mode 100644 index 00000000..ecd0caf3 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/plugin-info/update-mojo.html @@ -0,0 +1,965 @@ +--- +title: Goal — hibernate:update +weight: 22 +outputs: + - html +url: projects/hibernate-maven-plugin/update-mojo.html +layout: article +--- +
+ + +
+

hibernate:update

+ +

Full name:

+ +

de.juplo:hibernate-maven-plugin:2.1.2-SNAPSHOT:update

+ +

Description:

+ +
Generate/Execute SQL to update the database-schema according to the +configured mappings.
+ +

Attributes:

+ +
    + +
  • Requires a Maven project to be executed.
  • + +
  • Requires dependency resolution of artifacts in scope: runtime.
  • + +
  • The goal is thread-safe and supports parallel builds.
  • + +
  • Binds by default to the lifecycle phase: process-classes.
  • +
+
+

Optional Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeSinceDescription
createNamespacesBoolean2.0Specifies whether to automatically create also the database +schema/catalog.
Default value is: false.
User property is: hibernate.hbm2dll.create_namespaces.
delimiterString1.0Delimiter in output-file. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: ;.
User property is: hibernate.hbm2ddl.delimiter.
dialectString1.0Hibernate dialect.
User property is: hibernate.dialect.
driverString1.0SQL-Driver name.
User property is: hibernate.connection.driver_class.
executeBoolean2.0Excecute the generated SQL. If set to false, only the +SQL-script is created and the database is not touched. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: true.
User property is: hibernate.schema.execute.
forceboolean1.0Force generation/execution + +

Force the generation and (if configured) the execution of the +SQL, even if no modified or newly added annotated classes where +found and the configuration was not changed.

+ +

skip takes precedence over force.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: false.
User property is: hibernate.schema.force.
formatBoolean1.0Format output-file.
User property is: hibernate.format_sql.
hibernateConfigString1.1.0Path to Hibernate configuration file (.cfg.xml). If this parameter +is specified, the plugin will try to load configuration values from +a file with the given path or a ressource on the classpath with the +given name. If both fails, the execution of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.cfg.xml on the +classpath, if it is present, but will not fail if there is no such +ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +

Settings in this file will overwrite settings in the properties +file.


hibernatePropertiesString1.0Path to a file or name of a ressource with hibernate properties. If +this parameter is specified, the plugin will try to load +configuration values from a file with the given path or a ressource +on the classpath with the given name. If both fails, the execution +of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.properties on +the classpath, if it is present, but will not fail if there is no +such ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.


implicitNamingStrategyString2.0Implicit naming strategy
User property is: hibernate.implicit_naming_strategy.
mappingsString1.0.2List of Hibernate-Mapping-Files (XML). Multiple files can be +separated with white-spaces and/or commas.
User property is: hibernate.mapping.
outputDirectoryString1.0Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +classes. Additionally, all dependencies are scanned for annotated +classes.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


User property is: project.build.outputDirectory.
outputFileString1.0Output file. + +

If the specified filename is not absolut, the file will be +created relative to the project build directory +(project.build.directory).


Default value is: update.sql.
User property is: hibernate.schema.update.
passwordString1.0Database password
User property is: hibernate.connection.password.
persistenceUnitString1.1.0Name of the persistence-unit. If this parameter is specified, the +plugin will try to load configuration values from a +persistence-unit with the specified name. If no such +persistence-unit can be found, the plugin will throw an exception. + +

If this parameter is not set and there is only one +persistence-unit available, that unit will be used automatically. +But if this parameter is not set and there are multiple +persistence-units available on, the class-path, the execution of +the plugin will fail.

+ +

Settings in this file will overwrite settings in the properties +or the configuration file.


physicalNamingStrategyString2.0Physical naming strategy
User property is: hibernate.physical_naming_strategy.
scanClassesBoolean2.0Wether the project should be scanned for annotated-classes, or not + +

This parameter is intended to allow overwriting of the parameter +exclude-unlisted-classes of a +persistence-unit. If not specified, it defaults to +true


User property is: hibernate.schema.scan.classes.
scanDependenciesString1.0.3Dependency-Scopes, that should be scanned for annotated classes. + +

By default, only dependencies in the scope compile +are scanned for annotated classes. Multiple scopes can be seperated +by white space or commas.

+ +

If you do not want any dependencies to be scanned for annotated +classes, set this parameter to none.

+ +

The plugin does not scan for annotated classes in transitive +dependencies. If some of your annotated classes are hidden in a +transitive dependency, you can simply add that dependency +explicitly.


Default value is: compile.
User property is: hibernate.schema.scan.dependencies.
scanTestClassesBoolean1.0.1Whether to scan the test-branch of the project for annotated +classes, or not. + +

If this parameter is set to true the test-classes +of the artifact will be scanned for hibernate-annotated classes +additionally.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: false.
User property is: hibernate.schema.scan.test_classes.
showBoolean1.0Show the generated SQL in the command-line output.
User property is: hibernate.show_sql.
skipboolean1.0Skip execution + +

If set to true, the execution is skipped.

+ +

A skipped execution is signaled via the maven-property +${hibernate.schema.skipped}.

+ +

The execution is skipped automatically, if no modified or newly +added annotated classes are found and the dialect was not +changed.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


Default value is: ${maven.test.skip}.
User property is: hibernate.schema.skip.
testOutputDirectoryString1.0.2Test-Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +test-classes.

+ +

This parameter is only used, when scanTestClasses +is set to true!

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!


User property is: project.build.testOutputDirectory.
urlString1.0Database URL.
User property is: hibernate.connection.url.
usernameString1.0Database username
User property is: hibernate.connection.username.
+
+
+

Parameter Details

+ +

createNamespaces:

+ +
Specifies whether to automatically create also the database +schema/catalog.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.hbm2dll.create_namespaces
  • + +
  • Default: false
  • +

+

delimiter:

+ +
Delimiter in output-file. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.hbm2ddl.delimiter
  • + +
  • Default: ;
  • +

+

dialect:

+ +
Hibernate dialect.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.dialect
  • +

+

driver:

+ +
SQL-Driver name.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.driver_class
  • +

+

execute:

+ +
Excecute the generated SQL. If set to false, only the +SQL-script is created and the database is not touched. + +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.execute
  • + +
  • Default: true
  • +

+

force:

+ +
Force generation/execution + +

Force the generation and (if configured) the execution of the +SQL, even if no modified or newly added annotated classes where +found and the configuration was not changed.

+ +

skip takes precedence over force.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.force
  • + +
  • Default: false
  • +

+

format:

+ +
Format output-file.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.format_sql
  • +

+

hibernateConfig:

+ +
Path to Hibernate configuration file (.cfg.xml). If this parameter +is specified, the plugin will try to load configuration values from +a file with the given path or a ressource on the classpath with the +given name. If both fails, the execution of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.cfg.xml on the +classpath, if it is present, but will not fail if there is no such +ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +

Settings in this file will overwrite settings in the properties +file.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.1.0
  • + +
  • Required: No
  • +

+

hibernateProperties:

+ +
Path to a file or name of a ressource with hibernate properties. If +this parameter is specified, the plugin will try to load +configuration values from a file with the given path or a ressource +on the classpath with the given name. If both fails, the execution +of the plugin will fail. + +

If this parameter is not set the plugin will load configuration +values from a ressource named hibernate.properties on +the classpath, if it is present, but will not fail if there is no +such ressource.

+ +

During ressource-lookup, the test-classpath takes +precedence.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • +

+

implicitNamingStrategy:

+ +
Implicit naming strategy
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.implicit_naming_strategy
  • +

+

mappings:

+ +
List of Hibernate-Mapping-Files (XML). Multiple files can be +separated with white-spaces and/or commas.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.2
  • + +
  • Required: No
  • + +
  • User Property: hibernate.mapping
  • +

+

outputDirectory:

+ +
Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +classes. Additionally, all dependencies are scanned for annotated +classes.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: project.build.outputDirectory
  • +

+

outputFile:

+ +
Output file. + +

If the specified filename is not absolut, the file will be +created relative to the project build directory +(project.build.directory).

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.update
  • + +
  • Default: update.sql
  • +

+

password:

+ +
Database password
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.password
  • +

+

persistenceUnit:

+ +
Name of the persistence-unit. If this parameter is specified, the +plugin will try to load configuration values from a +persistence-unit with the specified name. If no such +persistence-unit can be found, the plugin will throw an exception. + +

If this parameter is not set and there is only one +persistence-unit available, that unit will be used automatically. +But if this parameter is not set and there are multiple +persistence-units available on, the class-path, the execution of +the plugin will fail.

+ +

Settings in this file will overwrite settings in the properties +or the configuration file.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.1.0
  • + +
  • Required: No
  • +

+

physicalNamingStrategy:

+ +
Physical naming strategy
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.physical_naming_strategy
  • +

+

scanClasses:

+ +
Wether the project should be scanned for annotated-classes, or not + +

This parameter is intended to allow overwriting of the parameter +exclude-unlisted-classes of a +persistence-unit. If not specified, it defaults to +true

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 2.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.classes
  • +

+

scanDependencies:

+ +
Dependency-Scopes, that should be scanned for annotated classes. + +

By default, only dependencies in the scope compile +are scanned for annotated classes. Multiple scopes can be seperated +by white space or commas.

+ +

If you do not want any dependencies to be scanned for annotated +classes, set this parameter to none.

+ +

The plugin does not scan for annotated classes in transitive +dependencies. If some of your annotated classes are hidden in a +transitive dependency, you can simply add that dependency +explicitly.

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.3
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.dependencies
  • + +
  • Default: compile
  • +

+

scanTestClasses:

+ +
Whether to scan the test-branch of the project for annotated +classes, or not. + +

If this parameter is set to true the test-classes +of the artifact will be scanned for hibernate-annotated classes +additionally.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0.1
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.scan.test_classes
  • + +
  • Default: false
  • +

+

show:

+ +
Show the generated SQL in the command-line output.
+ +
    + +
  • Type: java.lang.Boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.show_sql
  • +

+

skip:

+ +
Skip execution + +

If set to true, the execution is skipped.

+ +

A skipped execution is signaled via the maven-property +${hibernate.schema.skipped}.

+ +

The execution is skipped automatically, if no modified or newly +added annotated classes are found and the dialect was not +changed.

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: boolean
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.schema.skip
  • + +
  • Default: ${maven.test.skip}
  • +

+

testOutputDirectory:

+ +
Test-Classes-Directory to scan. + +

This parameter defaults to the maven build-output-directory for +test-classes.

+ +

This parameter is only used, when scanTestClasses +is set to true!

+ +

Important: This configuration value can only be +configured through the pom.xml, or by the definition +of a system-property, because it is not known by Hibernate nor JPA +and, hence, not picked up from their configuration!

+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0.2
  • + +
  • Required: No
  • + +
  • User Property: project.build.testOutputDirectory
  • +

+

url:

+ +
Database URL.
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.url
  • +

+

username:

+ +
Database username
+ +
    + +
  • Type: java.lang.String
  • + +
  • Since: 1.0
  • + +
  • Required: No
  • + +
  • User Property: hibernate.connection.username
  • +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/pmd.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/pmd.html new file mode 100644 index 00000000..3190f9ce --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/pmd.html @@ -0,0 +1,98 @@ +--- +title: PMD +weight: 18 +outputs: + - html +url: projects/hibernate-maven-plugin/pmd.html +layout: article +--- +
+
+

PMD Results

+

The following document contains the results of PMD 5.2.3.

+

Files

+

de/juplo/plugins/hibernate/ModificationTracker.java

+ + + + + + +
ViolationLine
Unnecessary use of fully qualified name 'java.security.MessageDigest.getInstance' due to existing import 'java.security.MessageDigest'60
+

de/juplo/plugins/hibernate/SimpleConnectionProvider.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ViolationLine
Too many static imports may lead to messy code1232
Avoid unused imports such as 'org.eclipse.aether.repository.AuthenticationContext.PASSWORD'13
Avoid unused imports such as 'org.eclipse.aether.repository.AuthenticationContext.USERNAME'14
Avoid unused imports such as 'org.hibernate.jpa.AvailableSettings.JDBC_DRIVER'21
Avoid unused imports such as 'org.hibernate.jpa.AvailableSettings.JDBC_PASSWORD'22
Avoid unused imports such as 'org.hibernate.jpa.AvailableSettings.JDBC_URL'23
Avoid unused imports such as 'org.hibernate.jpa.AvailableSettings.JDBC_USER'24
Unnecessary use of fully qualified name 'java.sql.Driver' due to existing import 'java.sql.Driver'151
Unnecessary use of fully qualified name 'java.sql.Connection' due to existing import 'java.sql.Connection'163
Unnecessary use of fully qualified name 'java.util.Properties' due to existing import 'java.util.Properties'165
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/testapidocs/index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/testapidocs/index.html new file mode 100644 index 00000000..b6bb98aa --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/testapidocs/index.html @@ -0,0 +1,7 @@ +--- +title: Test JavaDocs +weight: 13 +--- + + +

View Test JavaDocs

diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/xref-test/index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/xref-test/index.html new file mode 100644 index 00000000..7919e19f --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/xref-test/index.html @@ -0,0 +1,7 @@ +--- +title: Test Source Xref +weight: 16 +--- + + +

View Test Source Xref

diff --git a/exampleSite/content/projects/hibernate-maven-plugin/project-reports/xref/index.html b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/xref/index.html new file mode 100644 index 00000000..e09ea4a9 --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/project-reports/xref/index.html @@ -0,0 +1,7 @@ +--- +title: Source Xref +weight: 15 +--- + + +

View Source Xref

diff --git a/exampleSite/content/projects/hibernate-maven-plugin/skip.html b/exampleSite/content/projects/hibernate-maven-plugin/skip.html new file mode 100644 index 00000000..c3dd487d --- /dev/null +++ b/exampleSite/content/projects/hibernate-maven-plugin/skip.html @@ -0,0 +1,116 @@ +--- +title: Skipping Execution +weight: 26 +outputs: + - html +url: projects/hibernate-maven-plugin/skip.html +layout: article +--- +
+

Skipping Execution

+ +

+ In most use-cases, the hibernate-maven-plugin is used to create a + test-database automatically. In this use-cases, it is very likely, that it + will result in mistakes/errors, if the goal is executed, when the tests + are skipped. + For example, one might manually overwrite the database-url with the url of + the production-database, in order to run other tests, like starting a + local webserver with the + jetty-maven-plugin. + If the drop-goal would be executed in such a scenario, it might erase the + hole production-database, which is not very desireable. +

+ +

+ Because of this, the configuration-parameter skip defaults to the value + of the proptery maven.test.skip. This way, the execution of the + hibernate-maven-plugin is skipped automatically, when the tests are + skipped. Think of it as a build-in security-belt. +

+ +

+ If you do not like that, because you need the plugin to always, + even if the tests are skipped you can configure that explicitly, + by setting the configuration-parameter skip to false: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + ... + + false + + +{{< /highlight >}}
+ +

+ Or, if you want the plugin to be executed by default and to be skipped + if you say so, you can bind the value of the configuration-parameter + skip to a custom property. For example: +

+ +
+{{< highlight unknown "guesssyntax=true,linenos=inline,style=paraiso-dark">}} + + + de.juplo + hibernate-maven-plugin + ... + + ${foo.bar} + + +{{< /highlight >}}
+ +

+ This way, the plugin would be skipped, if you set the property + foo.bar to true. For example, if you specify -Dfoo.bar=true + on the command-line. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/allclasses-index.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/allclasses-index.html new file mode 100644 index 00000000..361e7957 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/allclasses-index.html @@ -0,0 +1,96 @@ + + + + +Alle Klassen und Schnittstellen (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Alle Klassen und Schnittstellen

+
+
+
Klassen
+
+
Klasse
+
Beschreibung
+ +
+
Baseclass with common attributes and methods.
+
+ +
+
Generate/Execute SQL to create a database-schema that represents the + configured mappings.
+
+ +
+
Generate/Execute SQL to drop all tables of a database-schema that represents + the configured mappings.
+
+ +
+
Display help information on hibernate-maven-plugin.
+ Call mvn hibernate:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
+
+ +
 
+ +
 
+ +
+
Generate/Execute SQL to update the database-schema according to the + configured mappings.
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/allpackages-index.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/allpackages-index.html new file mode 100644 index 00000000..471d4b3d --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/allpackages-index.html @@ -0,0 +1,68 @@ + + + + +Alle Packages (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Alle Packages

+
+
Packageübersicht
+
+
Package
+
Beschreibung
+ +
 
+
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/constant-values.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/constant-values.html new file mode 100644 index 00000000..039dd3cd --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/constant-values.html @@ -0,0 +1,104 @@ + + + + +Konstantenfeldwerte (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Konstantenfeldwerte

+
+
+

Inhalt

+ +
+
+

de.juplo.*

+ +
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/copy.svg b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/copy.svg new file mode 100644 index 00000000..7c46ab15 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/AbstractSchemaMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/AbstractSchemaMojo.html new file mode 100644 index 00000000..d3510e3b --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/AbstractSchemaMojo.html @@ -0,0 +1,377 @@ + + + + +AbstractSchemaMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse AbstractSchemaMojo

+
+
java.lang.Object +
org.apache.maven.plugin.AbstractMojo +
de.juplo.plugins.hibernate.AbstractSchemaMojo
+
+
+
+
+
Alle implementierten Schnittstellen:
+
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
+
+
+
Bekannte direkte Unterklassen:
+
CreateMojo, DropMojo, UpdateMojo
+
+
+
public abstract class AbstractSchemaMojo +extends org.apache.maven.plugin.AbstractMojo
+
Baseclass with common attributes and methods.
+
+
Phase:
+
process-classes
+
Thread Safe:
+
Requires Dependency Resolution:
+
runtime
+
+
+
+ +
+
+
    + +
  • +
    +

    Felddetails

    + +
    +
  • + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      AbstractSchemaMojo

      +
      public AbstractSchemaMojo()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      execute

      +
      public final void execute(String filename) + throws org.apache.maven.plugin.MojoFailureException, +org.apache.maven.plugin.MojoExecutionException
      +
      +
      Löst aus:
      +
      org.apache.maven.plugin.MojoFailureException
      +
      org.apache.maven.plugin.MojoExecutionException
      +
      +
      +
    • +
    • +
      +

      printStrackTrace

      +
      public static void printStrackTrace(StringBuilder builder, + Throwable t)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/CreateMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/CreateMojo.html new file mode 100644 index 00000000..ac9747de --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/CreateMojo.html @@ -0,0 +1,220 @@ + + + + +CreateMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse CreateMojo

+
+
java.lang.Object +
org.apache.maven.plugin.AbstractMojo +
de.juplo.plugins.hibernate.AbstractSchemaMojo +
de.juplo.plugins.hibernate.CreateMojo
+
+
+
+
+
+
Alle implementierten Schnittstellen:
+
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
+
+
+
public class CreateMojo +extends AbstractSchemaMojo
+
Generate/Execute SQL to create a database-schema that represents the + configured mappings.
+
+
Goal:
+
create
+
Phase:
+
process-classes
+
Thread Safe:
+
Requires Dependency Resolution:
+
runtime
+
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      CreateMojo

      +
      public CreateMojo()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      execute

      +
      public final void execute() + throws org.apache.maven.plugin.MojoFailureException, +org.apache.maven.plugin.MojoExecutionException
      +
      +
      Löst aus:
      +
      org.apache.maven.plugin.MojoFailureException
      +
      org.apache.maven.plugin.MojoExecutionException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/DropMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/DropMojo.html new file mode 100644 index 00000000..f925a0a6 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/DropMojo.html @@ -0,0 +1,220 @@ + + + + +DropMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse DropMojo

+
+
java.lang.Object +
org.apache.maven.plugin.AbstractMojo +
de.juplo.plugins.hibernate.AbstractSchemaMojo +
de.juplo.plugins.hibernate.DropMojo
+
+
+
+
+
+
Alle implementierten Schnittstellen:
+
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
+
+
+
public class DropMojo +extends AbstractSchemaMojo
+
Generate/Execute SQL to drop all tables of a database-schema that represents + the configured mappings.
+
+
Goal:
+
drop
+
Phase:
+
process-classes
+
Thread Safe:
+
Requires Dependency Resolution:
+
runtime
+
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      DropMojo

      +
      public DropMojo()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      execute

      +
      public final void execute() + throws org.apache.maven.plugin.MojoFailureException, +org.apache.maven.plugin.MojoExecutionException
      +
      +
      Löst aus:
      +
      org.apache.maven.plugin.MojoFailureException
      +
      org.apache.maven.plugin.MojoExecutionException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/HelpMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/HelpMojo.html new file mode 100644 index 00000000..75190955 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/HelpMojo.html @@ -0,0 +1,210 @@ + + + + +HelpMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse HelpMojo

+
+
java.lang.Object +
org.apache.maven.plugin.AbstractMojo +
de.juplo.plugins.hibernate.HelpMojo
+
+
+
+
+
Alle implementierten Schnittstellen:
+
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
+
+
+
public class HelpMojo +extends org.apache.maven.plugin.AbstractMojo
+
Display help information on hibernate-maven-plugin.
+ Call mvn hibernate:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
+
+
Autor:
+
maven-plugin-tools
+
Goal:
+
help
+
Thread Safe:
+
Requires Project:
+
false
+
+
+
+
    + +
  • +
    +

    Feldübersicht

    +
    +

    Von Schnittstelle geerbte Felder org.apache.maven.plugin.Mojo

    +ROLE
    +
    +
  • + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    void
    + +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden org.apache.maven.plugin.AbstractMojo

    +getLog, getPluginContext, setLog, setPluginContext
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      HelpMojo

      +
      public HelpMojo()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      execute

      +
      public void execute() + throws org.apache.maven.plugin.MojoExecutionException
      +
      +
      Löst aus:
      +
      org.apache.maven.plugin.MojoExecutionException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/ModificationTracker.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/ModificationTracker.html new file mode 100644 index 00000000..0a07ef98 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/ModificationTracker.html @@ -0,0 +1,122 @@ + + + + +ModificationTracker (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse ModificationTracker

+
+
java.lang.Object +
de.juplo.plugins.hibernate.ModificationTracker
+
+
+
+
public class ModificationTracker +extends Object
+
+
Autor:
+
Kai Moritz
+
+
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/MutableClassLoader.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/MutableClassLoader.html new file mode 100644 index 00000000..c8881580 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/MutableClassLoader.html @@ -0,0 +1,301 @@ + + + + +MutableClassLoader (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse MutableClassLoader

+
+
java.lang.Object +
java.lang.ClassLoader +
de.juplo.plugins.hibernate.MutableClassLoader
+
+
+
+
+
public class MutableClassLoader +extends ClassLoader
+
+
Autor:
+
kai
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/UpdateMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/UpdateMojo.html new file mode 100644 index 00000000..6f6d2135 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/UpdateMojo.html @@ -0,0 +1,220 @@ + + + + +UpdateMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse UpdateMojo

+
+
java.lang.Object +
org.apache.maven.plugin.AbstractMojo +
de.juplo.plugins.hibernate.AbstractSchemaMojo +
de.juplo.plugins.hibernate.UpdateMojo
+
+
+
+
+
+
Alle implementierten Schnittstellen:
+
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
+
+
+
public class UpdateMojo +extends AbstractSchemaMojo
+
Generate/Execute SQL to update the database-schema according to the + configured mappings.
+
+
Goal:
+
update
+
Phase:
+
process-classes
+
Thread Safe:
+
Requires Dependency Resolution:
+
runtime
+
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      UpdateMojo

      +
      public UpdateMojo()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      execute

      +
      public final void execute() + throws org.apache.maven.plugin.MojoFailureException, +org.apache.maven.plugin.MojoExecutionException
      +
      +
      Löst aus:
      +
      org.apache.maven.plugin.MojoFailureException
      +
      org.apache.maven.plugin.MojoExecutionException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/AbstractSchemaMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/AbstractSchemaMojo.html new file mode 100644 index 00000000..7df321a4 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/AbstractSchemaMojo.html @@ -0,0 +1,94 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.AbstractSchemaMojo

+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/CreateMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/CreateMojo.html new file mode 100644 index 00000000..b7bdcdfb --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/CreateMojo.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.CreateMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.CreateMojo

+
+Keine Verwendung von de.juplo.plugins.hibernate.CreateMojo
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/DropMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/DropMojo.html new file mode 100644 index 00000000..e9be806d --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/DropMojo.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.DropMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.DropMojo

+
+Keine Verwendung von de.juplo.plugins.hibernate.DropMojo
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/HelpMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/HelpMojo.html new file mode 100644 index 00000000..53ddf97e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/HelpMojo.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.HelpMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.HelpMojo

+
+Keine Verwendung von de.juplo.plugins.hibernate.HelpMojo
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/ModificationTracker.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/ModificationTracker.html new file mode 100644 index 00000000..3c49d96a --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/ModificationTracker.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.ModificationTracker (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.ModificationTracker

+
+Keine Verwendung von de.juplo.plugins.hibernate.ModificationTracker
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/MutableClassLoader.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/MutableClassLoader.html new file mode 100644 index 00000000..9d2f0010 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/MutableClassLoader.html @@ -0,0 +1,79 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.MutableClassLoader (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.MutableClassLoader

+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/UpdateMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/UpdateMojo.html new file mode 100644 index 00000000..5e4bd0eb --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/class-use/UpdateMojo.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Klasse de.juplo.plugins.hibernate.UpdateMojo (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Klasse
de.juplo.plugins.hibernate.UpdateMojo

+
+Keine Verwendung von de.juplo.plugins.hibernate.UpdateMojo
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-summary.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-summary.html new file mode 100644 index 00000000..dc3fef4f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-summary.html @@ -0,0 +1,121 @@ + + + + +de.juplo.plugins.hibernate (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package de.juplo.plugins.hibernate

+
+
+
package de.juplo.plugins.hibernate
+
+
    +
  • +
    +
    Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
    +
    Baseclass with common attributes and methods.
    +
    + +
    +
    Generate/Execute SQL to create a database-schema that represents the + configured mappings.
    +
    + +
    +
    Generate/Execute SQL to drop all tables of a database-schema that represents + the configured mappings.
    +
    + +
    +
    Display help information on hibernate-maven-plugin.
    + Call mvn hibernate:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
    +
    + +
     
    + +
     
    + +
    +
    Generate/Execute SQL to update the database-schema according to the + configured mappings.
    +
    +
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-tree.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-tree.html new file mode 100644 index 00000000..89aed3c6 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-tree.html @@ -0,0 +1,88 @@ + + + + +de.juplo.plugins.hibernate Klassenhierarchie (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.juplo.plugins.hibernate

+
+
+

Klassenhierarchie

+ +
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-use.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-use.html new file mode 100644 index 00000000..e5c37408 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/de/juplo/plugins/hibernate/package-use.html @@ -0,0 +1,80 @@ + + + + +Verwendungsweise von Package de.juplo.plugins.hibernate (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Verwendungen von Package
de.juplo.plugins.hibernate

+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/element-list b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/element-list new file mode 100644 index 00000000..4e11658e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/element-list @@ -0,0 +1 @@ +de.juplo.plugins.hibernate diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/help-doc.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/help-doc.html new file mode 100644 index 00000000..2c04e48e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/help-doc.html @@ -0,0 +1,192 @@ + + + + +API-Hilfe (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+

Hilfe zu JavaDoc

+ +
+
+

Navigation

+Ausgehend von der Seite Überblick können Sie die Dokumentation mithilfe der Links durchsuchen, die sich auf jeder Seite und in der Navigationsleiste oben auf jeder Seite befinden. Mit Index und dem Suchfeld können Sie zu spezifischen Deklarationen und Übersichtsseiten navigieren, wie Alle Packages, Alle Klassen und Schnittstellen + +
+
+
+

Seitenarten

+Die folgenden Abschnitte beschreiben die verschiedenen Seitenarten in dieser Collection. +
+

Package

+

Für jedes Package ist eine Seite vorhanden, die eine Liste der Klassen und Schnittstellen mit jeweils einer Übersicht dafür enthält. Diese Seiten können die folgenden Kategorien enthalten:

+
    +
  • Schnittstellen
  • +
  • Klassen
  • +
  • Enum-Klassen
  • +
  • Ausnahmeklassen
  • +
  • Annotationsschnittstellen
  • +
+
+
+

Klasse oder Schnittstelle

+

Für jede Klasse, Schnittstelle, verschachtelte Klasse und verschachtelte Schnittstelle ist eine separate Seite vorhanden. Jede dieser Seiten enthält drei Abschnitte, die aus einer Deklaration und Beschreibung, Mitgliederübersichtstabellen und detaillierten Mitgliederbeschreibungen bestehen. Die Einträge in diesen Abschnitten werden weggelassen, wenn sie leer oder nicht anwendbar sind.

+
    +
  • Klassenvererbungsdiagramm
  • +
  • Direkte Unterklassen
  • +
  • Alle bekannten Unterschnittstellen
  • +
  • Alle bekannten Implementierungsklassen
  • +
  • Klassen- oder Schnittstellendeklaration
  • +
  • Klassen- oder Schnittstellenbeschreibung
  • +
+
+
    +
  • Verschachtelte Klassen - Übersicht
  • +
  • Enum-Konstanten - Übersicht
  • +
  • Feldübersicht
  • +
  • Eigenschaftsübersicht
  • +
  • Konstruktorübersicht
  • +
  • Methodenübersicht
  • +
  • Erforderliche Elemente - Übersicht
  • +
  • Optionale Elemente - Übersicht
  • +
+
+
    +
  • Enum-Konstanten - Details
  • +
  • Felddetails
  • +
  • Eigenschaftsdetails
  • +
  • Konstruktordetails
  • +
  • Methodendetails
  • +
  • Elementdetails
  • +
+

Hinweis: Annotationsschnittstellen haben erforderliche und optionale Elemente, aber nicht Methoden. Nur Enum-Klassen haben Enum-Konstanten. Die Komponenten einer Datensatzklasse werden als Teil der Deklaration der Datensatzklasse angezeigt. Eigenschaften sind ein Feature von JavaFX.

+

Die Übersichtseinträge sind alphabetisch geordnet, während die detaillierten Beschreibungen in der Reihenfolge aufgeführt werden, in der sie im Quellcode auftreten. So werden die vom Programmierer festgelegten logischen Gruppierungen beibehalten.

+
+
+

Weitere Dateien

+

Packages und Module können Seiten mit weiteren Informationen zu den Deklarationen in der Nähe enthalten.

+
+
+

Verwendung

+

Für jedes dokumentierte Package sowie jede Klasse und jede Schnittstelle ist eine eigene Verwendungsseite vorhanden. Auf dieser Seite wird beschrieben, welche Packages, Klassen, Methoden, Konstruktoren und Felder einen Teil der angegebenen Klasse oder des angegebenen Packages verwenden. Bei der Klasse oder Schnittstelle A enthält die Verwendungsseite die Unterklassen von A, als A deklarierte Felder, Methoden, die A zurückgeben, sowie Methoden und Konstruktoren mit Parametern des Typs A. Sie können diese Seite aufrufen, indem Sie zunächst das Package, die Klasse oder die Schnittstelle aufrufen und anschließend in der Navigationsleiste auf den Link "Verwendung" klicken.

+
+
+

Baum (Klassenhierarchie)

+

Es gibt eine Seite Klassenhierarchie für alle Packages, und für jedes Package gibt es eine Hierarchie. Jede Hierarchieseite enthält eine Klassen- und eine Schnittstellenliste. Die Klassen sind nach Vererbungsstruktur organisiert, beginnend mit java.lang.Object. Die Schnittstellen erben nicht von java.lang.Object.

+
    +
  • Wenn Sie auf der Übersichtsseite auf "Baum" klicken, wird die Hierarchie für alle Packages angezeigt.
  • +
  • Wenn Sie eine bestimmte Package-, Klassen- oder Schnittstellenseite anzeigen und auf "Baum" klicken, wird die Hierarchie nur für dieses Package angezeigt.
  • +
+
+
+

Konstantenfeldwerte

+

Auf der Seite Konstantenfeldwerte sind die statischen endgültigen Felder und deren Werte aufgeführt.

+
+
+

Alle Packages

+

Die Seite Alle Packages enthält einen alphabetischen Index aller Packages, die in der Dokumentation enthalten sind.

+
+
+

Alle Klassen und Schnittstellen

+

Die Seite Alle Klassen und Schnittstellen enthält einen alphabetischen Index aller Klassen und Schnittstellen in der Dokumentation, einschließlich Annotationsschnittstellen, Enum-Klassen und Datensatzklassen.

+
+
+

Index

+

Die Index enthält einen alphabetischen Index aller Klassen, Schnittstellen, Konstruktoren, Methoden und Felder in der Dokumentation sowie Übersichtsseiten wie Alle Packages, Alle Klassen und Schnittstellen.

+
+
+
+Diese Hilfedatei gilt für die vom Standard-Doclet generierte API-Dokumentation.
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/index-all.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/index-all.html new file mode 100644 index 00000000..abea970e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/index-all.html @@ -0,0 +1,188 @@ + + + + +Index (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A C D E G H L M O P S T U 
Alle Klassen und Schnittstellen|Alle Packages|Konstantenfeldwerte +

A

+
+
AbstractSchemaMojo - Klasse in de.juplo.plugins.hibernate
+
+
Baseclass with common attributes and methods.
+
+
AbstractSchemaMojo() - Konstruktor für Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
add(LinkedHashSet<URL>) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
+

C

+
+
clearAssertionStatus() - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
CreateMojo - Klasse in de.juplo.plugins.hibernate
+
+
Generate/Execute SQL to create a database-schema that represents the + configured mappings.
+
+
CreateMojo() - Konstruktor für Klasse de.juplo.plugins.hibernate.CreateMojo
+
 
+
+

D

+
+
de.juplo.plugins.hibernate - Package de.juplo.plugins.hibernate
+
 
+
DropMojo - Klasse in de.juplo.plugins.hibernate
+
+
Generate/Execute SQL to drop all tables of a database-schema that represents + the configured mappings.
+
+
DropMojo() - Konstruktor für Klasse de.juplo.plugins.hibernate.DropMojo
+
 
+
+

E

+
+
execute() - Methode in Klasse de.juplo.plugins.hibernate.CreateMojo
+
 
+
execute() - Methode in Klasse de.juplo.plugins.hibernate.DropMojo
+
 
+
execute() - Methode in Klasse de.juplo.plugins.hibernate.HelpMojo
+
execute() - Methode in Klasse de.juplo.plugins.hibernate.UpdateMojo
+
 
+
execute(String) - Methode in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
EXECUTE - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
+

G

+
+
getResource(String) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
getResourceAsStream(String) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
getResources(String) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
+

H

+
+
HelpMojo - Klasse in de.juplo.plugins.hibernate
+
+
Display help information on hibernate-maven-plugin.
+ Call mvn hibernate:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
+
+
HelpMojo() - Konstruktor für Klasse de.juplo.plugins.hibernate.HelpMojo
+
 
+
+

L

+
+
loadClass(String) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
+

M

+
+
ModificationTracker - Klasse in de.juplo.plugins.hibernate
+
 
+
MutableClassLoader - Klasse in de.juplo.plugins.hibernate
+
 
+
MutableClassLoader(LinkedHashSet<URL>, Log) - Konstruktor für Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
+

O

+
+
OUTPUTDIRECTORY - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
+

P

+
+
printStrackTrace(StringBuilder, Throwable) - Statische Methode in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
+

S

+
+
SCAN_CLASSES - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
SCAN_DEPENDENCIES - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
SCAN_TESTCLASSES - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
SCRIPT - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
setClassAssertionStatus(String, boolean) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
setDefaultAssertionStatus(boolean) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
setPackageAssertionStatus(String, boolean) - Methode in Klasse de.juplo.plugins.hibernate.MutableClassLoader
+
 
+
SKIPPED - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
+

T

+
+
TEST_OUTPUTDIRECTORY - Statische Variable in Klasse de.juplo.plugins.hibernate.AbstractSchemaMojo
+
 
+
+

U

+
+
UpdateMojo - Klasse in de.juplo.plugins.hibernate
+
+
Generate/Execute SQL to update the database-schema according to the + configured mappings.
+
+
UpdateMojo() - Konstruktor für Klasse de.juplo.plugins.hibernate.UpdateMojo
+
 
+
+A C D E G H L M O P S T U 
Alle Klassen und Schnittstellen|Alle Packages|Konstantenfeldwerte
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/index.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/index.html new file mode 100644 index 00000000..143ea8aa --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/index.html @@ -0,0 +1,26 @@ + + + + +Hibernate Maven Plugin 2.1.2-SNAPSHOT API + + + + + + + + + + + +
+ +

de/juplo/plugins/hibernate/package-summary.html

+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/ASSEMBLY_EXCEPTION b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 00000000..42966666 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + https://openjdk.org/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/jquery.md b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/jquery.md new file mode 100644 index 00000000..a763ec6f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/jquery.md @@ -0,0 +1,26 @@ +## jQuery v3.7.1 + +### jQuery License +``` +jQuery v 3.7.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +``` diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/jqueryUI.md b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/jqueryUI.md new file mode 100644 index 00000000..46bfbaa5 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.14.1 + +### jQuery UI License +``` +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/link.svg b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/link.svg new file mode 100644 index 00000000..7ccc5ed0 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/member-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/member-search-index.js new file mode 100644 index 00000000..85338131 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"AbstractSchemaMojo()","u":"%3Cinit%3E()"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"add(LinkedHashSet)","u":"add(java.util.LinkedHashSet)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"clearAssertionStatus()"},{"p":"de.juplo.plugins.hibernate","c":"CreateMojo","l":"CreateMojo()","u":"%3Cinit%3E()"},{"p":"de.juplo.plugins.hibernate","c":"DropMojo","l":"DropMojo()","u":"%3Cinit%3E()"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"EXECUTE"},{"p":"de.juplo.plugins.hibernate","c":"CreateMojo","l":"execute()"},{"p":"de.juplo.plugins.hibernate","c":"DropMojo","l":"execute()"},{"p":"de.juplo.plugins.hibernate","c":"HelpMojo","l":"execute()"},{"p":"de.juplo.plugins.hibernate","c":"UpdateMojo","l":"execute()"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"execute(String)","u":"execute(java.lang.String)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"getResource(String)","u":"getResource(java.lang.String)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"getResourceAsStream(String)","u":"getResourceAsStream(java.lang.String)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"getResources(String)","u":"getResources(java.lang.String)"},{"p":"de.juplo.plugins.hibernate","c":"HelpMojo","l":"HelpMojo()","u":"%3Cinit%3E()"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"loadClass(String)","u":"loadClass(java.lang.String)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"MutableClassLoader(LinkedHashSet, Log)","u":"%3Cinit%3E(java.util.LinkedHashSet,org.apache.maven.plugin.logging.Log)"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"OUTPUTDIRECTORY"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"printStrackTrace(StringBuilder, Throwable)","u":"printStrackTrace(java.lang.StringBuilder,java.lang.Throwable)"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"SCAN_CLASSES"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"SCAN_DEPENDENCIES"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"SCAN_TESTCLASSES"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"SCRIPT"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"setClassAssertionStatus(String, boolean)","u":"setClassAssertionStatus(java.lang.String,boolean)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"setDefaultAssertionStatus(boolean)"},{"p":"de.juplo.plugins.hibernate","c":"MutableClassLoader","l":"setPackageAssertionStatus(String, boolean)","u":"setPackageAssertionStatus(java.lang.String,boolean)"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"SKIPPED"},{"p":"de.juplo.plugins.hibernate","c":"AbstractSchemaMojo","l":"TEST_OUTPUTDIRECTORY"},{"p":"de.juplo.plugins.hibernate","c":"UpdateMojo","l":"UpdateMojo()","u":"%3Cinit%3E()"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/module-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/module-search-index.js new file mode 100644 index 00000000..0d59754f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/overview-tree.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/overview-tree.html new file mode 100644 index 00000000..d0e58d0c --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/overview-tree.html @@ -0,0 +1,92 @@ + + + + +Klassenhierarchie (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für alle Packages

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+
+
+ +
+
+
+ + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/package-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/package-search-index.js new file mode 100644 index 00000000..216586f2 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"Alle Packages","u":"allpackages-index.html"},{"l":"de.juplo.plugins.hibernate"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/script-dir/jquery-3.7.1.min.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/script-dir/jquery-3.7.1.min.js new file mode 100644 index 00000000..7f37b5d9 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/script-dir/jquery-3.7.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0{"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(x){x.ui=x.ui||{};x.ui.version="1.14.1";var n,s,C,k,o,l,a,r,u,i,h=0,c=Array.prototype.hasOwnProperty,d=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l,a={},r=t.split(".")[0];return"__proto__"===(t=t.split(".")[1])||"constructor"===t?x.error("Invalid widget name: "+t):(l=r+"-"+t,e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[l.toLowerCase()]=function(t){return!!x.data(t,l)},x[r]=x[r]||{},s=x[r][t],n=x[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"!=typeof s?s:function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n)},x.widget.extend=function(t){for(var e,i,s=d.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n{var i=[];n.element.each(function(t,e){x.map(l.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),l._on(x(i),{remove:"_untrackClassesElement"})})(),x(x.uniqueSort(i.get().concat(n.element.get())))):x(i.not(n.element).get()),l.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=x.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;x.each(s.classesElementLookup,function(t,e){-1!==x.inArray(i.target,e)&&(s.classesElementLookup[t]=x(e.not(i.target).get()))}),this._off(x(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,e={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return e.element.toggleClass(this._classes(e),s),this},_on:function(n,o,t){var l,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=l=x(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,l=this.widget()),x.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!x(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||x.guid++);var t=t.match(/^([\w:-]*)\s*(.*)$/),s=t[1]+a.eventNamespace,t=t[2];t?l.on(s,t,i):o.on(s,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=x(this.bindings.not(t).get()),this.focusable=x(this.focusable.not(t).get()),this.hoverable=x(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(x(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(x(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=x.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},x.each({show:"fadeIn",hide:"fadeOut"},function(o,l){x.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||l:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!x.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&x.effects&&x.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){x(this)[o](),i&&i.call(e[0]),t()})}}),x.widget;function E(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function T(t,e){return parseInt(x.css(t,e),10)||0}function W(t){return null!=t&&t===t.window}C=Math.max,k=Math.abs,o=/left|center|right/,l=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,u=/%$/,i=x.fn.position,x.position={scrollbarWidth:function(){var t,e,i;return void 0!==s?s:(i=(e=x("
")).children()[0],x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(k(s),k(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})):i.apply(this,arguments)},x.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,l=n-o,a=o+e.collisionWidth-s-n;s",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(this.document[0].activeElement);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
    ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent)&&/^mouse/.test(t.originalEvent.type)?(this.menu.blur(),this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)})):(s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
    ").text(i))},100)))},menuselect:function(t,e){var e=e.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.trigger("focus"),this.previous=i),!1!==this._trigger("select",t,{item:e})&&this._value(e.value),this.term=this._value(),this.close(t),this.selectedItem=e}}),this.liveRegion=x("
    ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=(t=(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))&&t[0]?t:this.element.closest(".ui-front, dialog")).length?t:this.document[0].body},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
    ").text(e.label)).appendTo(t)},_move:function(t,e){this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur()):this.menu[t](e):this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}}),x.ui.autocomplete}); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/script.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/script.js new file mode 100644 index 00000000..bb9c8a24 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.getElementById(tableId + '.tabpanel') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search-page.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search-page.js new file mode 100644 index 00000000..540c90f5 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
    ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
    ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
    ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
    " + col1 + "
    ").appendTo(table); + if (category !== "modules") { + $("
    " + col2 + "
    ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
    ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
    ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search.html b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search.html new file mode 100644 index 00000000..5a0ecc35 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search.html @@ -0,0 +1,76 @@ + + + + +Suchen (Hibernate Maven Plugin 2.1.2-SNAPSHOT API) + + + + + + + + + + + + + + +
    + +
    +
    +

    Suchen

    +
    + + +
    +Zusätzliche Ressourcen +
    +
    +
    +

    Die Hilfeseite enthält eine Einführung in den Umfang und die Syntax der JavaDoc-Suche.

    +

    Sie können die <STRG>- oder <CMD>-Taste zusammen mit den Pfeiltasten nach links und rechts verwenden, um zwischen Ergebnisregisterkarten auf dieser Seite zu wechseln.

    +

    Mit der URL-Vorlage unten können Sie diese Seite als Suchmaschine in Browsern konfigurieren, die dieses Feature unterstützen. Das Feature wurde erfolgreich mit Google Chrome und Mozilla Firefox getestet. Beachten Sie, dass andere Browser dieses Feature möglicherweise nicht unterstützen oder ein anderes URL-Format erfordern.

    +link +

    + +

    +
    +

    Suchindex wird geladen...

    + +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search.js new file mode 100644 index 00000000..613e348e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +"use strict"; +const messages = { + enterTerm: "Geben Sie einen Suchbegriff ein", + noResult: "Keine Ergebnisse gefunden", + oneResult: "Ein Ergebnis gefunden", + manyResults: "{0} Ergebnisse gefunden", + loading: "Suchindex wird geladen...", + searching: "Suche wird ausgeführt...", + redirecting: "Zum ersten Ergebnis wird umgeleitet...", + linkIcon: "Linksymbol", + linkToSection: "Link zu diesem Abschnitt" +} +const categories = { + modules: "Module", + packages: "Packages", + types: "Klassen und Schnittstellen", + members: "Mitglieder", + searchTags: "Tags suchen" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + categories[item.category] + "
  • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append(""); + }, + _renderItem: function(ul, item) { + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
    " + + idx.d + "
    "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { + // Create anchor links for headers with an associated id attribute + var hdr = $(el); + var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); + if (id) { + hdr.append(" " + messages.linkIcon +""); + } + }); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/stylesheet.css b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/stylesheet.css new file mode 100644 index 00000000..f71489f8 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/tag-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/tag-search-index.js new file mode 100644 index 00000000..8ebd9c8b --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Konstantenfeldwerte","h":"","u":"constant-values.html"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/apidocs/type-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/type-search-index.js new file mode 100644 index 00000000..0dce0b38 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/apidocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"de.juplo.plugins.hibernate","l":"AbstractSchemaMojo"},{"l":"Alle Klassen und Schnittstellen","u":"allclasses-index.html"},{"p":"de.juplo.plugins.hibernate","l":"CreateMojo"},{"p":"de.juplo.plugins.hibernate","l":"DropMojo"},{"p":"de.juplo.plugins.hibernate","l":"HelpMojo"},{"p":"de.juplo.plugins.hibernate","l":"ModificationTracker"},{"p":"de.juplo.plugins.hibernate","l":"MutableClassLoader"},{"p":"de.juplo.plugins.hibernate","l":"UpdateMojo"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/css/site.css b/exampleSite/static/projects/hibernate-maven-plugin/css/site.css new file mode 100644 index 00000000..055e7e28 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/css/site.css @@ -0,0 +1 @@ +/* You can override this file with your own styles */ \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/images/close.gif b/exampleSite/static/projects/hibernate-maven-plugin/images/close.gif new file mode 100644 index 00000000..1c26bbc5 Binary files /dev/null and b/exampleSite/static/projects/hibernate-maven-plugin/images/close.gif differ diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/allclasses-index.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/allclasses-index.html new file mode 100644 index 00000000..4cb0cad3 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/allclasses-index.html @@ -0,0 +1,70 @@ + + + + +Alle Klassen und Schnittstellen (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Alle Klassen und Schnittstellen

    +
    +
    +
    Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    +
    +
    +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/allpackages-index.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/allpackages-index.html new file mode 100644 index 00000000..9019177e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/allpackages-index.html @@ -0,0 +1,68 @@ + + + + +Alle Packages (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Alle Packages

    +
    +
    Packageübersicht
    +
    +
    Package
    +
    Beschreibung
    + +
     
    +
    +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/copy.svg b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/copy.svg new file mode 100644 index 00000000..7c46ab15 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/FileComparator.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/FileComparator.html new file mode 100644 index 00000000..43037b3f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/FileComparator.html @@ -0,0 +1,185 @@ + + + + +FileComparator (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +
    Package de.juplo.test
    +

    Klasse FileComparator

    +
    +
    java.lang.Object +
    de.juplo.test.FileComparator
    +
    +
    +
    +
    public class FileComparator +extends Object
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/class-use/FileComparator.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/class-use/FileComparator.html new file mode 100644 index 00000000..a22023a6 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/class-use/FileComparator.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Klasse de.juplo.test.FileComparator (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Verwendungen von Klasse
    de.juplo.test.FileComparator

    +
    +Keine Verwendung von de.juplo.test.FileComparator
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-summary.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-summary.html new file mode 100644 index 00000000..994e393e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-summary.html @@ -0,0 +1,95 @@ + + + + +de.juplo.test (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Package de.juplo.test

    +
    +
    +
    package de.juplo.test
    +
    + +
    +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-tree.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-tree.html new file mode 100644 index 00000000..4813d648 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-tree.html @@ -0,0 +1,71 @@ + + + + +de.juplo.test Klassenhierarchie (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchie für Package de.juplo.test

    +
    +
    +

    Klassenhierarchie

    + +
    +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-use.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-use.html new file mode 100644 index 00000000..8b2f505c --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/de/juplo/test/package-use.html @@ -0,0 +1,61 @@ + + + + +Verwendungsweise von Package de.juplo.test (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Verwendungen von Package
    de.juplo.test

    +
    +Keine Verwendung von de.juplo.test
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/element-list b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/element-list new file mode 100644 index 00000000..4774195e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/element-list @@ -0,0 +1 @@ +de.juplo.test diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/help-doc.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/help-doc.html new file mode 100644 index 00000000..0a4e459a --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/help-doc.html @@ -0,0 +1,187 @@ + + + + +API-Hilfe (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +

    Hilfe zu JavaDoc

    + +
    +
    +

    Navigation

    +Ausgehend von der Seite Überblick können Sie die Dokumentation mithilfe der Links durchsuchen, die sich auf jeder Seite und in der Navigationsleiste oben auf jeder Seite befinden. Mit Index und dem Suchfeld können Sie zu spezifischen Deklarationen und Übersichtsseiten navigieren, wie Alle Packages, Alle Klassen und Schnittstellen + +
    +
    +
    +

    Seitenarten

    +Die folgenden Abschnitte beschreiben die verschiedenen Seitenarten in dieser Collection. +
    +

    Package

    +

    Für jedes Package ist eine Seite vorhanden, die eine Liste der Klassen und Schnittstellen mit jeweils einer Übersicht dafür enthält. Diese Seiten können die folgenden Kategorien enthalten:

    +
      +
    • Schnittstellen
    • +
    • Klassen
    • +
    • Enum-Klassen
    • +
    • Ausnahmeklassen
    • +
    • Annotationsschnittstellen
    • +
    +
    +
    +

    Klasse oder Schnittstelle

    +

    Für jede Klasse, Schnittstelle, verschachtelte Klasse und verschachtelte Schnittstelle ist eine separate Seite vorhanden. Jede dieser Seiten enthält drei Abschnitte, die aus einer Deklaration und Beschreibung, Mitgliederübersichtstabellen und detaillierten Mitgliederbeschreibungen bestehen. Die Einträge in diesen Abschnitten werden weggelassen, wenn sie leer oder nicht anwendbar sind.

    +
      +
    • Klassenvererbungsdiagramm
    • +
    • Direkte Unterklassen
    • +
    • Alle bekannten Unterschnittstellen
    • +
    • Alle bekannten Implementierungsklassen
    • +
    • Klassen- oder Schnittstellendeklaration
    • +
    • Klassen- oder Schnittstellenbeschreibung
    • +
    +
    +
      +
    • Verschachtelte Klassen - Übersicht
    • +
    • Enum-Konstanten - Übersicht
    • +
    • Feldübersicht
    • +
    • Eigenschaftsübersicht
    • +
    • Konstruktorübersicht
    • +
    • Methodenübersicht
    • +
    • Erforderliche Elemente - Übersicht
    • +
    • Optionale Elemente - Übersicht
    • +
    +
    +
      +
    • Enum-Konstanten - Details
    • +
    • Felddetails
    • +
    • Eigenschaftsdetails
    • +
    • Konstruktordetails
    • +
    • Methodendetails
    • +
    • Elementdetails
    • +
    +

    Hinweis: Annotationsschnittstellen haben erforderliche und optionale Elemente, aber nicht Methoden. Nur Enum-Klassen haben Enum-Konstanten. Die Komponenten einer Datensatzklasse werden als Teil der Deklaration der Datensatzklasse angezeigt. Eigenschaften sind ein Feature von JavaFX.

    +

    Die Übersichtseinträge sind alphabetisch geordnet, während die detaillierten Beschreibungen in der Reihenfolge aufgeführt werden, in der sie im Quellcode auftreten. So werden die vom Programmierer festgelegten logischen Gruppierungen beibehalten.

    +
    +
    +

    Weitere Dateien

    +

    Packages und Module können Seiten mit weiteren Informationen zu den Deklarationen in der Nähe enthalten.

    +
    +
    +

    Verwendung

    +

    Für jedes dokumentierte Package sowie jede Klasse und jede Schnittstelle ist eine eigene Verwendungsseite vorhanden. Auf dieser Seite wird beschrieben, welche Packages, Klassen, Methoden, Konstruktoren und Felder einen Teil der angegebenen Klasse oder des angegebenen Packages verwenden. Bei der Klasse oder Schnittstelle A enthält die Verwendungsseite die Unterklassen von A, als A deklarierte Felder, Methoden, die A zurückgeben, sowie Methoden und Konstruktoren mit Parametern des Typs A. Sie können diese Seite aufrufen, indem Sie zunächst das Package, die Klasse oder die Schnittstelle aufrufen und anschließend in der Navigationsleiste auf den Link "Verwendung" klicken.

    +
    +
    +

    Baum (Klassenhierarchie)

    +

    Es gibt eine Seite Klassenhierarchie für alle Packages, und für jedes Package gibt es eine Hierarchie. Jede Hierarchieseite enthält eine Klassen- und eine Schnittstellenliste. Die Klassen sind nach Vererbungsstruktur organisiert, beginnend mit java.lang.Object. Die Schnittstellen erben nicht von java.lang.Object.

    +
      +
    • Wenn Sie auf der Übersichtsseite auf "Baum" klicken, wird die Hierarchie für alle Packages angezeigt.
    • +
    • Wenn Sie eine bestimmte Package-, Klassen- oder Schnittstellenseite anzeigen und auf "Baum" klicken, wird die Hierarchie nur für dieses Package angezeigt.
    • +
    +
    +
    +

    Alle Packages

    +

    Die Seite Alle Packages enthält einen alphabetischen Index aller Packages, die in der Dokumentation enthalten sind.

    +
    +
    +

    Alle Klassen und Schnittstellen

    +

    Die Seite Alle Klassen und Schnittstellen enthält einen alphabetischen Index aller Klassen und Schnittstellen in der Dokumentation, einschließlich Annotationsschnittstellen, Enum-Klassen und Datensatzklassen.

    +
    +
    +

    Index

    +

    Die Index enthält einen alphabetischen Index aller Klassen, Schnittstellen, Konstruktoren, Methoden und Felder in der Dokumentation sowie Übersichtsseiten wie Alle Packages, Alle Klassen und Schnittstellen.

    +
    +
    +
    +Diese Hilfedatei gilt für die vom Standard-Doclet generierte API-Dokumentation.
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/index-all.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/index-all.html new file mode 100644 index 00000000..a3f8f570 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/index-all.html @@ -0,0 +1,79 @@ + + + + +Index (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    +D F I 
    Alle Klassen und Schnittstellen|Alle Packages +

    D

    +
    +
    de.juplo.test - Package de.juplo.test
    +
     
    +
    +

    F

    +
    +
    FileComparator - Klasse in de.juplo.test
    +
     
    +
    FileComparator(File) - Konstruktor für Klasse de.juplo.test.FileComparator
    +
     
    +
    +

    I

    +
    +
    isEqual(String, String) - Methode in Klasse de.juplo.test.FileComparator
    +
     
    +
    +D F I 
    Alle Klassen und Schnittstellen|Alle Packages
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/index.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/index.html new file mode 100644 index 00000000..12774bc3 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/index.html @@ -0,0 +1,26 @@ + + + + +Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API + + + + + + + + + + + +
    + +

    de/juplo/test/package-summary.html

    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/ASSEMBLY_EXCEPTION b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 00000000..42966666 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + https://openjdk.org/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/jquery.md b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/jquery.md new file mode 100644 index 00000000..a763ec6f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/jquery.md @@ -0,0 +1,26 @@ +## jQuery v3.7.1 + +### jQuery License +``` +jQuery v 3.7.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +``` diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/jqueryUI.md b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/jqueryUI.md new file mode 100644 index 00000000..46bfbaa5 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.14.1 + +### jQuery UI License +``` +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/link.svg b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/link.svg new file mode 100644 index 00000000..7ccc5ed0 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/member-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/member-search-index.js new file mode 100644 index 00000000..6cb32a95 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"de.juplo.test","c":"FileComparator","l":"FileComparator(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"de.juplo.test","c":"FileComparator","l":"isEqual(String, String)","u":"isEqual(java.lang.String,java.lang.String)"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/module-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/module-search-index.js new file mode 100644 index 00000000..0d59754f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/overview-tree.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/overview-tree.html new file mode 100644 index 00000000..d27fa289 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/overview-tree.html @@ -0,0 +1,75 @@ + + + + +Klassenhierarchie (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchie für alle Packages

    +
    +Packagehierarchien: + +
    +

    Klassenhierarchie

    + +
    +
    +
    +
    + +
    +
    +
    + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/package-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/package-search-index.js new file mode 100644 index 00000000..308e42f9 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"Alle Packages","u":"allpackages-index.html"},{"l":"de.juplo.test"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/script-dir/jquery-3.7.1.min.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/script-dir/jquery-3.7.1.min.js new file mode 100644 index 00000000..7f37b5d9 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/script-dir/jquery-3.7.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0{"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(x){x.ui=x.ui||{};x.ui.version="1.14.1";var n,s,C,k,o,l,a,r,u,i,h=0,c=Array.prototype.hasOwnProperty,d=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l,a={},r=t.split(".")[0];return"__proto__"===(t=t.split(".")[1])||"constructor"===t?x.error("Invalid widget name: "+t):(l=r+"-"+t,e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[l.toLowerCase()]=function(t){return!!x.data(t,l)},x[r]=x[r]||{},s=x[r][t],n=x[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"!=typeof s?s:function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n)},x.widget.extend=function(t){for(var e,i,s=d.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n{var i=[];n.element.each(function(t,e){x.map(l.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),l._on(x(i),{remove:"_untrackClassesElement"})})(),x(x.uniqueSort(i.get().concat(n.element.get())))):x(i.not(n.element).get()),l.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=x.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;x.each(s.classesElementLookup,function(t,e){-1!==x.inArray(i.target,e)&&(s.classesElementLookup[t]=x(e.not(i.target).get()))}),this._off(x(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,e={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return e.element.toggleClass(this._classes(e),s),this},_on:function(n,o,t){var l,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=l=x(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,l=this.widget()),x.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!x(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||x.guid++);var t=t.match(/^([\w:-]*)\s*(.*)$/),s=t[1]+a.eventNamespace,t=t[2];t?l.on(s,t,i):o.on(s,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=x(this.bindings.not(t).get()),this.focusable=x(this.focusable.not(t).get()),this.hoverable=x(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(x(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(x(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=x.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},x.each({show:"fadeIn",hide:"fadeOut"},function(o,l){x.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||l:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!x.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&x.effects&&x.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){x(this)[o](),i&&i.call(e[0]),t()})}}),x.widget;function E(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function T(t,e){return parseInt(x.css(t,e),10)||0}function W(t){return null!=t&&t===t.window}C=Math.max,k=Math.abs,o=/left|center|right/,l=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,u=/%$/,i=x.fn.position,x.position={scrollbarWidth:function(){var t,e,i;return void 0!==s?s:(i=(e=x("
    ")).children()[0],x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(k(s),k(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})):i.apply(this,arguments)},x.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,l=n-o,a=o+e.collisionWidth-s-n;s",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(this.document[0].activeElement);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent)&&/^mouse/.test(t.originalEvent.type)?(this.menu.blur(),this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)})):(s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
      ").text(i))},100)))},menuselect:function(t,e){var e=e.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.trigger("focus"),this.previous=i),!1!==this._trigger("select",t,{item:e})&&this._value(e.value),this.term=this._value(),this.close(t),this.selectedItem=e}}),this.liveRegion=x("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=(t=(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))&&t[0]?t:this.element.closest(".ui-front, dialog")).length?t:this.document[0].body},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
      ").text(e.label)).appendTo(t)},_move:function(t,e){this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur()):this.menu[t](e):this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}}),x.ui.autocomplete}); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/script.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/script.js new file mode 100644 index 00000000..bb9c8a24 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.getElementById(tableId + '.tabpanel') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search-page.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search-page.js new file mode 100644 index 00000000..540c90f5 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
      ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
      ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
      ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
      " + col1 + "
      ").appendTo(table); + if (category !== "modules") { + $("
      " + col2 + "
      ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
      ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
      ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search.html b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search.html new file mode 100644 index 00000000..ff24327c --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search.html @@ -0,0 +1,76 @@ + + + + +Suchen (Hibernate Maven Plugin 2.1.2-SNAPSHOT Test API) + + + + + + + + + + + + + + +
      + +
      +
      +

      Suchen

      +
      + + +
      +Zusätzliche Ressourcen +
      +
      +
      +

      Die Hilfeseite enthält eine Einführung in den Umfang und die Syntax der JavaDoc-Suche.

      +

      Sie können die <STRG>- oder <CMD>-Taste zusammen mit den Pfeiltasten nach links und rechts verwenden, um zwischen Ergebnisregisterkarten auf dieser Seite zu wechseln.

      +

      Mit der URL-Vorlage unten können Sie diese Seite als Suchmaschine in Browsern konfigurieren, die dieses Feature unterstützen. Das Feature wurde erfolgreich mit Google Chrome und Mozilla Firefox getestet. Beachten Sie, dass andere Browser dieses Feature möglicherweise nicht unterstützen oder ein anderes URL-Format erfordern.

      +link +

      + +

      +
      +

      Suchindex wird geladen...

      + +
      +
      +
      + +
      +
      +
      + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search.js new file mode 100644 index 00000000..613e348e --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +"use strict"; +const messages = { + enterTerm: "Geben Sie einen Suchbegriff ein", + noResult: "Keine Ergebnisse gefunden", + oneResult: "Ein Ergebnis gefunden", + manyResults: "{0} Ergebnisse gefunden", + loading: "Suchindex wird geladen...", + searching: "Suche wird ausgeführt...", + redirecting: "Zum ersten Ergebnis wird umgeleitet...", + linkIcon: "Linksymbol", + linkToSection: "Link zu diesem Abschnitt" +} +const categories = { + modules: "Module", + packages: "Packages", + types: "Klassen und Schnittstellen", + members: "Mitglieder", + searchTags: "Tags suchen" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
    • " + categories[item.category] + "
    • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append(""); + }, + _renderItem: function(ul, item) { + var li = $("
    • ").appendTo(ul); + var div = $("
      ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
      " + + idx.d + "
      "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { + // Create anchor links for headers with an associated id attribute + var hdr = $(el); + var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); + if (id) { + hdr.append(" " + messages.linkIcon +""); + } + }); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/stylesheet.css b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/stylesheet.css new file mode 100644 index 00000000..f71489f8 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/tag-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/tag-search-index.js new file mode 100644 index 00000000..0367dae6 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/type-search-index.js b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/type-search-index.js new file mode 100644 index 00000000..c0f0666c --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/testapidocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"l":"Alle Klassen und Schnittstellen","u":"allclasses-index.html"},{"p":"de.juplo.test","l":"FileComparator"}];updateSearchResults(); \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/allclasses-frame.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/allclasses-frame.html new file mode 100644 index 00000000..8253aebb --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/allclasses-frame.html @@ -0,0 +1,20 @@ + + + + + + All Classes + + + + +

      All Classes

      + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/FileComparator.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/FileComparator.html new file mode 100644 index 00000000..ca3e51d2 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/FileComparator.html @@ -0,0 +1,80 @@ + + + +FileComparator xref + + + +
      +1   package de.juplo.test;
      +2   
      +3   import java.io.BufferedReader;
      +4   import java.io.File;
      +5   import java.io.FileNotFoundException;
      +6   import java.io.FileReader;
      +7   import java.io.IOException;
      +8   import java.util.regex.Pattern;
      +9   
      +10  
      +11  public class FileComparator
      +12  {
      +13    private final File basedir;
      +14    private BufferedReader expectedReader;
      +15    private BufferedReader foundReader;
      +16  
      +17    public FileComparator(File basedir)
      +18    {
      +19      this.basedir = basedir;
      +20    }
      +21  
      +22    public boolean isEqual(final String expectedFile, final String foundFile)
      +23      throws
      +24        FileNotFoundException,
      +25        IOException
      +26    {
      +27      File file;
      +28      String expected, found;
      +29  
      +30      file = new File(basedir, expectedFile);
      +31      expectedReader = new BufferedReader(new FileReader(file));
      +32  
      +33      file = new File(basedir, foundFile);
      +34      foundReader = new BufferedReader(new FileReader(file));
      +35  
      +36  
      +37      while ((expected = expectedReader.readLine()) != null)
      +38      {
      +39        found = foundReader.readLine();
      +40        if (found == null)
      +41        {
      +42          System.err.println("Found less content than expected!");
      +43          System.err.println("First missing line: " + expected);
      +44          return false;
      +45        }
      +46  
      +47        expected = expected.trim();
      +48        found = found.trim();
      +49        if (!expected.equals(found))
      +50        {
      +51          System.err.println("Mismatch!");
      +52          System.err.println("Expected: " + expected);
      +53          System.err.println("Found:    " + found);
      +54          return false;
      +55        }
      +56      }
      +57  
      +58      if ((found = foundReader.readLine()) != null)
      +59      {
      +60        System.err.println("Found more content than expected!");
      +61        System.err.println("Starting with: " + found);
      +62        return false;
      +63      }
      +64  
      +65      return true;
      +66    }
      +67  }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/package-frame.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/package-frame.html new file mode 100644 index 00000000..940708d2 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/package-frame.html @@ -0,0 +1,24 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference Package de.juplo.test + + + + +

      + de.juplo.test +

      + +

      Classes

      + + + + + \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/package-summary.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/package-summary.html new file mode 100644 index 00000000..402de2a8 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/de/juplo/test/package-summary.html @@ -0,0 +1,69 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference Package de.juplo.test + + + +
      + +
      +
      + +
      + +

      Package de.juplo.test

      + + + + + + + + + + + + +
      Class Summary
      + FileComparator +
      + +
      + +
      +
      + +
      +
      + + + \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/index.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/index.html new file mode 100644 index 00000000..51b3be5a --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/index.html @@ -0,0 +1,25 @@ + + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference + + + + + + + + + <body> + <h1>Frame Alert</h1> + <p> + You don't have frames. Go <a href="overview-summary.html">here</a> + </p> + </body> + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/overview-frame.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/overview-frame.html new file mode 100644 index 00000000..f14f2339 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/overview-frame.html @@ -0,0 +1,25 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference + + + + +

      + All Classes +

      + +

      Packages

      + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/overview-summary.html b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/overview-summary.html new file mode 100644 index 00000000..eb044bb0 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/overview-summary.html @@ -0,0 +1,66 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference + + + +
      +
        +
      • Overview
      • +
      • Package
      • +
      +
      +
      + +
      + +

      Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference

      + + + + + + + + + + + + +
      Packages
      + de.juplo.test +
      + +
      +
        +
      • Overview
      • +
      • Package
      • +
      +
      +
      + +
      + +
      + + + \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref-test/stylesheet.css b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/stylesheet.css new file mode 100644 index 00000000..89732f81 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref-test/stylesheet.css @@ -0,0 +1,114 @@ +/* Javadoc style sheet */ +/* Define colors, fonts and other style attributes here to override the defaults */ +body { + background-color: #fff; + font-family: Arial, Helvetica, sans-serif; +} + +a:link { + color: #00f; +} +a:visited { + color: #00a; +} + +a:active, a:hover { + color: #f30 !important; +} + +ul, li { + list-style-type:none; + margin:0; + padding:0; +} + +table td { + padding: 3px; + border: 1px solid #000; +} +table { + width:100%; + border: 1px solid #000; + border-collapse: collapse; +} + +div.overview { + background-color:#ddd; + padding: 4px 4px 4px 0; +} +div.overview li, div.framenoframe li { + display: inline; +} +div.framenoframe { + text-align: center; + font-size: x-small; +} +div.framenoframe li { + margin: 0 3px 0 3px; +} +div.overview li { + margin:3px 3px 0 3px; + padding: 4px; +} +li.selected { + background-color:#888; + color: #fff; + font-weight: bold; +} + +table.summary { + margin-bottom: 20px; +} +table.summary td, table.summary th { + font-weight: bold; + text-align: left; + padding: 3px; +} +table.summary th { + background-color:#036; + color: #fff; +} +table.summary td { + background-color:#eee; + border: 1px solid black; +} + +em { + color: #A00; +} +em.comment { + color: #390; +} +.string { + color: #009; +} + +#overview { + padding:2px; +} + +hr { + height: 1px; + color: #000; +} + +/* JXR style sheet */ +.jxr_comment +{ + color: #390; +} + +.jxr_javadoccomment +{ + color: #A00; +} + +.jxr_string +{ + color: #009; +} + +.jxr_keyword +{ + color: #000; +} diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/allclasses-frame.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/allclasses-frame.html new file mode 100644 index 00000000..e6fb5b88 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/allclasses-frame.html @@ -0,0 +1,44 @@ + + + + + + All Classes + + + + +

      All Classes

      + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/AbstractSchemaMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/AbstractSchemaMojo.html new file mode 100644 index 00000000..a4e9bb08 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/AbstractSchemaMojo.html @@ -0,0 +1,1482 @@ + + + +AbstractSchemaMojo xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   
      +4   import com.pyx4j.log4j.MavenLogAppender;
      +5   import java.io.File;
      +6   import java.io.FileInputStream;
      +7   import java.io.FileOutputStream;
      +8   import java.io.IOException;
      +9   import java.io.InputStream;
      +10  import java.net.MalformedURLException;
      +11  import java.net.URL;
      +12  import java.security.NoSuchAlgorithmException;
      +13  import java.time.ZonedDateTime;
      +14  import java.util.Collections;
      +15  import java.util.EnumSet;
      +16  import java.util.HashMap;
      +17  import java.util.HashSet;
      +18  import java.util.Iterator;
      +19  import java.util.LinkedHashSet;
      +20  import java.util.List;
      +21  import java.util.Map;
      +22  import java.util.Map.Entry;
      +23  import java.util.Properties;
      +24  import java.util.Set;
      +25  import java.util.regex.Matcher;
      +26  import java.util.regex.Pattern;
      +27  import javax.persistence.Embeddable;
      +28  import javax.persistence.Entity;
      +29  import javax.persistence.MappedSuperclass;
      +30  import org.apache.maven.artifact.Artifact;
      +31  import org.apache.maven.model.Resource;
      +32  import org.apache.maven.plugin.AbstractMojo;
      +33  import org.apache.maven.plugin.MojoExecutionException;
      +34  import org.apache.maven.plugin.MojoFailureException;
      +35  import org.apache.maven.project.MavenProject;
      +36  import org.hibernate.boot.MetadataBuilder;
      +37  import org.hibernate.boot.MetadataSources;
      +38  import org.hibernate.boot.cfgxml.internal.ConfigLoader;
      +39  import org.hibernate.boot.cfgxml.spi.LoadedConfig;
      +40  import org.hibernate.boot.cfgxml.spi.MappingReference;
      +41  import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
      +42  import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
      +43  import org.hibernate.boot.registry.BootstrapServiceRegistry;
      +44  import org.hibernate.boot.registry.BootstrapServiceRegistryBuilder;
      +45  import org.hibernate.boot.registry.StandardServiceRegistry;
      +46  import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
      +47  import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
      +48  import org.hibernate.boot.registry.classloading.spi.ClassLoadingException;
      +49  import org.hibernate.boot.registry.selector.spi.StrategySelector;
      +50  import org.hibernate.boot.spi.MetadataImplementor;
      +51  import org.hibernate.cfg.AvailableSettings;
      +52  import static org.hibernate.cfg.AvailableSettings.DIALECT;
      +53  import static org.hibernate.cfg.AvailableSettings.DRIVER;
      +54  import static org.hibernate.cfg.AvailableSettings.FORMAT_SQL;
      +55  import static org.hibernate.cfg.AvailableSettings.HBM2DDL_DELIMITER;
      +56  import static org.hibernate.cfg.AvailableSettings.HBM2DLL_CREATE_NAMESPACES;
      +57  import static org.hibernate.cfg.AvailableSettings.IMPLICIT_NAMING_STRATEGY;
      +58  import static org.hibernate.cfg.AvailableSettings.JPA_JDBC_DRIVER;
      +59  import static org.hibernate.cfg.AvailableSettings.JPA_JDBC_PASSWORD;
      +60  import static org.hibernate.cfg.AvailableSettings.JPA_JDBC_URL;
      +61  import static org.hibernate.cfg.AvailableSettings.JPA_JDBC_USER;
      +62  import static org.hibernate.cfg.AvailableSettings.PASS;
      +63  import static org.hibernate.cfg.AvailableSettings.PHYSICAL_NAMING_STRATEGY;
      +64  import static org.hibernate.cfg.AvailableSettings.SHOW_SQL;
      +65  import static org.hibernate.cfg.AvailableSettings.USER;
      +66  import static org.hibernate.cfg.AvailableSettings.URL;
      +67  import org.hibernate.engine.config.spi.ConfigurationService;
      +68  import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
      +69  import org.hibernate.internal.util.config.ConfigurationException;
      +70  import org.hibernate.jpa.boot.internal.ParsedPersistenceXmlDescriptor;
      +71  import org.hibernate.jpa.boot.internal.PersistenceXmlParser;
      +72  import org.hibernate.tool.schema.TargetType;
      +73  import org.hibernate.tool.schema.internal.ExceptionHandlerCollectingImpl;
      +74  import org.hibernate.tool.schema.internal.exec.ScriptTargetOutputToFile;
      +75  import org.hibernate.tool.schema.spi.ExecutionOptions;
      +76  import org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator;
      +77  import org.hibernate.tool.schema.spi.ScriptTargetOutput;
      +78  import org.hibernate.tool.schema.spi.TargetDescriptor;
      +79  import org.scannotation.AnnotationDB;
      +80  
      +81  
      +82  /**
      +83   * Baseclass with common attributes and methods.
      +84   *
      +85   * @phase process-classes
      +86   * @threadSafe
      +87   * @requiresDependencyResolution runtime
      +88   */
      +89  public abstract class AbstractSchemaMojo extends AbstractMojo
      +90  {
      +91    public final static String EXECUTE = "hibernate.schema.execute";
      +92    public final static String OUTPUTDIRECTORY = "project.build.outputDirectory";
      +93    public final static String SCAN_CLASSES = "hibernate.schema.scan.classes";
      +94    public final static String SCAN_DEPENDENCIES = "hibernate.schema.scan.dependencies";
      +95    public final static String SCAN_TESTCLASSES = "hibernate.schema.scan.test_classes";
      +96    public final static String TEST_OUTPUTDIRECTORY = "project.build.testOutputDirectory";
      +97    public final static String SKIPPED = "hibernate.schema.skipped";
      +98    public final static String SCRIPT = "hibernate.schema.script";
      +99  
      +100   private final static Pattern SPLIT = Pattern.compile("[^,\\s]+");
      +101 
      +102   private final Set<String> packages = new HashSet<String>();
      +103 
      +104 
      +105   /**
      +106    * The maven project.
      +107    * <p>
      +108    * Only needed internally.
      +109    *
      +110    * @parameter property="project"
      +111    * @required
      +112    * @readonly
      +113    */
      +114   private MavenProject project;
      +115 
      +116   /**
      +117    * Build-directory.
      +118    * <p>
      +119    * Only needed internally.
      +120    *
      +121    * @parameter property="project.build.directory"
      +122    * @required
      +123    * @readonly
      +124    */
      +125   private String buildDirectory;
      +126 
      +127 
      +128   /** Parameters to configure the genaration of the SQL *********************/
      +129 
      +130   /**
      +131    * Excecute the generated SQL.
      +132    * If set to <code>false</code>, only the SQL-script is created and the
      +133    * database is not touched.
      +134    * <p>
      +135    * <strong>Important:</strong>
      +136    * This configuration value can only be configured through the
      +137    * <code>pom.xml</code>, or by the definition of a system-property, because
      +138    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +139    * their configuration!
      +140    *
      +141    * @parameter property="hibernate.schema.execute" default-value="true"
      +142    * @since 2.0
      +143    */
      +144   private Boolean execute;
      +145 
      +146   /**
      +147    * Skip execution
      +148    * <p>
      +149    * If set to <code>true</code>, the execution is skipped.
      +150    * <p>
      +151    * A skipped execution is signaled via the maven-property
      +152    * <code>${hibernate.schema.skipped}</code>.
      +153    * <p>
      +154    * The execution is skipped automatically, if no modified or newly added
      +155    * annotated classes are found and the dialect was not changed.
      +156    * <p>
      +157    * <strong>Important:</strong>
      +158    * This configuration value can only be configured through the
      +159    * <code>pom.xml</code>, or by the definition of a system-property, because
      +160    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +161    * their configuration!
      +162    *
      +163    * @parameter property="hibernate.schema.skip" default-value="${maven.test.skip}"
      +164    * @since 1.0
      +165    */
      +166   private boolean skip;
      +167 
      +168   /**
      +169    * Force generation/execution
      +170    * <p>
      +171    * Force the generation and (if configured) the execution of the SQL, even if
      +172    * no modified or newly added annotated classes where found and the
      +173    * configuration was not changed.
      +174    * <p>
      +175    * <code>skip</code> takes precedence over <code>force</code>.
      +176    * <p>
      +177    * <strong>Important:</strong>
      +178    * This configuration value can only be configured through the
      +179    * <code>pom.xml</code>, or by the definition of a system-property, because
      +180    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +181    * their configuration!
      +182    *
      +183    * @parameter property="hibernate.schema.force" default-value="false"
      +184    * @since 1.0
      +185    */
      +186   private boolean force;
      +187 
      +188   /**
      +189    * Hibernate dialect.
      +190    *
      +191    * @parameter property="hibernate.dialect"
      +192    * @since 1.0
      +193    */
      +194   private String dialect;
      +195 
      +196   /**
      +197    * Delimiter in output-file.
      +198    * <p>
      +199    * <strong>Important:</strong>
      +200    * This configuration value can only be configured through the
      +201    * <code>pom.xml</code>, or by the definition of a system-property, because
      +202    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +203    * their configuration!
      +204    *
      +205    * @parameter property="hibernate.hbm2ddl.delimiter" default-value=";"
      +206    * @since 1.0
      +207    */
      +208   private String delimiter;
      +209 
      +210   /**
      +211    * Show the generated SQL in the command-line output.
      +212    *
      +213    * @parameter property="hibernate.show_sql"
      +214    * @since 1.0
      +215    */
      +216   private Boolean show;
      +217 
      +218   /**
      +219    * Format output-file.
      +220    *
      +221    * @parameter property="hibernate.format_sql"
      +222    * @since 1.0
      +223    */
      +224   private Boolean format;
      +225 
      +226   /**
      +227    * Specifies whether to automatically create also the database schema/catalog.
      +228    *
      +229    * @parameter property="hibernate.hbm2dll.create_namespaces" default-value="false"
      +230    * @since 2.0
      +231    */
      +232   private Boolean createNamespaces;
      +233 
      +234   /**
      +235    * Implicit naming strategy
      +236    *
      +237    * @parameter property="hibernate.implicit_naming_strategy"
      +238    * @since 2.0
      +239    */
      +240   private String implicitNamingStrategy;
      +241 
      +242   /**
      +243    * Physical naming strategy
      +244    *
      +245    * @parameter property="hibernate.physical_naming_strategy"
      +246    * @since 2.0
      +247    */
      +248   private String physicalNamingStrategy;
      +249 
      +250   /**
      +251    * Wether the project should be scanned for annotated-classes, or not
      +252    * <p>
      +253    * This parameter is intended to allow overwriting of the parameter
      +254    * <code>exclude-unlisted-classes</code> of a <code>persistence-unit</code>.
      +255    * If not specified, it defaults to <code>true</code>
      +256    *
      +257    * @parameter property="hibernate.schema.scan.classes"
      +258    * @since 2.0
      +259    */
      +260   private Boolean scanClasses;
      +261 
      +262   /**
      +263    * Classes-Directory to scan.
      +264    * <p>
      +265    * This parameter defaults to the maven build-output-directory for classes.
      +266    * Additionally, all dependencies are scanned for annotated classes.
      +267    * <p>
      +268    * <strong>Important:</strong>
      +269    * This configuration value can only be configured through the
      +270    * <code>pom.xml</code>, or by the definition of a system-property, because
      +271    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +272    * their configuration!
      +273    *
      +274    * @parameter property="project.build.outputDirectory"
      +275    * @since 1.0
      +276    */
      +277   private String outputDirectory;
      +278 
      +279   /**
      +280    * Dependency-Scopes, that should be scanned for annotated classes.
      +281    * <p>
      +282    * By default, only dependencies in the scope <code>compile</code> are
      +283    * scanned for annotated classes. Multiple scopes can be seperated by
      +284    * white space or commas.
      +285    * <p>
      +286    * If you do not want any dependencies to be scanned for annotated
      +287    * classes, set this parameter to <code>none</code>.
      +288    * <p>
      +289    * The plugin does not scan for annotated classes in transitive
      +290    * dependencies. If some of your annotated classes are hidden in a
      +291    * transitive dependency, you can simply add that dependency explicitly.
      +292    *
      +293    * @parameter property="hibernate.schema.scan.dependencies" default-value="compile"
      +294    * @since 1.0.3
      +295    */
      +296   private String scanDependencies;
      +297 
      +298   /**
      +299    * Whether to scan the test-branch of the project for annotated classes, or
      +300    * not.
      +301    * <p>
      +302    * If this parameter is set to <code>true</code> the test-classes of the
      +303    * artifact will be scanned for hibernate-annotated classes additionally.
      +304    * <p>
      +305    * <strong>Important:</strong>
      +306    * This configuration value can only be configured through the
      +307    * <code>pom.xml</code>, or by the definition of a system-property, because
      +308    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +309    * their configuration!
      +310    *
      +311    * @parameter property="hibernate.schema.scan.test_classes" default-value="false"
      +312    * @since 1.0.1
      +313    */
      +314   private Boolean scanTestClasses;
      +315 
      +316   /**
      +317    * Test-Classes-Directory to scan.
      +318    * <p>
      +319    * This parameter defaults to the maven build-output-directory for
      +320    * test-classes.
      +321    * <p>
      +322    * This parameter is only used, when <code>scanTestClasses</code> is set
      +323    * to <code>true</code>!
      +324    * <p>
      +325    * <strong>Important:</strong>
      +326    * This configuration value can only be configured through the
      +327    * <code>pom.xml</code>, or by the definition of a system-property, because
      +328    * it is not known by Hibernate nor JPA and, hence, not picked up from
      +329    * their configuration!
      +330    *
      +331    * @parameter property="project.build.testOutputDirectory"
      +332    * @since 1.0.2
      +333    */
      +334   private String testOutputDirectory;
      +335 
      +336 
      +337   /** Conection parameters *************************************************/
      +338 
      +339   /**
      +340    * SQL-Driver name.
      +341    *
      +342    * @parameter property="hibernate.connection.driver_class"
      +343    * @since 1.0
      +344    */
      +345   private String driver;
      +346 
      +347   /**
      +348    * Database URL.
      +349    *
      +350    * @parameter property="hibernate.connection.url"
      +351    * @since 1.0
      +352    */
      +353   private String url;
      +354 
      +355   /**
      +356    * Database username
      +357    *
      +358    * @parameter property="hibernate.connection.username"
      +359    * @since 1.0
      +360    */
      +361   private String username;
      +362 
      +363   /**
      +364    * Database password
      +365    *
      +366    * @parameter property="hibernate.connection.password"
      +367    * @since 1.0
      +368    */
      +369   private String password;
      +370 
      +371 
      +372   /** Parameters to locate configuration sources ****************************/
      +373 
      +374   /**
      +375    * Path to a file or name of a ressource with hibernate properties.
      +376    * If this parameter is specified, the plugin will try to load configuration
      +377    * values from a file with the given path or a ressource on the classpath with
      +378    * the given name. If both fails, the execution of the plugin will fail.
      +379    * <p>
      +380    * If this parameter is not set the plugin will load configuration values
      +381    * from a ressource named <code>hibernate.properties</code> on the classpath,
      +382    * if it is present, but will not fail if there is no such ressource.
      +383    * <p>
      +384    * During ressource-lookup, the test-classpath takes precedence.
      +385    *
      +386    * @parameter
      +387    * @since 1.0
      +388    */
      +389   private String hibernateProperties;
      +390 
      +391   /**
      +392    * Path to Hibernate configuration file (.cfg.xml).
      +393    * If this parameter is specified, the plugin will try to load configuration
      +394    * values from a file with the given path or a ressource on the classpath with
      +395    * the given name. If both fails, the execution of the plugin will fail.
      +396    * <p>
      +397    * If this parameter is not set the plugin will load configuration values
      +398    * from a ressource named <code>hibernate.cfg.xml</code> on the classpath,
      +399    * if it is present, but will not fail if there is no such ressource.
      +400    * <p>
      +401    * During ressource-lookup, the test-classpath takes precedence.
      +402    * <p>
      +403    * Settings in this file will overwrite settings in the properties file.
      +404    *
      +405    * @parameter
      +406    * @since 1.1.0
      +407    */
      +408   private String hibernateConfig;
      +409 
      +410   /**
      +411    * Name of the persistence-unit.
      +412    * If this parameter is specified, the plugin will try to load configuration
      +413    * values from a persistence-unit with the specified name. If no such
      +414    * persistence-unit can be found, the plugin will throw an exception.
      +415    * <p>
      +416    * If this parameter is not set and there is only one persistence-unit
      +417    * available, that unit will be used automatically. But if this parameter is
      +418    * not set and there are multiple persistence-units available on,
      +419    * the class-path, the execution of the plugin will fail.
      +420    * <p>
      +421    * Settings in this file will overwrite settings in the properties or the
      +422    * configuration file.
      +423    *
      +424    * @parameter
      +425    * @since 1.1.0
      +426    */
      +427   private String persistenceUnit;
      +428 
      +429   /**
      +430    * List of Hibernate-Mapping-Files (XML).
      +431    * Multiple files can be separated with white-spaces and/or commas.
      +432    *
      +433    * @parameter property="hibernate.mapping"
      +434    * @since 1.0.2
      +435    */
      +436   private String mappings;
      +437 
      +438 
      +439 
      +440   public final void execute(String filename)
      +441     throws
      +442       MojoFailureException,
      +443       MojoExecutionException
      +444   {
      +445     if (skip)
      +446     {
      +447       getLog().info("Execution of hibernate-maven-plugin was skipped!");
      +448       project.getProperties().setProperty(SKIPPED, "true");
      +449       return;
      +450     }
      +451 
      +452     ModificationTracker tracker;
      +453     try
      +454     {
      +455       tracker = new ModificationTracker(buildDirectory, filename, getLog());
      +456     }
      +457     catch (NoSuchAlgorithmException e)
      +458     {
      +459       throw new MojoFailureException("Digest-Algorithm MD5 is missing!", e);
      +460     }
      +461 
      +462     final SimpleConnectionProvider connectionProvider =
      +463         new SimpleConnectionProvider(getLog());
      +464 
      +465     try
      +466     {
      +467       /** Start extended logging */
      +468       MavenLogAppender.startPluginLog(this);
      +469 
      +470       /** Load checksums for old mapping and configuration */
      +471       tracker.load();
      +472 
      +473       /** Create the ClassLoader */
      +474       MutableClassLoader classLoader = createClassLoader();
      +475 
      +476       /** Create a BootstrapServiceRegistry with the created ClassLoader */
      +477       BootstrapServiceRegistry bootstrapServiceRegitry =
      +478           new BootstrapServiceRegistryBuilder()
      +479               .applyClassLoader(classLoader)
      +480               .build();
      +481       ClassLoaderService classLoaderService =
      +482           bootstrapServiceRegitry.getService(ClassLoaderService.class);
      +483 
      +484       Properties properties = new Properties();
      +485       ConfigLoader configLoader = new ConfigLoader(bootstrapServiceRegitry);
      +486 
      +487       /** Loading configuration */
      +488       properties.putAll(loadProperties(configLoader));
      +489       LoadedConfig config = loadConfig(configLoader);
      +490       if (config != null)
      +491         properties.putAll(config.getConfigurationValues());
      +492 
      +493       /** Add the remaining class-path-elements */
      +494       addDirectDependenciesClassPath(classLoader);
      +495 
      +496       /** Loading and merging configuration from persistence-unit(s) */
      +497       ParsedPersistenceXmlDescriptor unit =
      +498           loadPersistenceUnit(classLoader, properties);
      +499       if (unit != null)
      +500         properties.putAll(unit.getProperties());
      +501 
      +502       /** Overwriting/Completing configuration */
      +503       configure(properties, tracker);
      +504 
      +505       /** Check configuration for modifications */
      +506       if(tracker.track(properties))
      +507         getLog().debug("Configuration has changed.");
      +508       else
      +509         getLog().debug("Configuration unchanged.");
      +510 
      +511       /** Check, that the outputfile is writable */
      +512       final File output = getOutputFile(filename);
      +513       /** Check, if the outputfile is missing or was changed */
      +514       checkOutputFile(output, tracker);
      +515 
      +516       /** Configure Hibernate */
      +517       final StandardServiceRegistry serviceRegistry =
      +518           new StandardServiceRegistryBuilder(bootstrapServiceRegitry)
      +519               .applySettings(properties)
      +520               .addService(ConnectionProvider.class, connectionProvider)
      +521               .build();
      +522       final MetadataSources sources = new MetadataSources(serviceRegistry);
      +523 
      +524       /** Add the remaining class-path-elements */
      +525       addAllDependenciesToClassPath(classLoader);
      +526 
      +527       /** Apply mappings from hibernate-configuration, if present */
      +528       if (config != null)
      +529       {
      +530         for (MappingReference mapping : config.getMappingReferences())
      +531           mapping.apply(sources);
      +532       }
      +533 
      +534       Set<String> classes;
      +535       if (unit == null)
      +536       {
      +537         /** No persistent unit: default behaviour */
      +538         if (scanClasses == null)
      +539           scanClasses = true;
      +540         Set<URL> urls = new HashSet<URL>();
      +541         getLog().debug("Compiling the dependencies, that are scanned for annotated classes");
      +542         if (scanClasses)
      +543           addRoot(urls, outputDirectory);
      +544         if (scanTestClasses)
      +545           addRoot(urls, testOutputDirectory);
      +546         addDependencies(urls);
      +547         classes = scanUrls(urls);
      +548       }
      +549       else
      +550       {
      +551         /** Follow configuration in persisten unit */
      +552         if (scanClasses == null)
      +553           scanClasses = !unit.isExcludeUnlistedClasses();
      +554         getLog().debug("Compiling the dependencies, that are scanned for annotated classes");
      +555 
      +556         Set<URL> urls = new HashSet<URL>();
      +557         if (scanClasses)
      +558         {
      +559           getLog().debug("Only dependencies relative to persistent-unit " + unit.getName() + " are scanned!");
      +560           /**
      +561            * Scan the root of the persiten unit and configured jars for
      +562            * annotated classes
      +563            */
      +564           getLog().debug(" - adding " + unit.getPersistenceUnitRootUrl());
      +565           urls.add(unit.getPersistenceUnitRootUrl());
      +566           for (URL url : unit.getJarFileUrls())
      +567           {
      +568             getLog().debug(" - adding " + url);
      +569             urls.add(url);
      +570           }
      +571           if (scanTestClasses)
      +572             addRoot(urls, testOutputDirectory);
      +573         }
      +574         else
      +575           getLog().debug("Scanning of unlisted classes is prohibited in persistent-unit " + unit.getName());
      +576         classes = scanUrls(urls);
      +577         for (String className : unit.getManagedClassNames())
      +578           classes.add(className);
      +579         /**
      +580          * Add mappings from the default mapping-file
      +581          * <code>META-INF/orm.xml</code>, if present
      +582          */
      +583         boolean error = false;
      +584         InputStream is;
      +585         is = classLoader.getResourceAsStream("META-INF/orm.xml");
      +586         if (is != null)
      +587         {
      +588           getLog().info("Adding default JPA-XML-mapping from META-INF/orm.xml");
      +589           try
      +590           {
      +591             tracker.track("META-INF/orm.xml", is);
      +592             sources.addResource("META-INF/orm.xml");
      +593           }
      +594           catch (IOException e)
      +595           {
      +596             getLog().error("cannot read META-INF/orm.xml: " + e);
      +597             error = true;
      +598           }
      +599         }
      +600         else
      +601         {
      +602           getLog().debug("no META-INF/orm.xml found");
      +603         }
      +604         /**
      +605          * Add mappings from files, that are explicitly configured in the
      +606          * persistence unit
      +607          */
      +608         getLog().info("Adding mappings from persistence-unit " + unit.getName());
      +609         for (String mapping : unit.getMappingFileNames())
      +610         {
      +611           getLog().info(" - adding " + mapping);
      +612           is = classLoader.getResourceAsStream(mapping);
      +613           if (is != null)
      +614           {
      +615             try
      +616             {
      +617               tracker.track(mapping, is);
      +618               sources.addResource(mapping);
      +619             }
      +620             catch (IOException e)
      +621             {
      +622               getLog().info("cannot read mapping-file " + mapping + ": " + e);
      +623               error = true;
      +624             }
      +625           }
      +626           else
      +627           {
      +628             getLog().error("cannot find mapping-file " + mapping);
      +629             error = true;
      +630           }
      +631         }
      +632         if (error)
      +633           throw new MojoFailureException(
      +634               "error, while reading mappings configured in persistence-unit \"" +
      +635               unit.getName() +
      +636               "\""
      +637               );
      +638       }
      +639 
      +640       /** Add the configured/collected annotated classes */
      +641       for (String className : classes)
      +642         addAnnotated(className, sources, classLoaderService, tracker);
      +643 
      +644       /** Add explicitly configured classes */
      +645       addMappings(sources, tracker);
      +646 
      +647       /** Skip execution, if mapping and configuration is unchanged */
      +648       if (!tracker.modified())
      +649       {
      +650         getLog().info("Mapping and configuration unchanged.");
      +651         if (force)
      +652           getLog().info("Generation/execution is forced!");
      +653         else
      +654         {
      +655           getLog().info("Skipping schema generation!");
      +656           project.getProperties().setProperty(SKIPPED, "true");
      +657           return;
      +658         }
      +659       }
      +660 
      +661 
      +662       /** Truncate output file */
      +663       try
      +664       {
      +665         new FileOutputStream(output).getChannel().truncate(0).close();
      +666       }
      +667       catch (IOException e)
      +668       {
      +669         String error =
      +670             "Error while truncating " + output.getAbsolutePath() + ": "
      +671             + e.getMessage();
      +672         getLog().warn(error);
      +673         throw new MojoExecutionException(error);
      +674       }
      +675 
      +676       /** Create a connection, if sufficient configuration infromation is available */
      +677       connectionProvider.open(classLoaderService, properties);
      +678 
      +679       MetadataBuilder metadataBuilder = sources.getMetadataBuilder();
      +680 
      +681       StrategySelector strategySelector =
      +682           serviceRegistry.getService(StrategySelector.class);
      +683 
      +684       if (properties.containsKey(IMPLICIT_NAMING_STRATEGY))
      +685       {
      +686         metadataBuilder.applyImplicitNamingStrategy(
      +687             strategySelector.resolveStrategy(
      +688                 ImplicitNamingStrategy.class,
      +689                 properties.getProperty(IMPLICIT_NAMING_STRATEGY)
      +690                 )
      +691             );
      +692       }
      +693 
      +694       if (properties.containsKey(PHYSICAL_NAMING_STRATEGY))
      +695       {
      +696         metadataBuilder.applyPhysicalNamingStrategy(
      +697             strategySelector.resolveStrategy(
      +698                 PhysicalNamingStrategy.class,
      +699                 properties.getProperty(PHYSICAL_NAMING_STRATEGY)
      +700                 )
      +701             );
      +702       }
      +703 
      +704       /** Prepare the generation of the SQL */
      +705       Map settings = new HashMap();
      +706       settings.putAll(
      +707           serviceRegistry
      +708               .getService(ConfigurationService.class)
      +709               .getSettings()
      +710               );
      +711       ExceptionHandlerCollectingImpl handler =
      +712           new ExceptionHandlerCollectingImpl();
      +713       ExecutionOptions options =
      +714           SchemaManagementToolCoordinator
      +715               .buildExecutionOptions(settings, handler);
      +716       final EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.SCRIPT);
      +717       if (execute)
      +718         targetTypes.add(TargetType.DATABASE);
      +719       TargetDescriptor target = new TargetDescriptor()
      +720       {
      +721         @Override
      +722         public EnumSet<TargetType> getTargetTypes()
      +723         {
      +724           return targetTypes;
      +725         }
      +726 
      +727         @Override
      +728         public ScriptTargetOutput getScriptTargetOutput()
      +729         {
      +730           String charset =
      +731               (String)
      +732               serviceRegistry
      +733                   .getService(ConfigurationService.class)
      +734                   .getSettings()
      +735                   .get(AvailableSettings.HBM2DDL_CHARSET_NAME);
      +736           return new ScriptTargetOutputToFile(output, charset);
      +737         }
      +738       };
      +739 
      +740       /**
      +741        * Change class-loader of current thread.
      +742        * This is necessary, because still not all parts of Hibernate 5 use
      +743        * the newly introduced ClassLoaderService and will fail otherwise!
      +744        */
      +745       Thread thread = Thread.currentThread();
      +746       ClassLoader contextClassLoader = thread.getContextClassLoader();
      +747       try
      +748       {
      +749         thread.setContextClassLoader(classLoader);
      +750         build((MetadataImplementor)metadataBuilder.build(), options, target);
      +751         if (handler.getExceptions().size() > 0)
      +752         {
      +753           StringBuilder builder = new StringBuilder();
      +754           builder.append("Hibernate failed:");
      +755           for (Exception e : handler.getExceptions())
      +756           {
      +757             builder.append("\n * ");
      +758             builder.append(e.getMessage());
      +759             AbstractSchemaMojo.printStrackTrace(builder, e);
      +760             builder.append("\n");
      +761           }
      +762           String error = builder.toString();
      +763           getLog().error(error);
      +764           throw new MojoFailureException(error);
      +765         }
      +766       }
      +767       finally
      +768       {
      +769         thread.setContextClassLoader(contextClassLoader);
      +770         /** Track, the content of the generated script */
      +771         checkOutputFile(output, tracker);
      +772       }
      +773     }
      +774     catch (MojoExecutionException e)
      +775     {
      +776       tracker.failed();
      +777       throw e;
      +778     }
      +779     catch (MojoFailureException e)
      +780     {
      +781       tracker.failed();
      +782       throw e;
      +783     }
      +784     catch (RuntimeException e)
      +785     {
      +786       tracker.failed();
      +787       throw e;
      +788     }
      +789     finally
      +790     {
      +791       /** Remember mappings and configuration */
      +792       tracker.save();
      +793 
      +794       /** Close the connection - if one was opened */
      +795       connectionProvider.close();
      +796 
      +797       /** Stop Log-Capturing */
      +798       MavenLogAppender.endPluginLog(this);
      +799     }
      +800   }
      +801 
      +802 
      +803   abstract void build(
      +804       MetadataImplementor metadata,
      +805       ExecutionOptions options,
      +806       TargetDescriptor target
      +807       )
      +808     throws
      +809       MojoFailureException,
      +810       MojoExecutionException;
      +811 
      +812 
      +813   private MutableClassLoader createClassLoader() throws MojoExecutionException
      +814   {
      +815     try
      +816     {
      +817       getLog().debug("Creating ClassLoader for project-dependencies...");
      +818       LinkedHashSet<URL> urls = new LinkedHashSet<URL>();
      +819       File file;
      +820 
      +821       file = new File(testOutputDirectory);
      +822       if (!file.exists())
      +823       {
      +824         getLog().info("Creating test-output-directory: " + testOutputDirectory);
      +825         file.mkdirs();
      +826       }
      +827       urls.add(file.toURI().toURL());
      +828 
      +829       file = new File(outputDirectory);
      +830       if (!file.exists())
      +831       {
      +832         getLog().info("Creating output-directory: " + outputDirectory);
      +833         file.mkdirs();
      +834       }
      +835       urls.add(file.toURI().toURL());
      +836 
      +837       return new MutableClassLoader(urls, getLog());
      +838     }
      +839     catch (Exception e)
      +840     {
      +841       getLog().error("Error while creating ClassLoader!", e);
      +842       throw new MojoExecutionException(e.getMessage());
      +843     }
      +844   }
      +845 
      +846   private void addDirectDependenciesClassPath(MutableClassLoader classLoader)
      +847       throws
      +848         MojoExecutionException
      +849   {
      +850     try
      +851     {
      +852       getLog().debug("Adding all direct project-dependencies to the ClassLoader...");
      +853       LinkedHashSet<URL> urls = new LinkedHashSet<URL>();
      +854       addDependencies(urls);
      +855       if (scanTestClasses)
      +856         addRoot(urls, testOutputDirectory);
      +857       classLoader.add(urls);
      +858     }
      +859     catch (Exception e)
      +860     {
      +861       getLog().error("Error while creating ClassLoader!", e);
      +862       throw new MojoExecutionException(e.getMessage());
      +863     }
      +864   }
      +865 
      +866   private void addAllDependenciesToClassPath(MutableClassLoader classLoader)
      +867       throws
      +868         MojoExecutionException
      +869   {
      +870     try
      +871     {
      +872       getLog().debug("Adding all project-dependencies to the ClassLoader...");
      +873       List<String> classpathFiles = project.getCompileClasspathElements();
      +874       classpathFiles.addAll(project.getTestClasspathElements());
      +875       LinkedHashSet<URL> urls = new LinkedHashSet<URL>();
      +876       for (String pathElement : classpathFiles)
      +877       {
      +878         getLog().debug(" - adding " + pathElement);
      +879         urls.add(new File(pathElement).toURI().toURL());
      +880       }
      +881       classLoader.add(urls);
      +882     }
      +883     catch (Exception e)
      +884     {
      +885       getLog().error("Error while creating ClassLoader!", e);
      +886       throw new MojoExecutionException(e.getMessage());
      +887     }
      +888   }
      +889 
      +890   private Map loadProperties(ConfigLoader configLoader)
      +891       throws
      +892         MojoExecutionException
      +893   {
      +894     /** Try to read configuration from properties-file */
      +895     if (hibernateProperties == null)
      +896     {
      +897       try
      +898       {
      +899         return configLoader.loadProperties("hibernate.properties");
      +900       }
      +901       catch (ConfigurationException e)
      +902       {
      +903         getLog().debug(e.getMessage());
      +904         return Collections.EMPTY_MAP;
      +905       }
      +906     }
      +907     else
      +908     {
      +909       try
      +910       {
      +911         File file = new File(hibernateProperties);
      +912         if (file.exists())
      +913         {
      +914           getLog().info("Reading settings from file " + hibernateProperties + "...");
      +915           return configLoader.loadProperties(file);
      +916         }
      +917         else
      +918           return configLoader.loadProperties(hibernateProperties);
      +919       }
      +920       catch (ConfigurationException e)
      +921       {
      +922         getLog().error("Error while reading properties!", e);
      +923         throw new MojoExecutionException(e.getMessage());
      +924       }
      +925     }
      +926   }
      +927 
      +928   private LoadedConfig loadConfig(ConfigLoader configLoader)
      +929       throws MojoExecutionException
      +930   {
      +931     /** Try to read configuration from configuration-file */
      +932     if (hibernateConfig == null)
      +933     {
      +934       try
      +935       {
      +936         return configLoader.loadConfigXmlResource("hibernate.cfg.xml");
      +937       }
      +938       catch (ConfigurationException e)
      +939       {
      +940         getLog().debug(e.getMessage());
      +941         return null;
      +942       }
      +943     }
      +944     else
      +945     {
      +946       try
      +947       {
      +948         File file = new File(hibernateConfig);
      +949         if (file.exists())
      +950         {
      +951           getLog().info("Reading configuration from file " + hibernateConfig + "...");
      +952           return configLoader.loadConfigXmlFile(file);
      +953         }
      +954         else
      +955         {
      +956           return configLoader.loadConfigXmlResource(hibernateConfig);
      +957         }
      +958       }
      +959       catch (ConfigurationException e)
      +960       {
      +961         getLog().error("Error while reading configuration!", e);
      +962         throw new MojoExecutionException(e.getMessage());
      +963       }
      +964     }
      +965   }
      +966 
      +967   private void configure(Properties properties, ModificationTracker tracker)
      +968       throws MojoFailureException
      +969   {
      +970     /**
      +971      * Special treatment for the configuration-value "execute": if it is
      +972      * switched to "true", the genearation fo the schema should be forced!
      +973      */
      +974     if (tracker.check(EXECUTE, execute.toString()) && execute)
      +975     {
      +976       getLog().info(
      +977           "hibernate.schema.execute was switched on: " +
      +978           "forcing generation/execution of SQL"
      +979           );
      +980       tracker.touch();
      +981     }
      +982     configure(properties, execute, EXECUTE);
      +983 
      +984     /**
      +985      * Configure the generation of the SQL.
      +986      * Overwrite values from properties-file if the configuration parameter is
      +987      * known to Hibernate.
      +988      */
      +989     configure(properties, dialect, DIALECT);
      +990     configure(properties, delimiter, HBM2DDL_DELIMITER);
      +991     configure(properties, format, FORMAT_SQL);
      +992     configure(properties, createNamespaces, HBM2DLL_CREATE_NAMESPACES);
      +993     configure(properties, implicitNamingStrategy, IMPLICIT_NAMING_STRATEGY);
      +994     configure(properties, physicalNamingStrategy, PHYSICAL_NAMING_STRATEGY);
      +995     configure(properties, outputDirectory, OUTPUTDIRECTORY);
      +996     configure(properties, scanDependencies, SCAN_DEPENDENCIES);
      +997     configure(properties, scanTestClasses, SCAN_TESTCLASSES);
      +998     configure(properties, testOutputDirectory, TEST_OUTPUTDIRECTORY);
      +999 
      +1000     /**
      +1001      * Special treatment for the configuration-value "show": a change of its
      +1002      * configured value should not lead to a regeneration of the database
      +1003      * schama!
      +1004      */
      +1005     if (show == null)
      +1006       show = Boolean.valueOf(properties.getProperty(SHOW_SQL));
      +1007     else
      +1008       properties.setProperty(SHOW_SQL, show.toString());
      +1009 
      +1010     /**
      +1011      * Configure the connection parameters.
      +1012      * Overwrite values from properties-file.
      +1013      */
      +1014     configure(properties, driver, DRIVER, JPA_JDBC_DRIVER);
      +1015     configure(properties, url, URL, JPA_JDBC_URL);
      +1016     configure(properties, username, USER, JPA_JDBC_USER);
      +1017     configure(properties, password, PASS, JPA_JDBC_PASSWORD);
      +1018 
      +1019     if (properties.isEmpty())
      +1020     {
      +1021       getLog().error("No properties set!");
      +1022       throw new MojoFailureException("Hibernate configuration is missing!");
      +1023     }
      +1024 
      +1025     getLog().info("Gathered configuration:");
      +1026     for (Entry<Object,Object> entry : properties.entrySet())
      +1027       getLog().info("  " + entry.getKey() + " = " + entry.getValue());
      +1028   }
      +1029 
      +1030   private void configure(
      +1031       Properties properties,
      +1032       String value,
      +1033       String key,
      +1034       String alternativeKey
      +1035       )
      +1036   {
      +1037     configure(properties, value, key);
      +1038 
      +1039     if (properties.containsKey(alternativeKey))
      +1040     {
      +1041       if (properties.containsKey(key))
      +1042       {
      +1043         getLog().warn(
      +1044             "Ignoring property " + alternativeKey + "=\"" +
      +1045             properties.getProperty(alternativeKey) +
      +1046             "\" in favour for property " + key + "=\"" +
      +1047             properties.getProperty(key) + "\""
      +1048             );
      +1049         properties.remove(alternativeKey);
      +1050       }
      +1051       else
      +1052       {
      +1053         value = properties.getProperty(alternativeKey);
      +1054         properties.remove(alternativeKey);
      +1055         getLog().info(
      +1056             "Using value \"" + value + "\" from property " + alternativeKey +
      +1057             " for property " + key
      +1058             );
      +1059         properties.setProperty(key, value);
      +1060       }
      +1061     }
      +1062   }
      +1063 
      +1064   private void configure(Properties properties, String value, String key)
      +1065   {
      +1066     if (value != null)
      +1067     {
      +1068       if (properties.containsKey(key))
      +1069       {
      +1070         if (!properties.getProperty(key).equals(value))
      +1071         {
      +1072           getLog().info(
      +1073               "Overwriting property " + key + "=\"" +
      +1074               properties.getProperty(key) +
      +1075               "\" with value \"" + value + "\""
      +1076               );
      +1077           properties.setProperty(key, value);
      +1078         }
      +1079       }
      +1080       else
      +1081       {
      +1082         getLog().debug("Using value \"" + value + "\" for property " + key);
      +1083         properties.setProperty(key, value);
      +1084       }
      +1085     }
      +1086   }
      +1087 
      +1088   private void configure(Properties properties, Boolean value, String key)
      +1089   {
      +1090     configure(properties, value == null ? null : value.toString(), key);
      +1091   }
      +1092 
      +1093   private File getOutputFile(String filename)
      +1094       throws
      +1095         MojoExecutionException
      +1096   {
      +1097     File output = new File(filename);
      +1098 
      +1099     if (!output.isAbsolute())
      +1100     {
      +1101       // Interpret relative file path relative to build directory
      +1102       output = new File(buildDirectory, filename);
      +1103     }
      +1104     getLog().debug("Output file: " + output.getPath());
      +1105 
      +1106     // Ensure that directory path for specified file exists
      +1107     File outFileParentDir = output.getParentFile();
      +1108     if (null != outFileParentDir && !outFileParentDir.exists())
      +1109     {
      +1110       try
      +1111       {
      +1112         getLog().info(
      +1113             "Creating directory path for output file:" +
      +1114             outFileParentDir.getPath()
      +1115             );
      +1116         outFileParentDir.mkdirs();
      +1117       }
      +1118       catch (Exception e)
      +1119       {
      +1120         String error =
      +1121             "Error creating directory path for output file: " + e.getMessage();
      +1122         getLog().error(error);
      +1123         throw new MojoExecutionException(error);
      +1124       }
      +1125     }
      +1126 
      +1127     try
      +1128     {
      +1129       output.createNewFile();
      +1130     }
      +1131     catch (IOException e)
      +1132     {
      +1133       String error = "Error creating output file: " + e.getMessage();
      +1134       getLog().error(error);
      +1135       throw new MojoExecutionException(error);
      +1136     }
      +1137 
      +1138     if (!output.canWrite())
      +1139     {
      +1140       String error =
      +1141           "Output file " + output.getAbsolutePath() + " is not writable!";
      +1142       getLog().error(error);
      +1143       throw new MojoExecutionException(error);
      +1144     }
      +1145 
      +1146     return output;
      +1147   }
      +1148 
      +1149   private void checkOutputFile(File output, ModificationTracker tracker)
      +1150       throws
      +1151         MojoExecutionException
      +1152   {
      +1153     try
      +1154     {
      +1155       if (output.exists())
      +1156         tracker.track(SCRIPT, new FileInputStream(output));
      +1157       else
      +1158         tracker.track(SCRIPT, ZonedDateTime.now().toString());
      +1159     }
      +1160     catch (IOException e)
      +1161     {
      +1162       String error =
      +1163           "Error while checking the generated script: " + e.getMessage();
      +1164       getLog().error(error);
      +1165       throw new MojoExecutionException(error);
      +1166     }
      +1167   }
      +1168 
      +1169   private void addMappings(MetadataSources sources, ModificationTracker tracker)
      +1170       throws MojoFailureException
      +1171   {
      +1172     getLog().debug("Adding explicitly configured mappings...");
      +1173     if (mappings != null)
      +1174     {
      +1175       try
      +1176       {
      +1177         for (String filename : mappings.split("[\\s,]+"))
      +1178         {
      +1179           // First try the filename as absolute/relative path
      +1180           File file = new File(filename);
      +1181           if (!file.exists())
      +1182           {
      +1183             // If the file was not found, search for it in the resource-directories
      +1184             for (Resource resource : project.getResources())
      +1185             {
      +1186               file = new File(resource.getDirectory() + File.separator + filename);
      +1187               if (file.exists())
      +1188                 break;
      +1189             }
      +1190           }
      +1191           if (file.exists())
      +1192           {
      +1193             if (file.isDirectory())
      +1194               // TODO: add support to read all mappings under a directory
      +1195               throw new MojoFailureException(file.getAbsolutePath() + " is a directory");
      +1196             if (tracker.track(filename, new FileInputStream(file)))
      +1197               getLog().debug(" - found new or modified mapping-file: " + filename);
      +1198             else
      +1199               getLog().debug(" - mapping-file unchanged: " + filename);
      +1200 
      +1201             sources.addFile(file);
      +1202           }
      +1203           else
      +1204             throw new MojoFailureException("File " + filename + " could not be found in any of the configured resource-directories!");
      +1205         }
      +1206       }
      +1207       catch (IOException e)
      +1208       {
      +1209         throw new MojoFailureException("Cannot calculate MD5 sums!", e);
      +1210       }
      +1211     }
      +1212   }
      +1213 
      +1214   private void addRoot(Set<URL> urls, String path) throws MojoFailureException
      +1215   {
      +1216     try
      +1217     {
      +1218       File dir = new File(path);
      +1219       if (dir.exists())
      +1220       {
      +1221         getLog().info(" - adding " + dir.getAbsolutePath());
      +1222         urls.add(dir.toURI().toURL());
      +1223       }
      +1224       else
      +1225         getLog().warn(
      +1226             "The directory cannot be scanned for annotated classes, " +
      +1227             "because it does not exist: " +
      +1228             dir.getAbsolutePath()
      +1229             );
      +1230     }
      +1231     catch (MalformedURLException e)
      +1232     {
      +1233       getLog().error("error while adding the project-root to the list of roots to scan!", e);
      +1234       throw new MojoFailureException(e.getMessage());
      +1235     }
      +1236   }
      +1237 
      +1238   private void addDependencies(Set<URL> urls) throws MojoFailureException
      +1239   {
      +1240     try
      +1241     {
      +1242       if (scanDependencies != null)
      +1243       {
      +1244         Matcher matcher = SPLIT.matcher(scanDependencies);
      +1245         while (matcher.find())
      +1246         {
      +1247           getLog().debug("Adding dependencies from scope " + matcher.group() + " to the list of roots to scan");
      +1248           for (Artifact artifact : project.getDependencyArtifacts())
      +1249           {
      +1250             if (!artifact.getScope().equalsIgnoreCase(matcher.group()))
      +1251               continue;
      +1252             if (artifact.getFile() == null)
      +1253             {
      +1254               getLog().warn("Cannot add dependency " + artifact.getId() + ": no JAR-file available!");
      +1255               continue;
      +1256             }
      +1257             getLog().debug(" - adding " + artifact.getId());
      +1258             urls.add(artifact.getFile().toURI().toURL());
      +1259           }
      +1260         }
      +1261       }
      +1262     }
      +1263     catch (MalformedURLException e)
      +1264     {
      +1265       getLog().error("Error while adding dependencies to the list of roots to scan!", e);
      +1266       throw new MojoFailureException(e.getMessage());
      +1267     }
      +1268   }
      +1269 
      +1270   private Set<String> scanUrls(Set<URL> scanRoots)
      +1271       throws
      +1272         MojoFailureException
      +1273   {
      +1274     try
      +1275     {
      +1276       AnnotationDB db = new AnnotationDB();
      +1277       for (URL root : scanRoots)
      +1278         db.scanArchives(root);
      +1279 
      +1280       Set<String> classes = new HashSet<String>();
      +1281       if (db.getAnnotationIndex().containsKey(Entity.class.getName()))
      +1282         classes.addAll(db.getAnnotationIndex().get(Entity.class.getName()));
      +1283       if (db.getAnnotationIndex().containsKey(MappedSuperclass.class.getName()))
      +1284         classes.addAll(db.getAnnotationIndex().get(MappedSuperclass.class.getName()));
      +1285       if (db.getAnnotationIndex().containsKey(Embeddable.class.getName()))
      +1286         classes.addAll(db.getAnnotationIndex().get(Embeddable.class.getName()));
      +1287 
      +1288       return classes;
      +1289     }
      +1290     catch (Exception e)
      +1291     {
      +1292       getLog().error("Error while scanning!", e);
      +1293       throw new MojoFailureException(e.getMessage());
      +1294     }
      +1295   }
      +1296 
      +1297   private void addAnnotated(
      +1298       String name,
      +1299       MetadataSources sources,
      +1300       ClassLoaderService classLoaderService,
      +1301       ModificationTracker tracker
      +1302       )
      +1303       throws
      +1304         MojoFailureException,
      +1305         MojoExecutionException
      +1306   {
      +1307     try
      +1308     {
      +1309       getLog().info("Adding annotated resource: " + name);
      +1310       String packageName = null;
      +1311 
      +1312       boolean error = false;
      +1313       try
      +1314       {
      +1315         Class<?> annotatedClass = classLoaderService.classForName(name);
      +1316         String resourceName = annotatedClass.getName();
      +1317         resourceName =
      +1318             resourceName.substring(
      +1319                 resourceName.lastIndexOf(".") + 1,
      +1320                 resourceName.length()
      +1321                 ) + ".class";
      +1322         InputStream is = annotatedClass.getResourceAsStream(resourceName);
      +1323         if (is != null)
      +1324         {
      +1325           if (tracker.track(name, is))
      +1326             getLog().debug("New or modified class: " + name);
      +1327           else
      +1328             getLog().debug("Unchanged class: " + name);
      +1329           sources.addAnnotatedClass(annotatedClass);
      +1330           packageName = annotatedClass.getPackage().getName();
      +1331         }
      +1332         else
      +1333         {
      +1334           getLog().error("cannot find ressource " + resourceName + " for class " + name);
      +1335           error = true;
      +1336         }
      +1337       }
      +1338       catch(ClassLoadingException e)
      +1339       {
      +1340         packageName = name;
      +1341       }
      +1342       if (error)
      +1343       {
      +1344         throw new MojoExecutionException("error while inspecting annotated class " + name);
      +1345       }
      +1346 
      +1347       while (packageName != null)
      +1348       {
      +1349         if (packages.contains(packageName))
      +1350           return;
      +1351         String resource = packageName.replace('.', '/') + "/package-info.class";
      +1352         InputStream is = classLoaderService.locateResourceStream(resource);
      +1353         if (is == null)
      +1354         {
      +1355           // No compiled package-info available: no package-level annotations!
      +1356           getLog().debug("Package " + packageName + " is not annotated.");
      +1357         }
      +1358         else
      +1359         {
      +1360           if (tracker.track(packageName, is))
      +1361             getLog().debug("New or modified package: " + packageName);
      +1362           else
      +1363            getLog().debug("Unchanged package: " + packageName);
      +1364           getLog().info("Adding annotations from package " + packageName);
      +1365           sources.addPackage(packageName);
      +1366         }
      +1367         packages.add(packageName);
      +1368         int i = packageName.lastIndexOf('.');
      +1369         if (i < 0)
      +1370           packageName = null;
      +1371         else
      +1372           packageName = packageName.substring(0,i);
      +1373       }
      +1374     }
      +1375     catch (Exception e)
      +1376     {
      +1377       getLog().error("Error while adding the annotated class " + name, e);
      +1378       throw new MojoFailureException(e.getMessage());
      +1379     }
      +1380   }
      +1381 
      +1382   private ParsedPersistenceXmlDescriptor loadPersistenceUnit(
      +1383       ClassLoader classLoader,
      +1384       Properties properties
      +1385       )
      +1386       throws
      +1387         MojoFailureException
      +1388   {
      +1389     Map<String, ? extends Object> settings =
      +1390         Collections.singletonMap(
      +1391             AvailableSettings.CLASSLOADERS,
      +1392             Collections.singletonList(classLoader)
      +1393             );
      +1394     // Find all available persistent unit descriptors
      +1395     List<ParsedPersistenceXmlDescriptor> descriptors =
      +1396         PersistenceXmlParser.locatePersistenceUnits(settings);
      +1397 
      +1398     // Find all persistent units in the located descriptors
      +1399     Map<String, ParsedPersistenceXmlDescriptor> units = new HashMap<>();
      +1400     for (ParsedPersistenceXmlDescriptor descriptor : descriptors)
      +1401     {
      +1402       String unit = descriptor.getName();
      +1403       if (units.containsKey(unit))
      +1404         getLog().warn(
      +1405             "Persistence unit " + unit +
      +1406             " from " + descriptor.getPersistenceUnitRootUrl() +
      +1407             " overwrites unit with the same name from " +
      +1408             units.get(unit).getPersistenceUnitRootUrl()
      +1409             );
      +1410       units.put(unit, descriptor);
      +1411     }
      +1412 
      +1413     if (persistenceUnit == null)
      +1414     {
      +1415       Iterator<String> names = units.keySet().iterator();
      +1416       if (!names.hasNext())
      +1417       {
      +1418         getLog().info("Found no META-INF/persistence.xml.");
      +1419         return null;
      +1420       }
      +1421 
      +1422       String name = names.next();
      +1423       if (!names.hasNext())
      +1424       {
      +1425           getLog().info("Using persistence-unit " + name);
      +1426           return units.get(name);
      +1427       }
      +1428 
      +1429       StringBuilder builder = new StringBuilder();
      +1430       builder.append("No name provided and multiple persistence units found: ");
      +1431       builder.append(name);
      +1432       while(names.hasNext())
      +1433       {
      +1434         builder.append(", ");
      +1435         builder.append(names.next());
      +1436       }
      +1437       builder.append('.');
      +1438       throw new MojoFailureException(builder.toString());
      +1439     }
      +1440 
      +1441     if (units.containsKey(persistenceUnit))
      +1442     {
      +1443       getLog().info("Using configured persistence-unit " + persistenceUnit);
      +1444       return units.get(persistenceUnit);
      +1445     }
      +1446 
      +1447     throw new MojoFailureException("Could not find persistence-unit " + persistenceUnit);
      +1448   }
      +1449 
      +1450 
      +1451   public static void printStrackTrace(StringBuilder builder, Throwable t)
      +1452   {
      +1453     while (t != null)
      +1454     {
      +1455       builder.append("\n\tCause: ");
      +1456       builder.append(t.getMessage() == null ? "" : t.getMessage().replaceAll("\\s+", " "));
      +1457       for (StackTraceElement trace : t.getStackTrace())
      +1458       {
      +1459         builder.append("\n\t");
      +1460         builder.append(trace.getClassName());
      +1461         builder.append(".");
      +1462         builder.append(trace.getMethodName());
      +1463         builder.append("():");
      +1464         builder.append(trace.getLineNumber());
      +1465       }
      +1466       t = t.getCause();
      +1467     }
      +1468   }
      +1469 }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/CreateMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/CreateMojo.html new file mode 100644 index 00000000..e6b89340 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/CreateMojo.html @@ -0,0 +1,111 @@ + + + +CreateMojo xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   /*
      +4    * Copyright 2001-2005 The Apache Software Foundation.
      +5    *
      +6    * Licensed under the Apache License, Version 2.0 (the "License");
      +7    * you may not use this file except in compliance with the License.
      +8    * You may obtain a copy of the License at
      +9    *
      +10   *      http://www.apache.org/licenses/LICENSE-2.0
      +11   *
      +12   * Unless required by applicable law or agreed to in writing, software
      +13   * distributed under the License is distributed on an "AS IS" BASIS,
      +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      +15   * See the License for the specific language governing permissions and
      +16   * limitations under the License.
      +17   */
      +18  
      +19  import java.util.Map;
      +20  import org.apache.maven.plugin.MojoExecutionException;
      +21  import org.apache.maven.plugin.MojoFailureException;
      +22  import org.hibernate.boot.spi.MetadataImplementor;
      +23  import org.hibernate.service.ServiceRegistry;
      +24  import org.hibernate.tool.schema.SourceType;
      +25  import org.hibernate.tool.schema.spi.ExecutionOptions;
      +26  import org.hibernate.tool.schema.spi.SchemaManagementTool;
      +27  import org.hibernate.tool.schema.spi.ScriptSourceInput;
      +28  import org.hibernate.tool.schema.spi.SourceDescriptor;
      +29  import org.hibernate.tool.schema.spi.TargetDescriptor;
      +30  
      +31  
      +32  /**
      +33   * Generate/Execute SQL to create a database-schema that represents the
      +34   * configured mappings.
      +35   *
      +36   * @goal create
      +37   * @phase process-classes
      +38   * @threadSafe
      +39   * @requiresDependencyResolution runtime
      +40   */
      +41  public class CreateMojo extends AbstractSchemaMojo
      +42  {
      +43    /**
      +44     * Output file.
      +45     * <p>
      +46     * If the specified filename is not absolut, the file will be created
      +47     * relative to the project build directory
      +48     * (<code>project.build.directory</code>).
      +49     *
      +50     * @parameter property="hibernate.schema.create" default-value="create.sql"
      +51     * @since 1.0
      +52     */
      +53    private String outputFile;
      +54  
      +55  
      +56    @Override
      +57    public final void execute()
      +58      throws
      +59        MojoFailureException,
      +60        MojoExecutionException
      +61    {
      +62      super.execute(outputFile);
      +63    }
      +64  
      +65  
      +66    @Override
      +67    void build(
      +68        MetadataImplementor metadata,
      +69        ExecutionOptions options,
      +70        TargetDescriptor target
      +71        )
      +72        throws
      +73          MojoExecutionException,
      +74          MojoFailureException
      +75    {
      +76      ServiceRegistry service =
      +77          metadata.getMetadataBuildingOptions().getServiceRegistry();
      +78      SchemaManagementTool tool = service.getService(SchemaManagementTool.class);
      +79  
      +80      Map config = options.getConfigurationValues();
      +81      SourceDescriptor source = new SourceDescriptor()
      +82      {
      +83  	  @Override
      +84        public SourceType getSourceType()
      +85        {
      +86          return SourceType.METADATA;
      +87        }
      +88  
      +89        @Override
      +90        public ScriptSourceInput getScriptSourceInput()
      +91        {
      +92          return null;
      +93        }
      +94      };
      +95  
      +96      tool.getSchemaCreator(config).doCreation(metadata, options, source, target);
      +97    }
      +98  }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/DropMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/DropMojo.html new file mode 100644 index 00000000..0a71aaf3 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/DropMojo.html @@ -0,0 +1,111 @@ + + + +DropMojo xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   /*
      +4    * Copyright 2001-2005 The Apache Software Foundation.
      +5    *
      +6    * Licensed under the Apache License, Version 2.0 (the "License");
      +7    * you may not use this file except in compliance with the License.
      +8    * You may obtain a copy of the License at
      +9    *
      +10   *      http://www.apache.org/licenses/LICENSE-2.0
      +11   *
      +12   * Unless required by applicable law or agreed to in writing, software
      +13   * distributed under the License is distributed on an "AS IS" BASIS,
      +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      +15   * See the License for the specific language governing permissions and
      +16   * limitations under the License.
      +17   */
      +18  
      +19  import java.util.Map;
      +20  import org.apache.maven.plugin.MojoExecutionException;
      +21  import org.apache.maven.plugin.MojoFailureException;
      +22  import org.hibernate.boot.spi.MetadataImplementor;
      +23  import org.hibernate.service.ServiceRegistry;
      +24  import org.hibernate.tool.schema.SourceType;
      +25  import org.hibernate.tool.schema.spi.ExecutionOptions;
      +26  import org.hibernate.tool.schema.spi.SchemaManagementTool;
      +27  import org.hibernate.tool.schema.spi.ScriptSourceInput;
      +28  import org.hibernate.tool.schema.spi.SourceDescriptor;
      +29  import org.hibernate.tool.schema.spi.TargetDescriptor;
      +30  
      +31  
      +32  /**
      +33   * Generate/Execute SQL to drop all tables of a database-schema that represents
      +34   * the configured mappings.
      +35   *
      +36   * @goal drop
      +37   * @phase process-classes
      +38   * @threadSafe
      +39   * @requiresDependencyResolution runtime
      +40   */
      +41  public class DropMojo extends AbstractSchemaMojo
      +42  {
      +43    /**
      +44     * Output file.
      +45     * <p>
      +46     * If the specified filename is not absolut, the file will be created
      +47     * relative to the project build directory
      +48     * (<code>project.build.directory</code>).
      +49     *
      +50     * @parameter property="hibernate.schema.drop" default-value="drop.sql"
      +51     * @since 1.0
      +52     */
      +53    private String outputFile;
      +54  
      +55  
      +56    @Override
      +57    public final void execute()
      +58      throws
      +59        MojoFailureException,
      +60        MojoExecutionException
      +61    {
      +62      super.execute(outputFile);
      +63    }
      +64  
      +65  
      +66    @Override
      +67    void build(
      +68        MetadataImplementor metadata,
      +69        ExecutionOptions options,
      +70        TargetDescriptor target
      +71        )
      +72        throws
      +73          MojoExecutionException,
      +74          MojoFailureException
      +75    {
      +76      ServiceRegistry service =
      +77          metadata.getMetadataBuildingOptions().getServiceRegistry();
      +78      SchemaManagementTool tool = service.getService(SchemaManagementTool.class);
      +79  
      +80      Map config = options.getConfigurationValues();
      +81      SourceDescriptor source = new SourceDescriptor()
      +82      {
      +83  	  @Override
      +84        public SourceType getSourceType()
      +85        {
      +86          return SourceType.METADATA;
      +87        }
      +88  
      +89        @Override
      +90        public ScriptSourceInput getScriptSourceInput()
      +91        {
      +92          return null;
      +93        }
      +94      };
      +95  
      +96      tool.getSchemaDropper(config).doDrop(metadata, options, source, target);
      +97    }
      +98  }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/HelpMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/HelpMojo.html new file mode 100644 index 00000000..b9b6e753 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/HelpMojo.html @@ -0,0 +1,467 @@ + + + +HelpMojo xref + + + +
      +1   
      +2   package de.juplo.plugins.hibernate;
      +3   
      +4   import org.apache.maven.plugin.AbstractMojo;
      +5   import org.apache.maven.plugin.MojoExecutionException;
      +6   
      +7   import org.w3c.dom.Document;
      +8   import org.w3c.dom.Element;
      +9   import org.w3c.dom.Node;
      +10  import org.w3c.dom.NodeList;
      +11  import org.xml.sax.SAXException;
      +12  
      +13  import javax.xml.parsers.DocumentBuilder;
      +14  import javax.xml.parsers.DocumentBuilderFactory;
      +15  import javax.xml.parsers.ParserConfigurationException;
      +16  import java.io.IOException;
      +17  import java.io.InputStream;
      +18  import java.util.ArrayList;
      +19  import java.util.List;
      +20  
      +21  /**
      +22   * Display help information on hibernate-maven-plugin.<br>
      +23   * Call <code>mvn hibernate:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</code> to display parameter details.
      +24   * @author maven-plugin-tools
      +25   * @goal help
      +26   * @requiresProject false
      +27   * @threadSafe
      +28   */
      +29  public class HelpMojo
      +30      extends AbstractMojo
      +31  {
      +32      /**
      +33       * If <code>true</code>, display all settable properties for each goal.
      +34       *
      +35       * @parameter property="detail" default-value="false"
      +36       */
      +37      private boolean detail;
      +38  
      +39      /**
      +40       * The name of the goal for which to show help. If unspecified, all goals will be displayed.
      +41       *
      +42       * @parameter property="goal"
      +43       */
      +44      private java.lang.String goal;
      +45  
      +46      /**
      +47       * The maximum length of a display line, should be positive.
      +48       *
      +49       * @parameter property="lineLength" default-value="80"
      +50       */
      +51      private int lineLength;
      +52  
      +53      /**
      +54       * The number of spaces per indentation level, should be positive.
      +55       *
      +56       * @parameter property="indentSize" default-value="2"
      +57       */
      +58      private int indentSize;
      +59  
      +60      // groupId/artifactId/plugin-help.xml
      +61      private static final String PLUGIN_HELP_PATH =
      +62                      "/META-INF/maven/de.juplo/hibernate-maven-plugin/plugin-help.xml";
      +63  
      +64      private static final int DEFAULT_LINE_LENGTH = 80;
      +65  
      +66      private Document build()
      +67          throws MojoExecutionException
      +68      {
      +69          getLog().debug( "load plugin-help.xml: " + PLUGIN_HELP_PATH );
      +70          InputStream is = null;
      +71          try
      +72          {
      +73              is = getClass().getResourceAsStream( PLUGIN_HELP_PATH );
      +74              DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
      +75              DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
      +76              return dBuilder.parse( is );
      +77          }
      +78          catch ( IOException e )
      +79          {
      +80              throw new MojoExecutionException( e.getMessage(), e );
      +81          }
      +82          catch ( ParserConfigurationException e )
      +83          {
      +84              throw new MojoExecutionException( e.getMessage(), e );
      +85          }
      +86          catch ( SAXException e )
      +87          {
      +88              throw new MojoExecutionException( e.getMessage(), e );
      +89          }
      +90          finally
      +91          {
      +92              if ( is != null )
      +93              {
      +94                  try
      +95                  {
      +96                      is.close();
      +97                  }
      +98                  catch ( IOException e )
      +99                  {
      +100                     throw new MojoExecutionException( e.getMessage(), e );
      +101                 }
      +102             }
      +103         }
      +104     }
      +105 
      +106     /**
      +107      * {@inheritDoc}
      +108      */
      +109     public void execute()
      +110         throws MojoExecutionException
      +111     {
      +112         if ( lineLength <= 0 )
      +113         {
      +114             getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
      +115             lineLength = DEFAULT_LINE_LENGTH;
      +116         }
      +117         if ( indentSize <= 0 )
      +118         {
      +119             getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
      +120             indentSize = 2;
      +121         }
      +122 
      +123         Document doc = build();
      +124 
      +125         StringBuilder sb = new StringBuilder();
      +126         Node plugin = getSingleChild( doc, "plugin" );
      +127 
      +128 
      +129         String name = getValue( plugin, "name" );
      +130         String version = getValue( plugin, "version" );
      +131         String id = getValue( plugin, "groupId" ) + ":" + getValue( plugin, "artifactId" ) + ":" + version;
      +132         if ( isNotEmpty( name ) && !name.contains( id ) )
      +133         {
      +134             append( sb, name + " " + version, 0 );
      +135         }
      +136         else
      +137         {
      +138             if ( isNotEmpty( name ) )
      +139             {
      +140                 append( sb, name, 0 );
      +141             }
      +142             else
      +143             {
      +144                 append( sb, id, 0 );
      +145             }
      +146         }
      +147         append( sb, getValue( plugin, "description" ), 1 );
      +148         append( sb, "", 0 );
      +149 
      +150         //<goalPrefix>plugin</goalPrefix>
      +151         String goalPrefix = getValue( plugin, "goalPrefix" );
      +152 
      +153         Node mojos1 = getSingleChild( plugin, "mojos" );
      +154 
      +155         List<Node> mojos = findNamedChild( mojos1, "mojo" );
      +156 
      +157         if ( goal == null || goal.length() <= 0 )
      +158         {
      +159             append( sb, "This plugin has " + mojos.size() + ( mojos.size() > 1 ? " goals:" : " goal:" ), 0 );
      +160             append( sb, "", 0 );
      +161         }
      +162 
      +163         for ( Node mojo : mojos )
      +164         {
      +165             writeGoal( sb, goalPrefix, (Element) mojo );
      +166         }
      +167 
      +168         if ( getLog().isInfoEnabled() )
      +169         {
      +170             getLog().info( sb.toString() );
      +171         }
      +172     }
      +173 
      +174 
      +175     private static boolean isNotEmpty( String string )
      +176     {
      +177         return string != null && string.length() > 0;
      +178     }
      +179 
      +180     private String getValue( Node node, String elementName )
      +181         throws MojoExecutionException
      +182     {
      +183         return getSingleChild( node, elementName ).getTextContent();
      +184     }
      +185 
      +186     private Node getSingleChild( Node node, String elementName )
      +187         throws MojoExecutionException
      +188     {
      +189         List<Node> namedChild = findNamedChild( node, elementName );
      +190         if ( namedChild.isEmpty() )
      +191         {
      +192             throw new MojoExecutionException( "Could not find " + elementName + " in plugin-help.xml" );
      +193         }
      +194         if ( namedChild.size() > 1 )
      +195         {
      +196             throw new MojoExecutionException( "Multiple " + elementName + " in plugin-help.xml" );
      +197         }
      +198         return namedChild.get( 0 );
      +199     }
      +200 
      +201     private List<Node> findNamedChild( Node node, String elementName )
      +202     {
      +203         List<Node> result = new ArrayList<Node>();
      +204         NodeList childNodes = node.getChildNodes();
      +205         for ( int i = 0; i < childNodes.getLength(); i++ )
      +206         {
      +207             Node item = childNodes.item( i );
      +208             if ( elementName.equals( item.getNodeName() ) )
      +209             {
      +210                 result.add( item );
      +211             }
      +212         }
      +213         return result;
      +214     }
      +215 
      +216     private Node findSingleChild( Node node, String elementName )
      +217         throws MojoExecutionException
      +218     {
      +219         List<Node> elementsByTagName = findNamedChild( node, elementName );
      +220         if ( elementsByTagName.isEmpty() )
      +221         {
      +222             return null;
      +223         }
      +224         if ( elementsByTagName.size() > 1 )
      +225         {
      +226             throw new MojoExecutionException( "Multiple " + elementName + "in plugin-help.xml" );
      +227         }
      +228         return elementsByTagName.get( 0 );
      +229     }
      +230 
      +231     private void writeGoal( StringBuilder sb, String goalPrefix, Element mojo )
      +232         throws MojoExecutionException
      +233     {
      +234         String mojoGoal = getValue( mojo, "goal" );
      +235         Node configurationElement = findSingleChild( mojo, "configuration" );
      +236         Node description = findSingleChild( mojo, "description" );
      +237         if ( goal == null || goal.length() <= 0 || mojoGoal.equals( goal ) )
      +238         {
      +239             append( sb, goalPrefix + ":" + mojoGoal, 0 );
      +240             Node deprecated = findSingleChild( mojo, "deprecated" );
      +241             if ( ( deprecated != null ) && isNotEmpty( deprecated.getTextContent() ) )
      +242             {
      +243                 append( sb, "Deprecated. " + deprecated.getTextContent(), 1 );
      +244                 if ( detail && description != null )
      +245                 {
      +246                     append( sb, "", 0 );
      +247                     append( sb, description.getTextContent(), 1 );
      +248                 }
      +249             }
      +250             else if ( description != null )
      +251             {
      +252                 append( sb, description.getTextContent(), 1 );
      +253             }
      +254             append( sb, "", 0 );
      +255 
      +256             if ( detail )
      +257             {
      +258                 Node parametersNode = getSingleChild( mojo, "parameters" );
      +259                 List<Node> parameters = findNamedChild( parametersNode, "parameter" );
      +260                 append( sb, "Available parameters:", 1 );
      +261                 append( sb, "", 0 );
      +262 
      +263                 for ( Node parameter : parameters )
      +264                 {
      +265                     writeParameter( sb, parameter, configurationElement );
      +266                 }
      +267             }
      +268         }
      +269     }
      +270 
      +271     private void writeParameter( StringBuilder sb, Node parameter, Node configurationElement )
      +272         throws MojoExecutionException
      +273     {
      +274         String parameterName = getValue( parameter, "name" );
      +275         String parameterDescription = getValue( parameter, "description" );
      +276 
      +277         Element fieldConfigurationElement = (Element) findSingleChild( configurationElement, parameterName );
      +278 
      +279         String parameterDefaultValue = "";
      +280         if ( fieldConfigurationElement != null && fieldConfigurationElement.hasAttribute( "default-value" ) )
      +281         {
      +282             parameterDefaultValue = " (Default: " + fieldConfigurationElement.getAttribute( "default-value" ) + ")";
      +283         }
      +284         append( sb, parameterName + parameterDefaultValue, 2 );
      +285         Node deprecated = findSingleChild( parameter, "deprecated" );
      +286         if ( ( deprecated != null ) && isNotEmpty( deprecated.getTextContent() ) )
      +287         {
      +288             append( sb, "Deprecated. " + deprecated.getTextContent(), 3 );
      +289             append( sb, "", 0 );
      +290         }
      +291         append( sb, parameterDescription, 3 );
      +292         if ( "true".equals( getValue( parameter, "required" ) ) )
      +293         {
      +294             append( sb, "Required: Yes", 3 );
      +295         }
      +296         if ( ( fieldConfigurationElement != null ) && isNotEmpty( fieldConfigurationElement.getTextContent() ) )
      +297         {
      +298             String property = getPropertyFromExpression( fieldConfigurationElement.getTextContent() );
      +299             append( sb, "User property: " + property, 3 );
      +300         }
      +301 
      +302         append( sb, "", 0 );
      +303     }
      +304 
      +305     /**
      +306      * <p>Repeat a String <code>n</code> times to form a new string.</p>
      +307      *
      +308      * @param str    String to repeat
      +309      * @param repeat number of times to repeat str
      +310      * @return String with repeated String
      +311      * @throws NegativeArraySizeException if <code>repeat < 0</code>
      +312      * @throws NullPointerException       if str is <code>null</code>
      +313      */
      +314     private static String repeat( String str, int repeat )
      +315     {
      +316         StringBuilder buffer = new StringBuilder( repeat * str.length() );
      +317 
      +318         for ( int i = 0; i < repeat; i++ )
      +319         {
      +320             buffer.append( str );
      +321         }
      +322 
      +323         return buffer.toString();
      +324     }
      +325 
      +326     /**
      +327      * Append a description to the buffer by respecting the indentSize and lineLength parameters.
      +328      * <b>Note</b>: The last character is always a new line.
      +329      *
      +330      * @param sb          The buffer to append the description, not <code>null</code>.
      +331      * @param description The description, not <code>null</code>.
      +332      * @param indent      The base indentation level of each line, must not be negative.
      +333      */
      +334     private void append( StringBuilder sb, String description, int indent )
      +335     {
      +336         for ( String line : toLines( description, indent, indentSize, lineLength ) )
      +337         {
      +338             sb.append( line ).append( '\n' );
      +339         }
      +340     }
      +341 
      +342     /**
      +343      * Splits the specified text into lines of convenient display length.
      +344      *
      +345      * @param text       The text to split into lines, must not be <code>null</code>.
      +346      * @param indent     The base indentation level of each line, must not be negative.
      +347      * @param indentSize The size of each indentation, must not be negative.
      +348      * @param lineLength The length of the line, must not be negative.
      +349      * @return The sequence of display lines, never <code>null</code>.
      +350      * @throws NegativeArraySizeException if <code>indent < 0</code>
      +351      */
      +352     private static List<String> toLines( String text, int indent, int indentSize, int lineLength )
      +353     {
      +354         List<String> lines = new ArrayList<String>();
      +355 
      +356         String ind = repeat( "\t", indent );
      +357 
      +358         String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
      +359 
      +360         for ( String plainLine : plainLines )
      +361         {
      +362             toLines( lines, ind + plainLine, indentSize, lineLength );
      +363         }
      +364 
      +365         return lines;
      +366     }
      +367 
      +368     /**
      +369      * Adds the specified line to the output sequence, performing line wrapping if necessary.
      +370      *
      +371      * @param lines      The sequence of display lines, must not be <code>null</code>.
      +372      * @param line       The line to add, must not be <code>null</code>.
      +373      * @param indentSize The size of each indentation, must not be negative.
      +374      * @param lineLength The length of the line, must not be negative.
      +375      */
      +376     private static void toLines( List<String> lines, String line, int indentSize, int lineLength )
      +377     {
      +378         int lineIndent = getIndentLevel( line );
      +379         StringBuilder buf = new StringBuilder( 256 );
      +380 
      +381         String[] tokens = line.split( " +" );
      +382 
      +383         for ( String token : tokens )
      +384         {
      +385             if ( buf.length() > 0 )
      +386             {
      +387                 if ( buf.length() + token.length() >= lineLength )
      +388                 {
      +389                     lines.add( buf.toString() );
      +390                     buf.setLength( 0 );
      +391                     buf.append( repeat( " ", lineIndent * indentSize ) );
      +392                 }
      +393                 else
      +394                 {
      +395                     buf.append( ' ' );
      +396                 }
      +397             }
      +398 
      +399             for ( int j = 0; j < token.length(); j++ )
      +400             {
      +401                 char c = token.charAt( j );
      +402                 if ( c == '\t' )
      +403                 {
      +404                     buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
      +405                 }
      +406                 else if ( c == '\u00A0' )
      +407                 {
      +408                     buf.append( ' ' );
      +409                 }
      +410                 else
      +411                 {
      +412                     buf.append( c );
      +413                 }
      +414             }
      +415         }
      +416         lines.add( buf.toString() );
      +417     }
      +418 
      +419     /**
      +420      * Gets the indentation level of the specified line.
      +421      *
      +422      * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
      +423      * @return The indentation level of the line.
      +424      */
      +425     private static int getIndentLevel( String line )
      +426     {
      +427         int level = 0;
      +428         for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
      +429         {
      +430             level++;
      +431         }
      +432         for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
      +433         {
      +434             if ( line.charAt( i ) == '\t' )
      +435             {
      +436                 level++;
      +437                 break;
      +438             }
      +439         }
      +440         return level;
      +441     }
      +442     
      +443     private String getPropertyFromExpression( String expression )
      +444     {
      +445         if ( expression != null && expression.startsWith( "${" ) && expression.endsWith( "}" )
      +446             && !expression.substring( 2 ).contains( "${" ) )
      +447         {
      +448             // expression="${xxx}" -> property="xxx"
      +449             return expression.substring( 2, expression.length() - 1 );
      +450         }
      +451         // no property can be extracted
      +452         return null;
      +453     }
      +454 }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/ModificationTracker.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/ModificationTracker.html new file mode 100644 index 00000000..7509ef55 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/ModificationTracker.html @@ -0,0 +1,224 @@ + + + +ModificationTracker xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   
      +4   import java.io.File;
      +5   import java.io.FileInputStream;
      +6   import java.io.FileOutputStream;
      +7   import java.io.IOException;
      +8   import java.io.InputStream;
      +9   import java.io.ObjectInputStream;
      +10  import java.io.ObjectOutputStream;
      +11  import java.math.BigInteger;
      +12  import java.security.MessageDigest;
      +13  import java.security.NoSuchAlgorithmException;
      +14  import java.util.HashMap;
      +15  import java.util.HashSet;
      +16  import java.util.Map;
      +17  import java.util.Properties;
      +18  import java.util.Set;
      +19  import org.apache.maven.plugin.logging.Log;
      +20  
      +21  
      +22  
      +23  /**
      +24   *
      +25   * @author Kai Moritz
      +26   */
      +27  public class ModificationTracker
      +28  {
      +29    private Map<String,String> properties;
      +30    private Map<String,String> classes;
      +31  
      +32    private final Set<String> propertyNames;
      +33    private final Set<String> classNames;
      +34  
      +35    private boolean modified = false;
      +36    private boolean failed = false;
      +37  
      +38    private final File saved;
      +39    private final MessageDigest digest;
      +40    private final Log log;
      +41  
      +42  
      +43    ModificationTracker(String buildDirectory, String filename, Log log)
      +44        throws
      +45          NoSuchAlgorithmException
      +46    {
      +47      propertyNames = new HashSet<String>();
      +48      classNames = new HashSet<String>();
      +49      File output = new File(filename + ".md5s");
      +50      if (output.isAbsolute())
      +51      {
      +52        saved = output;
      +53      }
      +54      else
      +55      {
      +56        // Interpret relative file path relative to build directory
      +57        saved = new File(buildDirectory, output.getPath());
      +58        log.debug("Adjusted relative path, resulting path is " + saved.getPath());
      +59      }
      +60      digest = java.security.MessageDigest.getInstance("MD5");
      +61      this.log = log;
      +62    }
      +63  
      +64  
      +65    private String calculate(InputStream is)
      +66        throws
      +67          IOException
      +68    {
      +69      byte[] buffer = new byte[1024*4]; // copy data in 4MB-chunks
      +70      int i;
      +71      while((i = is.read(buffer)) > -1)
      +72        digest.update(buffer, 0, i);
      +73      is.close();
      +74      byte[] bytes = digest.digest();
      +75      BigInteger bi = new BigInteger(1, bytes);
      +76      return String.format("%0" + (bytes.length << 1) + "x", bi);
      +77    }
      +78  
      +79    private boolean check(Map<String,String> values, String name, String value)
      +80    {
      +81      if (!values.containsKey(name) || !values.get(name).equals(value))
      +82      {
      +83        values.put(name, value);
      +84        return true;
      +85      }
      +86      else
      +87        return false;
      +88    }
      +89  
      +90  
      +91    boolean track(String name, InputStream is) throws IOException
      +92    {
      +93      boolean result = check(classes, name, calculate(is));
      +94      classNames.add(name);
      +95      modified |= result;
      +96      return result;
      +97    }
      +98  
      +99  
      +100   boolean check(String name, String property)
      +101   {
      +102     propertyNames.add(name);
      +103     return check(properties, name, property);
      +104   }
      +105 
      +106   boolean track(String name, String property)
      +107   {
      +108     boolean result = check(name, property);
      +109     modified |= result;
      +110     return result;
      +111   }
      +112 
      +113   boolean track(Properties properties)
      +114   {
      +115     boolean result = false;
      +116     for (String name : properties.stringPropertyNames())
      +117       result |= track(name, properties.getProperty(name));
      +118     return result;
      +119   }
      +120 
      +121 
      +122   void touch()
      +123   {
      +124     modified = true;
      +125   }
      +126 
      +127   boolean modified()
      +128   {
      +129     for (String property : new HashSet<String>(properties.keySet()))
      +130       if (!propertyNames.contains(property))
      +131       {
      +132         modified = true;
      +133         properties.remove(property);
      +134       }
      +135      for (String clazz : new HashSet<String>(classes.keySet()))
      +136       if (!classNames.contains(clazz))
      +137       {
      +138         modified = true;
      +139         classes.remove(clazz);
      +140       }
      +141     return modified;
      +142   }
      +143 
      +144 
      +145   void failed()
      +146   {
      +147     failed = true;
      +148   }
      +149 
      +150 
      +151   void load()
      +152   {
      +153     if (saved.isFile() && saved.length() > 0)
      +154     {
      +155       try
      +156       {
      +157         FileInputStream fis = new FileInputStream(saved);
      +158         ObjectInputStream ois = new ObjectInputStream(fis);
      +159         properties = (HashMap<String,String>)ois.readObject();
      +160         classes = (HashMap<String,String>)ois.readObject();
      +161         ois.close();
      +162       }
      +163       catch (Exception e)
      +164       {
      +165         properties = new HashMap<String,String>();
      +166         classes = new HashMap<String,String>();
      +167         log.warn("Cannot read md5s from saved: " + e);
      +168       }
      +169     }
      +170     else
      +171     {
      +172       properties = new HashMap<String,String>();
      +173       classes = new HashMap<String,String>();
      +174       try
      +175       {
      +176         saved.createNewFile();
      +177       }
      +178       catch (IOException e)
      +179       {
      +180         log.debug("Cannot create file \"" + saved.getPath() + "\" for md5s: " + e);
      +181       }
      +182     }
      +183   }
      +184 
      +185   void save()
      +186   {
      +187     if (failed)
      +188     {
      +189       saved.delete();
      +190       return;
      +191     }
      +192 
      +193     if (!modified)
      +194       return;
      +195 
      +196     /** Write md5-sums for annotated classes to file */
      +197     try
      +198     {
      +199       FileOutputStream fos = new FileOutputStream(saved);
      +200       ObjectOutputStream oos = new ObjectOutputStream(fos);
      +201       oos.writeObject(properties);
      +202       oos.writeObject(classes);
      +203       oos.close();
      +204       fos.close();
      +205     }
      +206     catch (Exception e)
      +207     {
      +208       log.error("Cannot write md5-sums to file: " + e);
      +209     }
      +210   }  
      +211 }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/MutableClassLoader.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/MutableClassLoader.html new file mode 100644 index 00000000..f20e0b3f --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/MutableClassLoader.html @@ -0,0 +1,115 @@ + + + +MutableClassLoader xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   import java.io.IOException;
      +4   import java.io.InputStream;
      +5   import java.net.URL;
      +6   import java.net.URLClassLoader;
      +7   import java.util.Arrays;
      +8   import java.util.Enumeration;
      +9   import java.util.LinkedHashSet;
      +10  import org.apache.maven.plugin.logging.Log;
      +11  
      +12  
      +13  /**
      +14   *
      +15   * @author kai
      +16   */
      +17  public class MutableClassLoader extends ClassLoader
      +18  {
      +19    private URLClassLoader loader;
      +20    private Log log;
      +21  
      +22  
      +23    public MutableClassLoader(LinkedHashSet<URL> urls, Log log)
      +24    {
      +25      if (log.isDebugEnabled())
      +26        for (URL url : urls)
      +27          log.debug(url.toString());
      +28      loader =
      +29          new URLClassLoader(
      +30              urls.toArray(new URL[urls.size()]),
      +31              getClass().getClassLoader()
      +32              );
      +33      this.log = log;
      +34    }
      +35  
      +36  
      +37    public MutableClassLoader add(LinkedHashSet<URL> urls)
      +38    {
      +39      LinkedHashSet<URL> old =
      +40          new LinkedHashSet<URL>(Arrays.asList(loader.getURLs()));
      +41      old.addAll(urls);
      +42      if (log.isDebugEnabled())
      +43        for (URL url : urls)
      +44          log.debug(url.toString());
      +45      loader =
      +46          new URLClassLoader(
      +47              old.toArray(new URL[urls.size()]),
      +48              getClass().getClassLoader()
      +49              );
      +50      return this;
      +51    }
      +52  
      +53  
      +54    @Override
      +55    public void clearAssertionStatus()
      +56    {
      +57      loader.clearAssertionStatus();
      +58    }
      +59  
      +60    @Override
      +61    public void setClassAssertionStatus(String className, boolean enabled)
      +62    {
      +63      loader.setClassAssertionStatus(className, enabled);
      +64    }
      +65  
      +66    @Override
      +67    public void setPackageAssertionStatus(String packageName, boolean enabled)
      +68    {
      +69      loader.setPackageAssertionStatus(packageName, enabled);
      +70    }
      +71  
      +72    @Override
      +73    public void setDefaultAssertionStatus(boolean enabled)
      +74    {
      +75      loader.setDefaultAssertionStatus(enabled);
      +76    }
      +77  
      +78    @Override
      +79    public InputStream getResourceAsStream(String name)
      +80    {
      +81      return loader.getResourceAsStream(name);
      +82    }
      +83  
      +84    @Override
      +85    public Enumeration<URL> getResources(String name) throws IOException
      +86    {
      +87      return loader.getResources(name);
      +88    }
      +89  
      +90    @Override
      +91    public URL getResource(String name)
      +92    {
      +93      return loader.getResource(name);
      +94    }
      +95  
      +96    @Override
      +97    public Class<?> loadClass(String name) throws ClassNotFoundException
      +98    {
      +99      return loader.loadClass(name);
      +100   }
      +101   
      +102 }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/SimpleConnectionProvider.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/SimpleConnectionProvider.html new file mode 100644 index 00000000..34a22a34 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/SimpleConnectionProvider.html @@ -0,0 +1,245 @@ + + + +SimpleConnectionProvider xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   import java.sql.Connection;
      +4   import java.sql.Driver;
      +5   import java.sql.DriverManager;
      +6   import java.sql.DriverPropertyInfo;
      +7   import java.sql.SQLException;
      +8   import java.sql.SQLFeatureNotSupportedException;
      +9   import java.util.Properties;
      +10  import java.util.logging.Logger;
      +11  import org.apache.maven.plugin.MojoFailureException;
      +12  import org.apache.maven.plugin.logging.Log;
      +13  import static org.eclipse.aether.repository.AuthenticationContext.PASSWORD;
      +14  import static org.eclipse.aether.repository.AuthenticationContext.USERNAME;
      +15  import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
      +16  import static org.hibernate.cfg.AvailableSettings.DRIVER;
      +17  import static org.hibernate.cfg.AvailableSettings.PASS;
      +18  import static org.hibernate.cfg.AvailableSettings.URL;
      +19  import static org.hibernate.cfg.AvailableSettings.USER;
      +20  import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
      +21  import static org.hibernate.jpa.AvailableSettings.JDBC_DRIVER;
      +22  import static org.hibernate.jpa.AvailableSettings.JDBC_PASSWORD;
      +23  import static org.hibernate.jpa.AvailableSettings.JDBC_URL;
      +24  import static org.hibernate.jpa.AvailableSettings.JDBC_USER;
      +25  
      +26  /**
      +27   *
      +28   * @author Kai Moritz
      +29   */
      +30  class SimpleConnectionProvider implements ConnectionProvider
      +31  {
      +32    private final Log log;
      +33  
      +34    private Connection connection;
      +35  
      +36  
      +37    SimpleConnectionProvider(Log log)
      +38    {
      +39      this.log = log;
      +40    }
      +41  
      +42  
      +43    void open(ClassLoaderService classLoaderService, Properties properties)
      +44        throws
      +45          MojoFailureException
      +46    {
      +47  
      +48      String driver = (String)properties.getProperty(DRIVER);
      +49      String url = (String)properties.getProperty(URL);
      +50      String user = (String)properties.getProperty(USER);
      +51      String password = (String)properties.getProperty(PASS);
      +52  
      +53      if (driver == null || url == null)
      +54      {
      +55        log.info("No connection opened, because connection information is incomplete");
      +56        log.info("Driver-Class: " + driver);
      +57        log.info("URL: " + url);
      +58        return;
      +59      }
      +60  
      +61      try
      +62      {
      +63        Class driverClass = classLoaderService.classForName(driver);
      +64  
      +65        log.debug("Registering JDBC-driver " + driverClass.getName());
      +66        DriverManager
      +67            .registerDriver(new DriverProxy((Driver) driverClass.newInstance()));
      +68  
      +69        log.debug(
      +70            "Opening JDBC-connection to " + url +
      +71            " as " + user +
      +72            " with password " + password
      +73            );
      +74      
      +75        connection = DriverManager.getConnection(url, user, password);
      +76      }
      +77      catch (Exception e)
      +78      {
      +79        log.info("Could not open the JDBC-connection: " + e.getMessage());
      +80      }
      +81    }
      +82  
      +83    void close()
      +84    {
      +85      if (connection == null)
      +86        return;
      +87  
      +88      log.debug("Closing the JDBC-connection.");
      +89      try
      +90      {
      +91        connection.close();
      +92      }
      +93      catch (SQLException e)
      +94      {
      +95        log.error("Error while closing the JDBC-connection: " + e.getMessage());
      +96      }
      +97    }
      +98  
      +99    @Override
      +100   public Connection getConnection() throws SQLException
      +101   {
      +102     log.debug("Connection aquired.");
      +103 
      +104     if (connection == null)
      +105       throw new SQLException("No connection available, because of insufficient connection information!");
      +106 
      +107     return connection;
      +108   }
      +109 
      +110   @Override
      +111   public void closeConnection(Connection conn) throws SQLException
      +112   {
      +113     log.debug("Connection released");
      +114   }
      +115 
      +116   @Override
      +117   public boolean supportsAggressiveRelease()
      +118   {
      +119     return false;
      +120   }
      +121 
      +122   @Override
      +123   public boolean isUnwrappableAs(Class unwrapType)
      +124   {
      +125     return false;
      +126   }
      +127 
      +128   @Override
      +129   public <T> T unwrap(Class<T> unwrapType)
      +130   {
      +131     throw new UnsupportedOperationException("Not supported.");
      +132   }
      +133 
      +134   /**
      +135    * Needed, because DriverManager won't pick up drivers, that were not
      +136    * loaded by the system-classloader!
      +137    * See:
      +138    * http://stackoverflow.com/questions/288828/how-to-use-a-jdbc-driver-fromodifiedm-an-arbitrary-location
      +139    */
      +140   static final class DriverProxy implements Driver
      +141   {
      +142     private final Driver target;
      +143 
      +144     DriverProxy(Driver target)
      +145     {
      +146       if (target == null)
      +147         throw new NullPointerException();
      +148       this.target = target;
      +149     }
      +150 
      +151     public java.sql.Driver getTarget()
      +152     {
      +153       return target;
      +154     }
      +155 
      +156     @Override
      +157     public boolean acceptsURL(String url) throws SQLException
      +158     {
      +159       return target.acceptsURL(url);
      +160     }
      +161 
      +162     @Override
      +163     public java.sql.Connection connect(
      +164         String url,
      +165         java.util.Properties info
      +166       )
      +167       throws
      +168         SQLException
      +169     {
      +170       return target.connect(url, info);
      +171     }
      +172 
      +173     @Override
      +174     public int getMajorVersion()
      +175     {
      +176       return target.getMajorVersion();
      +177     }
      +178 
      +179     @Override
      +180     public int getMinorVersion()
      +181     {
      +182       return target.getMinorVersion();
      +183     }
      +184 
      +185     @Override
      +186     public DriverPropertyInfo[] getPropertyInfo(
      +187         String url,
      +188         Properties info
      +189       )
      +190       throws
      +191         SQLException
      +192     {
      +193       return target.getPropertyInfo(url, info);
      +194     }
      +195 
      +196     @Override
      +197     public boolean jdbcCompliant()
      +198     {
      +199       return target.jdbcCompliant();
      +200     }
      +201 
      +202     /**
      +203      * This Method cannot be annotated with @Override, becaus the plugin
      +204      * will not compile then under Java 1.6!
      +205      */
      +206     public Logger getParentLogger() throws SQLFeatureNotSupportedException
      +207     {
      +208       throw new SQLFeatureNotSupportedException("Not supported, for backward-compatibility with Java 1.6");
      +209     }
      +210 
      +211     @Override
      +212     public String toString()
      +213     {
      +214       return "Proxy: " + target;
      +215     }
      +216 
      +217     @Override
      +218     public int hashCode()
      +219     {
      +220       return target.hashCode();
      +221     }
      +222 
      +223     @Override
      +224     public boolean equals(Object obj)
      +225     {
      +226       if (!(obj instanceof DriverProxy))
      +227         return false;
      +228       DriverProxy other = (DriverProxy) obj;
      +229       return this.target.equals(other.target);
      +230     }
      +231   }
      +232 }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/UpdateMojo.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/UpdateMojo.html new file mode 100644 index 00000000..6da413c1 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/UpdateMojo.html @@ -0,0 +1,94 @@ + + + +UpdateMojo xref + + + +
      +1   package de.juplo.plugins.hibernate;
      +2   
      +3   /*
      +4    * Copyright 2001-2005 The Apache Software Foundation.
      +5    *
      +6    * Licensed under the Apache License, Version 2.0 (the "License");
      +7    * you may not use this file except in compliance with the License.
      +8    * You may obtain a copy of the License at
      +9    *
      +10   *      http://www.apache.org/licenses/LICENSE-2.0
      +11   *
      +12   * Unless required by applicable law or agreed to in writing, software
      +13   * distributed under the License is distributed on an "AS IS" BASIS,
      +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      +15   * See the License for the specific language governing permissions and
      +16   * limitations under the License.
      +17   */
      +18  
      +19  import java.util.Map;
      +20  import org.apache.maven.plugin.MojoExecutionException;
      +21  import org.apache.maven.plugin.MojoFailureException;
      +22  import org.hibernate.boot.spi.MetadataImplementor;
      +23  import org.hibernate.service.ServiceRegistry;
      +24  import org.hibernate.tool.schema.spi.ExecutionOptions;
      +25  import org.hibernate.tool.schema.spi.SchemaManagementTool;
      +26  import org.hibernate.tool.schema.spi.TargetDescriptor;
      +27  
      +28  
      +29  /**
      +30   * Generate/Execute SQL to update the database-schema according to the
      +31   * configured mappings.
      +32   *
      +33   * @goal update
      +34   * @phase process-classes
      +35   * @threadSafe
      +36   * @requiresDependencyResolution runtime
      +37   */
      +38  public class UpdateMojo extends AbstractSchemaMojo
      +39  {
      +40    /**
      +41     * Output file.
      +42     * <p>
      +43     * If the specified filename is not absolut, the file will be created
      +44     * relative to the project build directory
      +45     * (<code>project.build.directory</code>).
      +46     *
      +47     * @parameter property="hibernate.schema.update" default-value="update.sql"
      +48     * @since 1.0
      +49     */
      +50    private String outputFile;
      +51  
      +52  
      +53    @Override
      +54    public final void execute()
      +55      throws
      +56        MojoFailureException,
      +57        MojoExecutionException
      +58    {
      +59      super.execute(outputFile);
      +60    }
      +61  
      +62  
      +63    @Override
      +64    void build(
      +65        MetadataImplementor metadata,
      +66        ExecutionOptions options,
      +67        TargetDescriptor target
      +68        )
      +69        throws
      +70          MojoExecutionException,
      +71          MojoFailureException
      +72    {
      +73      ServiceRegistry service =
      +74          metadata.getMetadataBuildingOptions().getServiceRegistry();
      +75      SchemaManagementTool tool = service.getService(SchemaManagementTool.class);
      +76  
      +77      Map config = options.getConfigurationValues();
      +78  
      +79      tool.getSchemaMigrator(config).doMigration(metadata, options, target);
      +80    }
      +81  }
      +
      +
      + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/package-frame.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/package-frame.html new file mode 100644 index 00000000..e6b38c00 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/package-frame.html @@ -0,0 +1,48 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference Package de.juplo.plugins.hibernate + + + + +

      + de.juplo.plugins.hibernate +

      + +

      Classes

      + + + + + \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/package-summary.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/package-summary.html new file mode 100644 index 00000000..1cdec687 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/de/juplo/plugins/hibernate/package-summary.html @@ -0,0 +1,109 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference Package de.juplo.plugins.hibernate + + + +
      + +
      +
      + +
      + +

      Package de.juplo.plugins.hibernate

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Class Summary
      + AbstractSchemaMojo +
      + CreateMojo +
      + DriverProxy +
      + DropMojo +
      + HelpMojo +
      + ModificationTracker +
      + MutableClassLoader +
      + SimpleConnectionProvider +
      + UpdateMojo +
      + +
      + +
      +
      + +
      +
      + + + \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/index.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/index.html new file mode 100644 index 00000000..51b3be5a --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/index.html @@ -0,0 +1,25 @@ + + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference + + + + + + + + + <body> + <h1>Frame Alert</h1> + <p> + You don't have frames. Go <a href="overview-summary.html">here</a> + </p> + </body> + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/overview-frame.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/overview-frame.html new file mode 100644 index 00000000..ec1ca682 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/overview-frame.html @@ -0,0 +1,25 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference + + + + +

      + All Classes +

      + +

      Packages

      + + + + + + diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/overview-summary.html b/exampleSite/static/projects/hibernate-maven-plugin/xref/overview-summary.html new file mode 100644 index 00000000..649eed55 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/overview-summary.html @@ -0,0 +1,66 @@ + + + + + + Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference + + + +
      +
        +
      • Overview
      • +
      • Package
      • +
      +
      +
      + +
      + +

      Hibernate Maven Plugin 2.1.2-SNAPSHOT Reference

      + + + + + + + + + + + + +
      Packages
      + de.juplo.plugins.hibernate +
      + +
      +
        +
      • Overview
      • +
      • Package
      • +
      +
      +
      + +
      + +
      + + + \ No newline at end of file diff --git a/exampleSite/static/projects/hibernate-maven-plugin/xref/stylesheet.css b/exampleSite/static/projects/hibernate-maven-plugin/xref/stylesheet.css new file mode 100644 index 00000000..89732f81 --- /dev/null +++ b/exampleSite/static/projects/hibernate-maven-plugin/xref/stylesheet.css @@ -0,0 +1,114 @@ +/* Javadoc style sheet */ +/* Define colors, fonts and other style attributes here to override the defaults */ +body { + background-color: #fff; + font-family: Arial, Helvetica, sans-serif; +} + +a:link { + color: #00f; +} +a:visited { + color: #00a; +} + +a:active, a:hover { + color: #f30 !important; +} + +ul, li { + list-style-type:none; + margin:0; + padding:0; +} + +table td { + padding: 3px; + border: 1px solid #000; +} +table { + width:100%; + border: 1px solid #000; + border-collapse: collapse; +} + +div.overview { + background-color:#ddd; + padding: 4px 4px 4px 0; +} +div.overview li, div.framenoframe li { + display: inline; +} +div.framenoframe { + text-align: center; + font-size: x-small; +} +div.framenoframe li { + margin: 0 3px 0 3px; +} +div.overview li { + margin:3px 3px 0 3px; + padding: 4px; +} +li.selected { + background-color:#888; + color: #fff; + font-weight: bold; +} + +table.summary { + margin-bottom: 20px; +} +table.summary td, table.summary th { + font-weight: bold; + text-align: left; + padding: 3px; +} +table.summary th { + background-color:#036; + color: #fff; +} +table.summary td { + background-color:#eee; + border: 1px solid black; +} + +em { + color: #A00; +} +em.comment { + color: #390; +} +.string { + color: #009; +} + +#overview { + padding:2px; +} + +hr { + height: 1px; + color: #000; +} + +/* JXR style sheet */ +.jxr_comment +{ + color: #390; +} + +.jxr_javadoccomment +{ + color: #A00; +} + +.jxr_string +{ + color: #009; +} + +.jxr_keyword +{ + color: #000; +}