JavaEE showcase project.

This commit is contained in:
Tomasz Półgrabia 2021-01-04 12:21:52 +01:00
commit 561396dae4
29 changed files with 823 additions and 0 deletions

View file

@ -0,0 +1,13 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import javax.ejb.Stateless;
import java.util.Arrays;
import java.util.List;
@Stateless
public class FakeTodosDao implements TodosDao {
@Override
public List<String> findAll() {
return Arrays.asList("Todo 1", "Todo 2", "Todo 3");
}
}

View file

@ -0,0 +1,36 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.jms.ConnectionFactory;
import javax.jms.JMSContext;
import javax.jms.Queue;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@Stateless
@Path("/hello")
public class JmsSimpleMessageSendingBean implements SimpleMessageSendingBean {
private static final Logger logger = LoggerFactory.getLogger(JmsSimpleMessageSendingBean.class);
@Resource(lookup = "java:/ConnectionFactory")
private ConnectionFactory connectionFactory;
@Resource(lookup = "java:/jms/queue/MyQueue")
private Queue queue;
@Override
@Path("/say/{what}")
public void sendHello(
@PathParam("what") String what) {
try (JMSContext ctx = connectionFactory.createContext()) {
logger.info("Sending hello {}", what);
ctx.createProducer().send(queue, what);
}
}
}

View file

@ -0,0 +1,19 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import pl.tpolgrabia.trainings.javaee.javaeedemo.entities.User;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;
@Stateless
public class JpaUserDao implements UserDao {
@PersistenceContext(unitName = "my-persistence-unit")
private EntityManager em;
@Override
public List<User> findAll() {
return em.createQuery("select u from User u", User.class).getResultList();
}
}

View file

@ -0,0 +1,33 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
@MessageDriven(activationConfig = {
@ActivationConfigProperty(
propertyName = "destinationLookup",
propertyValue = "java:/jms/queue/MyQueue"),
@ActivationConfigProperty(
propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
})
public class SimpleMessageReceivingBean implements MessageListener {
private Logger logger = LoggerFactory.getLogger(SimpleMessageReceivingBean.class);
@Override
public void onMessage(Message message) {
try {
String data = message.getBody(String.class);
logger.info("Got message {}", data);
} catch (JMSException e) {
throw new IllegalStateException("JMS exception", e);
}
}
}

View file

@ -0,0 +1,8 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import javax.ejb.Local;
@Local
public interface SimpleMessageSendingBean {
void sendHello(String what);
}

View file

@ -0,0 +1,9 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import javax.ejb.Local;
import java.util.List;
@Local
public interface TodosDao {
List<String> findAll();
}

View file

@ -0,0 +1,11 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.ejb;
import pl.tpolgrabia.trainings.javaee.javaeedemo.entities.User;
import javax.ejb.Local;
import java.util.List;
@Local
public interface UserDao {
List<User> findAll();
}

View file

@ -0,0 +1,43 @@
package pl.tpolgrabia.trainings.javaee.javaeedemo.entities;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "users")
public class User implements Serializable {
private static final long serialVersionUID = -4484248656820095286L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "user_name")
private String userName;
@Column(name = "first_name")
private String firstName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}

View file

@ -0,0 +1,13 @@
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<!-- Define persistence unit -->
<persistence-unit name="my-persistence-unit">
<jta-data-source>java:/MyDataSource</jta-data-source>
<class>pl.tpolgrabia.trainings.javaee.javaeedemo.entities.User</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
</properties>
</persistence-unit>
</persistence>