Giter Club home page Giter Club logo

hammock's People

Contributors

antoinesd avatar derekm avatar immetoo2 avatar irimia-dragos avatar johnament avatar shamoh 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  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  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

hammock's Issues

Support for Metrics

Metrics is a popular tool for gather statistics for your running JVMs. The Metrics CDI project adds CDI support. Hammock should provide integration for the project.

Reassert Copyright

Reassert the copyright. Allow copyright claims to be retained by contributors for their contributions. Added a NOTICE file as well.

Load multiple properties by default

Need to load multiple property files by default. This includes the CLI, apache-deltaspike.properties and various locations of hammock.properties.

Integrate with Capsule packaging tool

Parallel Universe' Capsule (http://www.capsule.io/) is an open-source packaging and deployment tool for JVM applications.

IMO Capsule packaging is better than common fat jar created by Maven Shade plugin. Capsule provides nested jar, there are no file name conflicts, no need to merge same files into single one.

support https

Hammock should be able to secure the rest services through TLS sockets.
The configuration should be done in a property file in apache deltaspike.
The certificates should be provided by the client and loaded through the available classpath.

For example, in order to open the https port, the following properties can be placed in a hammock.property file in classpath:

webserver.port=80
webserver.secured.port=443
webserver.keystore.path=/keystore.jks
webserver.keystore.type=JKS
webserver.keystore.password=mypassword
webserver.truststore.path=/truststorejks
webserver.truststore.type=JKS
webserver.truststore.password=mypassword

Allow datasources and persistence units to share names

When #35 was brought in, it introduced an injection point for EntityManager.

This worked, however it meant that datasources and entity managers couldn't share names (the @Named annotation has this restriction). To deal with this, introduce a new @Database annotation that includes the name.

Static resource serving

It should be possible to load static resources. Currently, undertow can load from the file system in a direct URI. Figure out what would be needed to add resource loading as well from the classpath.

Static files

Great work! What do I have to do to so that undertow serves static files (css, images), too? I've tried to set a different ResourceManager on DeploymentInfo, but it doesn't work (I debugged it and ResourceManager#getResource method is never executed).

path property from ApplicationPath ignored

It seems that the ApplicationPath annotation value is ignored (from the rest Application class).

For example, the test ws.ament.hammock.rest.resteasy.ResteasyTest still passes, even if you change the class ws.ament.hammock.rest.resteasy.RestApp like this:
@ApplicationPath("/testme") @ApplicationScoped public class RestApp extends Application{ }

Expected result:
The path should be /testme/rest but instead is till /rest.

beans.xml missing

The beans.xml file is missing from the resteasy module.

For projects which will have only ws.ament.hammock:web-undertow and ws.ament.hammock:rest-resteasy the ws.ament.hammock.rest.resteasy.ResteasyServletContextAttributeProvider is not injected in weld. All requests will go though to the local files.

Add a beans.xml file in the ws.ament.hammock:rest-resteasy project.

JPA - Flyway Integration

If flyway is on the classpath, add a bean that can do flyway integration. Handle various extra options as well (properties being loaded) and what lifecycle methods should be invoked.

Spark Support for Multiple Applications

Spark Java 2.5.1 adds multiple application support. In fact, the way application was loaded in the past is broken in 2.5.1. So implement it as a multiple application tool.

Add @DataSourceDefinition support

For a better user experience with JPA and future database related feature, we should add a module allowing definition and thus automatic creation of a datasource.
Information would be read thru a CDI extension in a ProcessAnnotatedType observer.

To make this module useful we need a JNDI module (datasources are looked thru JNDI in JPA) and make sure that if we add eager instantiation of Persistence Units, it will be done after (probably in an AfterBeanDiscovery event)

Create an archetype

Use an archetype to create a project from scratch. Could even be a project generator site.

Decouple Weld and JPA

This is similar to, possibly blocking, possibly duplicate to #35

The current strategy for JPA includes native Weld support via JpaInjectionServices, this works for @PersistenceContext etc, but not well for other use cases. I want to decouple the two. add weld support if needed, but also allow it to work without Weld.

JPA Support

Add JPA support, with a built in module that brings in Hibernate.

JPA Providers - allow external datasources

The default JPA EntityManager is built using the following logic:

            PersistenceUnitInfo persistenceUnitInfo = builder
               .withClasses(jpaExtension.getEntityClasses())
               .withDataSource(dataSource)
               .loadAllProperties(createPrefix(DEFAULT_EMF),true)
               .build();
            PersistenceProvider provider = getPersistenceProvider();
            return provider.createContainerEntityManagerFactory(persistenceUnitInfo, emptyMap());

Where the datasource is loaded based on the PU's name. Other cases just use Persistence.createEntityManagerFactory(s, properties); to load the EMF. While can use the defined JPA standards for JDBC, using Hikari makes more sense by default. So this should be a supported case.

Hammock archive creator

Instead of having to call shrinkwrap directly, simplify Hammock setup by introducing a HammockArchive utility.

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.