Git Product home page Git Product logo

wildfly-archetypes's Introduction

wildfly logo

WildFly Application Server

https://wildfly.org

  • Fast Startup
  • Small Footprint
  • Modular Design
  • Unified Configuration and Management

And of course Jakarta EE!

Building

Prerequisites:

  • JDK 11 or newer - check java -version
  • Maven 3.6.0 or newer - check mvn -v
  • On *nix systems, make sure that the maximum number of open files for the user running the build is at least 4096 (check ulimit -n) or more, depending on what other i/o intensive processes the user is running.

To build with your own Maven installation:

mvn install

Alternatively, you can use the Maven Wrapper script that downloads and installs (if necessary) the required Maven version to ~/.m2/wrapper and runs it from there. On Linux, run

./mvnw install

On Windows

mvnw install

Starting and Stopping WildFly

Change to the bin directory after a successful build

$ cd build/target/wildfly-[version]/bin

Start the server in domain mode

./domain.sh

Start the server in standalone mode

./standalone.sh

To stop the server, press Ctrl + C, or use the admin console

./jboss-cli.sh --connect command=:shutdown

Check 'Getting Started Guide' in the WildFly documentation for more information about how to start and stop WildFly.

Documentation

Contributing

Please see the instructions available in the contribution guide.

Build vs. Dist directories

After running mvn install, WildFly will be available in two distinct directories, build and dist.

  • The build directory contains a build of WildFly that is based on Maven artifact resolution for module configuration
  • The dist directory, on the other hand, contains a full distributable build of WildFly

Using the build directory makes iterating with subsystem or module development easier since there is no need to rebuild the whole of WildFly or copy JAR files around on every change.

The dist directory is better suited when a full build of WildFly is needed for development or test purposes.

Running the Testsuite

The testsuite module contains several submodules including the following:

  • "smoke" -- core tests that should be run as part of every build of the AS. Failures here will fail the build.
  • "api" -- tests of features that involve end user use of the public JBoss AS 8 API. Should be run with no failures before any major commits.
  • "cluster" -- tests of the WildFly HA clustering features. Should be run with no failures before any major commits.
  • "domain" -- tests of the domain management features. Should be run with no failures before any major commits.
  • "integration" -- tests of a WildFly standalone server's internals. Should be run with no failures before any major commits.
  • "spec" -- tests of features that only involve end user use of the Jakarta EE spec APIs. Should be run with no failures before any major commits.

For basic smoke tests, simply: mvn test

To run all the tests

mvn install -DallTests

