Git Product home page Git Product logo

starter's People

Contributors

clarenced avatar dearrudam avatar geziefer avatar hboutemy avatar ivargrimstad avatar ivonet avatar jeyvison avatar juliotobias avatar juneau001 avatar kito99 avatar m-reza-rahman avatar ondromih avatar rokon12 avatar scottkurz 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  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  avatar  avatar  avatar

starter's Issues

Add support for Gradle

Add support for generating Gradle projects, at least in the Starter UI if not also via command line (possibly via a custom CLI). Gradle support for IDEs could also be pursued via custom plugins.

Docker mountable DB path

if you run the docker image belonging to the generated project it will create the "demo" database in β€œ./opt/payara/payara5/glassfish/domains/domain1/config/jakartaee-cafe-data” which is weird.

I know that it is just a demo but still.

Support Specifications

This is the list with specs we should support:

  • Activation --> #13
  • Annotations --> #13
  • Authentication --> #13
  • Authorization --> #13
  • Batch --> #13
  • Bean Validation --> #13
  • Concurrency --> #13
  • Connectors --> #13
  • CDI --> #13
  • Enterprise Beans --> #13
  • Expression Language --> #13
  • Interceptors --> #13
  • JSON Binding --> #13
  • JSON Processing --> #13
  • Mail --> #13
  • Messaging --> #13
  • Persistence --> #13
  • Restful Web Services -> #4
  • Security --> #13
  • JSF --> #13
  • JSP --> #13
  • Servlet --> #13
  • JSTL --> #13
  • Transactions --> #13
  • WebSocket --> #13
  • XML Binding --> #13
  • XML Web Services --> #13

We can create a ticket for each one as we start to work on them. Not sure if we plan to support all of them.

If you're starting to work in one of them, please create an issue and let us know. What do you folks think?

Failed to pass tests with Java 18

I'm using openjdk version "18" 2022-03-22

The tests are not passed when I executed mvn clean package.

[] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1649422042721] [levelValue: 1000] Unsupported class file major version 62
...
java.lang.IllegalArgumentException: ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.

Also, the project wasn't deployed successfully when executed mvn clean package payara-micro:start

Add Support to Rest Web Services

Since this is the first spec to be support some questions rise:

  • Should we allow to download specific versions of the spec?
  • If yes, what would be the version cut?
  • How should we map dependency between specs?

Is there room to improve the Jakarta EE Starter..?

Hi,

in my current Java Enterprise Project I actually find myself back in this annoying discussion about: Should we use SpringBoot or Jakarta EE? In this discussion, there are these loud claims that Spring Boot is more easy to use, more modern and simply THE standard.
And even inexperienced developers could easily get started with SpringBoot. In fact this is not true and in this mentioned project we have the old problem that the inexperienced developers produce rather more unproductive and non-functional code - especially working with SpringBoot. But SpringBoot has this fancy 'Spring Boot initializr' page to get started.

When I take a look at the Eclispe Jakarte EE Starter Page I found in contrast the following advice:

  1. Download Glassfish
  2. Start the Glassfish Server
  3. Downlaod a zip file
  4. Run a Maven Command
  5. Copy the generated artefact.

As a Java EE developer for many years, I am personally fine with that. But is it possible to improve this way how a Jakarta EE project can be started?

Let's assume that a developer today knows Docker & Maven. A modern project setup should look like this:

  1. Generate a project form a maven archetype
  2. Build a new Docker image
  3. Run your Docker image

I have created this simple RestService example based on Jakarta EE 9: https://github.com/rsoika/ralphs-microservices/tree/main/jakarta9
The Jakarta EE 9 artefact in this project can be started with one command. The project runs with Docker ( on Payara or Wildfly or any other Jakata EE server).

I am not sure if this forum is the right place but it seems to be related to https://start.jakarta.ee/

Now my idea is as followed:

  • Provide a separate section for code templates like this one I mentioned.
  • Each template in this example section should include a meaningful documentation and the ability to build a custom project from an archetype.
  • Docker should serve as a prerequisite, as this is the only way to quickly integrate other servers such as databases.

Finally we can provide a catalogue listing simple startup templates where each template behaves in the same way and gives also inexperienced developers an easy start.

At the end we could also provide some generator app which generates the users project from a maven archetype and provide a download - similar to the SpringBoot initializr concept.

Let me know what you are thinking about that.

Regards
Ralph

Add Starter UI

User Input:

  • maven coordinates (group id, artifact id)
  • Jakarta EE version (8, 9 and 9.1)
  • Java SE version (8 or 11)

payara-micro command fails on binding address on Mac M1

I've tried the 1.0.0 archetype as described on https://start.jakarta.ee/ and it fails on my MacbookPro M1 (aarch64) with the following error:

[2022-04-20T20:37:18.986+0200] [] [SEVERE] [] [com.hazelcast.instance.impl.Node] [tid: _ThreadID=24 _ThreadName=RunLevelControllerThread-1650479838464] [timeMillis: 1650479838986] [levelValue: 1000] [[
  [fe80:0:0:0:d0a7:2bff:fe4b:9e9e]:6900 [development] [4.2] Can't assign requested address
java.net.BindException: Can't assign requested address
	at java.base/sun.nio.ch.Net.joinOrDrop6(Native Method)
	at java.base/sun.nio.ch.Net.join6(Net.java:741)
	at java.base/sun.nio.ch.DatagramChannelImpl.innerJoin(DatagramChannelImpl.java:1523)
	at java.base/sun.nio.ch.DatagramChannelImpl.join(DatagramChannelImpl.java:1559)
	at java.base/sun.nio.ch.DatagramSocketAdaptor.joinGroup(DatagramSocketAdaptor.java:535)
	at java.base/sun.nio.ch.DatagramSocketAdaptor.joinGroup(DatagramSocketAdaptor.java:481)
	at java.base/java.net.MulticastSocket.joinGroup(MulticastSocket.java:325)
	at com.hazelcast.internal.cluster.impl.MulticastService.createMulticastService(MulticastService.java:142)
	at com.hazelcast.instance.impl.Node.<init>(Node.java:274)
	at com.hazelcast.instance.impl.HazelcastInstanceImpl.createNode(HazelcastInstanceImpl.java:148)
	at com.hazelcast.instance.impl.HazelcastInstanceImpl.<init>(HazelcastInstanceImpl.java:117)
	at com.hazelcast.instance.impl.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:211)
	at com.hazelcast.instance.impl.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:190)
	at com.hazelcast.instance.impl.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:128)
	at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:57)
	at fish.payara.nucleus.hazelcast.HazelcastCore.bootstrapHazelcast(HazelcastCore.java:504)
	at fish.payara.nucleus.hazelcast.HazelcastCore.getInstance(HazelcastCore.java:239)
	at fish.payara.nucleus.config.ClusteredConfig.postConstruct(ClusteredConfig.java:100)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1268)
	at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:309)
	at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
	at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
	at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
	at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
	at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:680)
	at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:54)
	at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:188)
	at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:211)
	at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:334)
	at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
	at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
	at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
	at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
	at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
	at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
]]

Full stack trace here:
stacktrace.txt

Just to be sure I asked a friend with the same M1 Laptop and it also fails for him.
When I run it from within a standard java enabled docker container it all works.

I also tried it on the 1.1.0-SNAPSHOT and the same happens

Add README.md

Add a README.md file with a brief description of the project

Create initial project structure

As i raised the point in the dev list, i'm planning to send a very basic structure to the initial commit of this project. We can always base our logic in the microprofile generator if we think it's worth

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.