Using Eclipse

  1. Install the latest version of eclipse
  2. Make sure Xmx in eclipse.ini is at least 1280M, and it's using Java 11
  3. Launch eclipse and install the m2e plugin, make sure it uses your repo configs (get it from: http://www.eclipse.org/m2e/ or install "Maven Integration for Eclipse" from the Eclipse Marketplace)
  4. In eclipse preferences Java->Compiler->Errors/Warnings->Deprecated and restricted set forbidden reference to WARNING
  5. In eclipse preferences Java->Code Style, import the cleanup, templates, and formatter configs in ide-configs/eclipse in the wildfly-core repository.
  6. In eclipse preferences Java->Editor->Save Actions enable "Additional Actions", and deselect all actions except for "Remove trailing whitespace"
  7. Use import on the root pom, which will pull in all modules
  8. Wait (m2e takes a while on initial import)

License

wildfly-archetypes's People

Contributors

boris-unckel avatar bstansberry avatar ctomc avatar darranl avatar dependabot[bot] avatar emmartins avatar fl4via avatar jamezp avatar jmesnil avatar mkjensen avatar rafabene avatar rhusar avatar soul2zimate avatar wolfganghg avatar yersan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wildfly-archetypes's Issues

"[WARNING] CP Don't override file" when generating archetype with jboss-parent 40

During the build process, there are warnings printed after updating to jboss-parent 40:

[INFO] --- archetype:3.2.1:integration-test (default-integration-test) @ wildfly-jakartaee-ear-archetype ---
[INFO] Processing Archetype IT project: multi
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: wildfly-jakartaee-ear-archetype:30.0.0.Final-SNAPSHOT
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: foo.bar
[INFO] Parameter: artifactId, Value: multi
[INFO] Parameter: version, Value: 0.0.1-SNAPSHOT
[INFO] Parameter: package, Value: foo.bar.multi
[INFO] Parameter: packageInPathFormat, Value: foo/bar/multi
[INFO] Parameter: package, Value: foo.bar.multi
[INFO] Parameter: groupId, Value: foo.bar
[INFO] Parameter: artifactId, Value: multi
[INFO] Parameter: version, Value: 0.0.1-SNAPSHOT
[INFO] Parent element not overwritten in C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\ejb\pom.xml
[INFO] Parent element not overwritten in C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\web\pom.xml
[WARNING] Don't override file C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\web\src\test\java\foo\bar\multi
[WARNING] CP Don't override file C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\web\src\main\webapp
[INFO] Parent element not overwritten in C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\ear\pom.xml
[INFO] Project created from Archetype in dir: C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi
[INFO] Invoking post-archetype-generation goals: verify

They are not shown with 39:

[INFO] --- archetype:3.1.2:integration-test (default-integration-test) @ wildfly-jakartaee-ear-archetype ---
[INFO] Processing Archetype IT project: multi
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: wildfly-jakartaee-ear-archetype:30.0.0.Final-SNAPSHOT
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: foo.bar
[INFO] Parameter: artifactId, Value: multi
[INFO] Parameter: version, Value: 0.0.1-SNAPSHOT
[INFO] Parameter: package, Value: foo.bar.multi
[INFO] Parameter: packageInPathFormat, Value: foo/bar/multi
[INFO] Parameter: package, Value: foo.bar.multi
[INFO] Parameter: groupId, Value: foo.bar
[INFO] Parameter: artifactId, Value: multi
[INFO] Parameter: version, Value: 0.0.1-SNAPSHOT
[INFO] Parent element not overwritten in C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\ejb\pom.xml
[INFO] Parent element not overwritten in C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\web\pom.xml
[INFO] Parent element not overwritten in C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi\ear\pom.xml
[INFO] Project created from Archetype in dir: C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\test-classes\projects\multi\project\multi
[INFO] Invoking post-archetype-generation goals: verify

The archetype plugin was updated from 3.1.2 to 3.2.1, which seems to cause this issue.

According to some web research, the reason might be that some filesets in the archetype-metadata.xml are overlapping. I will do further research.

Github tests fail: "Error: We have duplicated artifacts attached." with jboss-parent 40

Pull request #48 fails to run the automated test:

[INFO] --- maven-source-plugin:3.3.0:jar-no-fork (attach-sources) @ wildfly-jakartaee-ear-archetype ---
[INFO] Building jar: /home/runner/work/wildfly-archetypes/wildfly-archetypes/wildfly-jakartaee-ear-archetype/target/wildfly-jakartaee-ear-archetype-30.0.0.Final-SNAPSHOT-sources.jar
Error:  We have duplicated artifacts attached.

....
Error:  Failed to execute goal org.apache.maven.plugins:maven-source-plugin:3.3.0:jar-no-fork (attach-sources) on project wildfly-jakartaee-ear-archetype: Presumably you have configured maven-source-plugn to execute twice times in your build. You have to configure a classifier for at least on of them. -> [Help 1]

This happens with the commandline mvn install verify, but not with mvn clean install.

It seems to be caused by the upgrade from maven-source-plugin 3.1.0 to 3.3.0 in jboss-parent 40 (jboss/jboss-parent-pom#188).
When using 3.1.0, there is just a warning:

[INFO] --- source:3.1.0:jar-no-fork (attach-sources) @ wildfly-jakartaee-ear-archetype ---
[INFO] Building jar: C:\Temp\github\wildfly-archetypes\wildfly-jakartaee-ear-archetype\target\wildfly-jakartaee-ear-archetype-30.0.0.Final-SNAPSHOT-sources.jar
[WARNING] artifact org.wildfly.archetype:wildfly-jakartaee-ear-archetype:java-source:sources:30.0.0.Final-SNAPSHOT already attached, replace previous instance

The most simple workaround could be to remove the "maven-sources-plugin", because I think there is no reason to deploy a sources jar file with the archetype:


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <configuration>
        <skipSource>true</skipSource>
    </configuration>
</plugin>

What do you think?

Deprecation warning in subsystem archetype for 31.0.0.Beta1

This warning is reported when compiling a project created from the subsystem archetype with wildfly-controller 23.0.0.Beta4:
[WARNING] /C:/PathTo/wildfly-archetypes/wildfly-subsystem-archetype/testing/example-subsystem/src/main/java/com/acme/example/SubsystemAdd.java:[22,9] AbstractBoottimeAddStepHandler(org.jboss.as.controller.AttributeDefinition...) in org.jboss.as.controller.AbstractBoottimeAddStepHandler has been deprecated and marked for removal

The deprecation warning was introduced as part of https://issues.redhat.com/browse/WFCORE-6369, https://issues.redhat.com/browse/WFCORE-6407 and https://issues.redhat.com/browse/WFCORE-6419 and thus pull request: wildfly/wildfly-core#5563

A possible resolution might be taken from the change to the JaxrsSubsystemDefinition: https://github.com/wildfly/wildfly/pull/17007/files#diff-cacbc3164607eba7d1b4f86528b34b816e5ffbbfeb47b2a04c0cfa45c8532803

I have no knowledge of the subsystem internals, so I don't know how to resolve this. Might be a major rework....

@bstansberry Can I ping you, as you did the commit that fixed the JaxrsSubsystemDefinition?

Comments (POM): Change JBoss references to WildFly ?

In the POM file created by wildfly-jakartaee-webapp-archetype, the comments refer to "JBoss EAP" instead WildFly. Same thing for "version.jboss.bom" and a few other things.

Maybe it's intentional, otherwise I could change it to "WildFly" or something.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.