From dcb4b67d04152e71381be146b98651f99f0e5978 Mon Sep 17 00:00:00 2001 From: Eirik Steira <eirsteir@stud.ntnu.no> Date: Fri, 13 Mar 2020 21:53:02 +0100 Subject: [PATCH 1/4] Integrate Hibernate and add some test repositories --- pom.xml | 72 ++++++++++++++----- src/main/java/NTNU/IDATT1002/App.java | 27 +++++-- .../NTNU/IDATT1002/database/DBConnection.java | 33 --------- .../java/NTNU/IDATT1002/models/Login.java | 27 ++++--- .../IDATT1002/repository/LoginRepository.java | 35 +++++++++ src/main/resources/META-INF/persistence.xml | 29 ++++++++ stale_outputs_checked | 0 7 files changed, 158 insertions(+), 65 deletions(-) delete mode 100644 src/main/java/NTNU/IDATT1002/database/DBConnection.java create mode 100644 src/main/java/NTNU/IDATT1002/repository/LoginRepository.java create mode 100644 src/main/resources/META-INF/persistence.xml delete mode 100644 stale_outputs_checked diff --git a/pom.xml b/pom.xml index 16558d8b..7df9c741 100644 --- a/pom.xml +++ b/pom.xml @@ -5,53 +5,87 @@ <artifactId>ImageApplication</artifactId> <version>1.0-SNAPSHOT</version> <properties> + <java.version>11</java.version> + <hibernate.version>5.3.6.Final</hibernate.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>${java.version}</maven.compiler.source> + <maven.compiler.target>${java.version}</maven.compiler.target> </properties> <dependencies> + + <!-- Hibernate --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>org.hibernate.javax.persistence</groupId> + <artifactId>hibernate-jpa-2.1-api</artifactId> + <version>1.0.2.Final</version> + </dependency> + + <dependency> + <groupId>javax.xml.bind</groupId> + <artifactId>jaxb-api</artifactId> + <version>2.3.0</version> + </dependency> +<!-- <dependency>--> +<!-- <groupId>org.glassfish.jaxb</groupId>--> +<!-- <artifactId>jaxb-runtime</artifactId>--> +<!-- <version>2.3.0.1</version>--> +<!-- </dependency>--> + + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> - <artifactId>slf4j-simple</artifactId> - <version>1.7.30</version> + <artifactId>slf4j-log4j12</artifactId> + <version>1.7.5</version> </dependency> + + <!-- Javafx + fxml --> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>13</version> </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>8.0.19</version> - </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>13</version> </dependency> + + <!-- MySQL Driver --> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>8.0.19</version> + </dependency> + + <!-- Metadata --> <dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.13.0</version> </dependency> + + <!-- Testing --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> - <version>RELEASE</version> - <scope>test</scope> + <version>5.6.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>RELEASE</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.zaxxer</groupId> - <artifactId>HikariCP</artifactId> - <version>3.4.2</version> + <version>4.13</version> </dependency> + </dependencies> <build> <plugins> @@ -60,7 +94,7 @@ <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> - <release>11</release> + <release>${java.version}</release> </configuration> </plugin> <plugin> diff --git a/src/main/java/NTNU/IDATT1002/App.java b/src/main/java/NTNU/IDATT1002/App.java index 5072c677..b86222a8 100644 --- a/src/main/java/NTNU/IDATT1002/App.java +++ b/src/main/java/NTNU/IDATT1002/App.java @@ -1,23 +1,42 @@ package NTNU.IDATT1002; -import NTNU.IDATT1002.database.DBConnection; +import NTNU.IDATT1002.models.Login; +import NTNU.IDATT1002.repository.LoginRepository; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; +import org.slf4j.Logger; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; import java.io.IOException; +import java.util.Optional; + public class App extends Application { private static Scene scene; + private static Logger log; + @Override public void start(Stage stage) throws IOException { - scene = new Scene(loadFXML("login")); - stage.setScene(scene); - stage.show(); +// scene = new Scene(loadFXML("login")); +// stage.setScene(scene); +// stage.show(); + + // Create our entity manager + EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("ImageApplication"); + EntityManager entityManager = entityManagerFactory.createEntityManager(); + // Create our repositories + LoginRepository loginRepository = new LoginRepository(entityManager); + // Create an author and add 3 books to his list of books + Login login = new Login(20011L, "padds", "hash", "salt"); + Optional<Login> savedAuthor = loginRepository.save(login); + savedAuthor.ifPresent(System.out::println); } public static void setRoot(String fxml) throws IOException { diff --git a/src/main/java/NTNU/IDATT1002/database/DBConnection.java b/src/main/java/NTNU/IDATT1002/database/DBConnection.java deleted file mode 100644 index 294643e1..00000000 --- a/src/main/java/NTNU/IDATT1002/database/DBConnection.java +++ /dev/null @@ -1,33 +0,0 @@ -package NTNU.IDATT1002.database; - -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; - -import java.sql.Connection; -import java.sql.SQLException; - -/** - * Class for connecting to the database. This will load configurations and create a connection pool. -*/ -public class DBConnection { - - private static HikariDataSource dataSource; - - /** - * Load configuration and setup the data source - */ - static{ - HikariConfig config = new HikariConfig("datasource.properties" ); - dataSource = new HikariDataSource(config); - } - - /** - * Establish a connection pool to the database - * - * @return Connection to the database - * @throws SQLException - */ - public static Connection getConnection() throws SQLException { - return dataSource.getConnection(); - } -} \ No newline at end of file diff --git a/src/main/java/NTNU/IDATT1002/models/Login.java b/src/main/java/NTNU/IDATT1002/models/Login.java index 02f9a9aa..edf473e1 100644 --- a/src/main/java/NTNU/IDATT1002/models/Login.java +++ b/src/main/java/NTNU/IDATT1002/models/Login.java @@ -1,9 +1,18 @@ package NTNU.IDATT1002.models; -public class Login { - private Integer id; - private User user; +import javax.persistence.*; + +@Entity +@Table +@NamedQueries({ + @NamedQuery(name = "Login.findById", + query = "SELECT a FROM Login a WHERE a.id = :id") +})public class Login { + + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; +// private User user; private String password; private String passwordHash; private String passwordSalt; @@ -11,21 +20,21 @@ public class Login { public Login() { } - public Login(int id, User user, String password, String passwordHash, String passwordSalt) { + public Login(Long id, String password, String passwordHash, String passwordSalt) { this.id = id; - this.user = user; +// this.user = user; this.password = password; this.passwordHash = passwordHash; this.passwordSalt = passwordSalt; } - public int getId() { + public Long getId() { return id; } - public User getUser() { - return user; - } +// public User getUser() { +// return user; +// } public String getPassword() { return password; diff --git a/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java b/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java new file mode 100644 index 00000000..0fc9dbce --- /dev/null +++ b/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java @@ -0,0 +1,35 @@ +package NTNU.IDATT1002.repository; + + +import NTNU.IDATT1002.models.Login; + +import javax.persistence.EntityManager; + import java.util.List; + import java.util.Optional; + +public class LoginRepository { + private EntityManager entityManager; + public LoginRepository(EntityManager entityManager) { + this.entityManager = entityManager; + } + + public Optional<Login> findById(Integer id) { + Login book = entityManager.find(Login.class, id); + return book != null ? Optional.of(book) : Optional.empty(); + } + public List<Login> findAll() { + return entityManager.createQuery("from Login").getResultList(); + } + + public Optional<Login> save(Login book) { + try { + entityManager.getTransaction().begin(); + entityManager.persist(book); + entityManager.getTransaction().commit(); + return Optional.of(book); + } catch (Exception e) { + e.printStackTrace(); + } + return Optional.empty(); + } +} \ No newline at end of file diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml new file mode 100644 index 00000000..48bca313 --- /dev/null +++ b/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,29 @@ +<persistence xmlns="http://java.sun.com/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" + version="2.0"> + + <persistence-unit name="ImageApplication" transaction-type="RESOURCE_LOCAL"> + <!-- Persistence provider --> + <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> + + <!-- Entity classes --> + <class>NTNU.IDATT1002.models.Login</class> + + <properties> + <!-- Configuring JDBC properties --> + <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" /> + <property name="javax.persistence.jdbc.url" value="jdbc:mysql://db-mysql-lon1-07155-do-user-7212587-0.a.db.ondigitalocean.com:25060/image_application" /> + <property name="javax.persistence.jdbc.user" value="doadmin" /> + <property name="javax.persistence.jdbc.password" value="s4oxtqu20e8r7tx5" /> + + <!-- Hibernate properties --> + <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/> + <property name="hibernate.hbm2ddl.auto" value="update" /> + <property name="show_sql" value="true"/> + <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/> + <property name="hibernate.format_sql" value="true"/> + <property name="hibernate.use_sql_comments" value="true"/> + </properties> + </persistence-unit> +</persistence> \ No newline at end of file diff --git a/stale_outputs_checked b/stale_outputs_checked deleted file mode 100644 index e69de29b..00000000 -- GitLab From 4edc987dae526ccb70d929339407cd1e34eb6648 Mon Sep 17 00:00:00 2001 From: Eirik Steira <eirsteir@stud.ntnu.no> Date: Sat, 14 Mar 2020 14:23:42 +0100 Subject: [PATCH 2/4] Add basic setup for LoginRepository --- src/main/java/NTNU/IDATT1002/App.java | 18 +--- .../java/NTNU/IDATT1002/models/Login.java | 38 +++---- src/main/java/NTNU/IDATT1002/models/User.java | 23 ++--- .../IDATT1002/repository/LoginRepository.java | 52 ++++++++-- .../NTNU/IDATT1002/repository/Repository.java | 17 ++-- .../IDATT1002/repository/UserRepository.java | 99 ------------------- src/main/resources/META-INF/persistence.xml | 5 +- 7 files changed, 85 insertions(+), 167 deletions(-) delete mode 100644 src/main/java/NTNU/IDATT1002/repository/UserRepository.java diff --git a/src/main/java/NTNU/IDATT1002/App.java b/src/main/java/NTNU/IDATT1002/App.java index b86222a8..3ea184e7 100644 --- a/src/main/java/NTNU/IDATT1002/App.java +++ b/src/main/java/NTNU/IDATT1002/App.java @@ -1,6 +1,5 @@ package NTNU.IDATT1002; -import NTNU.IDATT1002.models.Login; import NTNU.IDATT1002.repository.LoginRepository; import javafx.application.Application; import javafx.fxml.FXMLLoader; @@ -13,7 +12,6 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import java.io.IOException; -import java.util.Optional; public class App extends Application { @@ -24,19 +22,9 @@ public class App extends Application { @Override public void start(Stage stage) throws IOException { -// scene = new Scene(loadFXML("login")); -// stage.setScene(scene); -// stage.show(); - - // Create our entity manager - EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("ImageApplication"); - EntityManager entityManager = entityManagerFactory.createEntityManager(); - // Create our repositories - LoginRepository loginRepository = new LoginRepository(entityManager); - // Create an author and add 3 books to his list of books - Login login = new Login(20011L, "padds", "hash", "salt"); - Optional<Login> savedAuthor = loginRepository.save(login); - savedAuthor.ifPresent(System.out::println); + scene = new Scene(loadFXML("login")); + stage.setScene(scene); + stage.show(); } public static void setRoot(String fxml) throws IOException { diff --git a/src/main/java/NTNU/IDATT1002/models/Login.java b/src/main/java/NTNU/IDATT1002/models/Login.java index edf473e1..53871172 100644 --- a/src/main/java/NTNU/IDATT1002/models/Login.java +++ b/src/main/java/NTNU/IDATT1002/models/Login.java @@ -4,46 +4,36 @@ package NTNU.IDATT1002.models; import javax.persistence.*; @Entity -@Table -@NamedQueries({ - @NamedQuery(name = "Login.findById", - query = "SELECT a FROM Login a WHERE a.id = :id") -})public class Login { - - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; -// private User user; +@Table(name = "login") +public class Login { + + @Id + private String username; + + @OneToOne + @JoinColumn(name = "username", referencedColumnName = "username") + private User user; + private String password; - private String passwordHash; private String passwordSalt; public Login() { } - public Login(Long id, String password, String passwordHash, String passwordSalt) { - this.id = id; -// this.user = user; + public Login(User user, String password, String passwordSalt) { + this.user = user; this.password = password; - this.passwordHash = passwordHash; this.passwordSalt = passwordSalt; } - public Long getId() { - return id; + public User getUser() { + return user; } -// public User getUser() { -// return user; -// } - public String getPassword() { return password; } - public String getPasswordHash() { - return passwordHash; - } - public String getPasswordSalt() { return passwordSalt; } diff --git a/src/main/java/NTNU/IDATT1002/models/User.java b/src/main/java/NTNU/IDATT1002/models/User.java index eb2eea20..33b7cd66 100644 --- a/src/main/java/NTNU/IDATT1002/models/User.java +++ b/src/main/java/NTNU/IDATT1002/models/User.java @@ -1,12 +1,16 @@ package NTNU.IDATT1002.models; +import javax.persistence.*; import java.util.Date; +@Entity +@Table(name = "user") public class User { - private Integer id; - private String email; + @Id private String username; + + private String email; private String firstName; private String lastName; private String callingCode; @@ -15,8 +19,10 @@ public class User { private boolean isAdmin; private boolean isActive; - public User(int id, String email, String username, String firstName, String lastName, String callingCode, String phoneNumber, Date birthDate, boolean isAdmin) { - this.id = id; + public User() { + } + + public User(String email, String username, String firstName, String lastName, String callingCode, String phoneNumber, Date birthDate, boolean isAdmin) { this.email = email; this.username = username; this.firstName = firstName; @@ -29,8 +35,7 @@ public class User { } public User(User user) { - this(user.getId(), - user.getEmail(), + this(user.getEmail(), user.getUsername(), user.getFirstName(), user.getLastName(), @@ -40,10 +45,6 @@ public class User { user.isAdmin()); } - public Integer getId() { - return id; - } - public String getEmail() { return email; } @@ -85,6 +86,6 @@ public class User { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; User user = (User) o; - return id.equals(user.id); + return username.equals(user.username); } } diff --git a/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java b/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java index 0fc9dbce..22460df0 100644 --- a/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java +++ b/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java @@ -4,32 +4,66 @@ package NTNU.IDATT1002.repository; import NTNU.IDATT1002.models.Login; import javax.persistence.EntityManager; - import java.util.List; - import java.util.Optional; +import java.util.List; +import java.util.Optional; + + +public class LoginRepository implements Repository<Login, String> { -public class LoginRepository { private EntityManager entityManager; + public LoginRepository(EntityManager entityManager) { this.entityManager = entityManager; } - public Optional<Login> findById(Integer id) { - Login book = entityManager.find(Login.class, id); - return book != null ? Optional.of(book) : Optional.empty(); + public Optional<Login> findById(String id) { + Login login = entityManager.find(Login.class, id); + return login != null ? Optional.of(login) : Optional.empty(); } + + public Optional<Login> findByUsername(String username) { + return findById(username); + } + public List<Login> findAll() { return entityManager.createQuery("from Login").getResultList(); } - public Optional<Login> save(Login book) { + public Optional<Login> save(Login login) { try { entityManager.getTransaction().begin(); - entityManager.persist(book); + entityManager.persist(login); entityManager.getTransaction().commit(); - return Optional.of(book); + return Optional.of(login); } catch (Exception e) { e.printStackTrace(); } + + return Optional.empty(); + } + + public Optional<Login> update(Login login) { return Optional.empty(); } + + public void deleteById(String id) { + + } + + public void deleteByUsername(String username) { + deleteById(username); + } + + public void delete(Login login) { + + } + + public long count() { + return 0; + } + + public boolean exists(Login entity) { + return false; + } + } \ No newline at end of file diff --git a/src/main/java/NTNU/IDATT1002/repository/Repository.java b/src/main/java/NTNU/IDATT1002/repository/Repository.java index 326d682e..ac806fb9 100644 --- a/src/main/java/NTNU/IDATT1002/repository/Repository.java +++ b/src/main/java/NTNU/IDATT1002/repository/Repository.java @@ -1,5 +1,6 @@ package NTNU.IDATT1002.repository; +import java.util.List; import java.util.Optional; @@ -16,7 +17,7 @@ public interface Repository<T, ID> { * @param entity not null * @return the saved entity */ - T save(T entity) throws IllegalArgumentException; + Optional<T> save(T entity); /** * Updates the given entity. This will completely override the given instance. @@ -31,7 +32,7 @@ public interface Repository<T, ID> { * * @return all entities */ - Iterable<T> findAll(); + List<T> findAll(); /** * Retrieves an entity with the given id. @@ -42,18 +43,18 @@ public interface Repository<T, ID> { Optional<T> findById(ID id); /** - * Deletes an entity with the given id. + * Deletes the given entity. * - * @param id not null + * @param entity not null */ - void deleteById(ID id); + void delete(T entity); /** - * Deletes the given entity. + * Deletes an entity with the given id. * - * @param entity not null + * @param id not null */ - void delete(T entity); + void deleteById(ID id); /** * Return the number of entities. diff --git a/src/main/java/NTNU/IDATT1002/repository/UserRepository.java b/src/main/java/NTNU/IDATT1002/repository/UserRepository.java deleted file mode 100644 index e6cb49d8..00000000 --- a/src/main/java/NTNU/IDATT1002/repository/UserRepository.java +++ /dev/null @@ -1,99 +0,0 @@ -package NTNU.IDATT1002.repository; - -import NTNU.IDATT1002.models.User; - -import java.util.*; - - -/** - * User repository to support interacting with a simulated database. - */ -public class UserRepository implements Repository<User, Integer> { - - /** - * The "database". - */ - private static List<User> users = new ArrayList<>(); - - /** - * Supply repository with initial test data. - */ - static { - users.add(new User(1, "test@mail.com", "test", "Test", "Testesen", "+47", "00000000", new Date(), false)); - users.add(new User(2, "test2@mail.com", "test2", "Test2", "Testesen2", "+47", "00000001", new Date(), false)); - users.add(new User(3, "test3@mail.com", "test3", "Test3", "Testesen3", "+47", "00000002", new Date(), false)); - } - - @Override - public User save(User user) throws IllegalArgumentException { - if (user == null) - throw new IllegalArgumentException("User cannot be null"); - - User savedUser = new User(user); - users.add(savedUser); - return savedUser; - } - - @Override - public Optional<User> update(User user) { - if (user == null) - throw new IllegalArgumentException("User cannot be null"); - - Optional<User> foundUser = users.stream() - .filter(user::equals) - .findFirst(); - - if (foundUser.isPresent()) { - delete(foundUser.get()); - User updatedUser = save(user); - return Optional.of(updatedUser); - } - - return Optional.empty(); - } - - @Override - public List<User> findAll() { - return users; - } - - @Override - public Optional<User> findById(Integer id) { - return users.stream() - .filter(user -> user.getId() == id) - .findFirst(); - } - - public User findByUsername(String username) { - return users.stream() - .filter(user -> user.getUsername().equals(username)) - .findFirst() - .orElseThrow(NoSuchElementException::new); - } - - @Override - public void deleteById(Integer id) { - Optional<User> foundUser = findById(id); - foundUser.ifPresent(this::delete); - } - - @Override - public void delete(User user) { - users.remove(user); - } - - - @Override - public long count() { - return users.size(); - } - - @Override - public boolean exists(User user) { - if (user == null) - throw new IllegalArgumentException("User cannot be null"); - - return users.stream() - .anyMatch(user::equals); - } -} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 48bca313..f088ef2a 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -9,6 +9,7 @@ <!-- Entity classes --> <class>NTNU.IDATT1002.models.Login</class> + <class>NTNU.IDATT1002.models.User</class> <properties> <!-- Configuring JDBC properties --> @@ -19,11 +20,13 @@ <!-- Hibernate properties --> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/> - <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="show_sql" value="true"/> <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> + + <!-- Drop and create tables on startup --> + <property name="hibernate.hbm2ddl.auto" value="create-drop" /> </properties> </persistence-unit> </persistence> \ No newline at end of file -- GitLab From 20ce5135dac9cdc325e4a8436a9b649008b695a0 Mon Sep 17 00:00:00 2001 From: Eirik Steira <eirsteir@stud.ntnu.no> Date: Sat, 14 Mar 2020 14:26:03 +0100 Subject: [PATCH 3/4] Add hibernate and logging config --- src/main/java/NTNU/IDATT1002/App.java | 4 - .../java/NTNU/IDATT1002/models/Login.java | 40 -------- src/main/java/NTNU/IDATT1002/models/User.java | 91 ------------------- .../IDATT1002/repository/LoginRepository.java | 69 -------------- src/main/resources/META-INF/persistence.xml | 2 - 5 files changed, 206 deletions(-) delete mode 100644 src/main/java/NTNU/IDATT1002/models/Login.java delete mode 100644 src/main/java/NTNU/IDATT1002/models/User.java delete mode 100644 src/main/java/NTNU/IDATT1002/repository/LoginRepository.java diff --git a/src/main/java/NTNU/IDATT1002/App.java b/src/main/java/NTNU/IDATT1002/App.java index 3ea184e7..1a790773 100644 --- a/src/main/java/NTNU/IDATT1002/App.java +++ b/src/main/java/NTNU/IDATT1002/App.java @@ -1,6 +1,5 @@ package NTNU.IDATT1002; -import NTNU.IDATT1002.repository.LoginRepository; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; @@ -8,9 +7,6 @@ import javafx.scene.Scene; import javafx.stage.Stage; import org.slf4j.Logger; -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; import java.io.IOException; diff --git a/src/main/java/NTNU/IDATT1002/models/Login.java b/src/main/java/NTNU/IDATT1002/models/Login.java deleted file mode 100644 index 53871172..00000000 --- a/src/main/java/NTNU/IDATT1002/models/Login.java +++ /dev/null @@ -1,40 +0,0 @@ -package NTNU.IDATT1002.models; - - -import javax.persistence.*; - -@Entity -@Table(name = "login") -public class Login { - - @Id - private String username; - - @OneToOne - @JoinColumn(name = "username", referencedColumnName = "username") - private User user; - - private String password; - private String passwordSalt; - - public Login() { - } - - public Login(User user, String password, String passwordSalt) { - this.user = user; - this.password = password; - this.passwordSalt = passwordSalt; - } - - public User getUser() { - return user; - } - - public String getPassword() { - return password; - } - - public String getPasswordSalt() { - return passwordSalt; - } -} diff --git a/src/main/java/NTNU/IDATT1002/models/User.java b/src/main/java/NTNU/IDATT1002/models/User.java deleted file mode 100644 index 33b7cd66..00000000 --- a/src/main/java/NTNU/IDATT1002/models/User.java +++ /dev/null @@ -1,91 +0,0 @@ -package NTNU.IDATT1002.models; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Table(name = "user") -public class User { - - @Id - private String username; - - private String email; - private String firstName; - private String lastName; - private String callingCode; - private String phoneNumber; - private Date birthDate; - private boolean isAdmin; - private boolean isActive; - - public User() { - } - - public User(String email, String username, String firstName, String lastName, String callingCode, String phoneNumber, Date birthDate, boolean isAdmin) { - this.email = email; - this.username = username; - this.firstName = firstName; - this.lastName = lastName; - this.callingCode = callingCode; - this.phoneNumber = phoneNumber; - this.birthDate = birthDate; - this.isAdmin = isAdmin; - this.isActive = true; - } - - public User(User user) { - this(user.getEmail(), - user.getUsername(), - user.getFirstName(), - user.getLastName(), - user.getCallingCode(), - user.getPhoneNumber(), - user.getBirthDate(), - user.isAdmin()); - } - - public String getEmail() { - return email; - } - - public String getUsername() { - return username; - } - - public String getFirstName() { - return firstName; - } - - public String getLastName() { - return lastName; - } - - public String getCallingCode() { - return callingCode; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public Date getBirthDate() { - return birthDate; - } - - public boolean isAdmin() { - return isAdmin; - } - - public boolean isActive() { - return isActive; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - User user = (User) o; - return username.equals(user.username); - } -} diff --git a/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java b/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java deleted file mode 100644 index 22460df0..00000000 --- a/src/main/java/NTNU/IDATT1002/repository/LoginRepository.java +++ /dev/null @@ -1,69 +0,0 @@ -package NTNU.IDATT1002.repository; - - -import NTNU.IDATT1002.models.Login; - -import javax.persistence.EntityManager; -import java.util.List; -import java.util.Optional; - - -public class LoginRepository implements Repository<Login, String> { - - private EntityManager entityManager; - - public LoginRepository(EntityManager entityManager) { - this.entityManager = entityManager; - } - - public Optional<Login> findById(String id) { - Login login = entityManager.find(Login.class, id); - return login != null ? Optional.of(login) : Optional.empty(); - } - - public Optional<Login> findByUsername(String username) { - return findById(username); - } - - public List<Login> findAll() { - return entityManager.createQuery("from Login").getResultList(); - } - - public Optional<Login> save(Login login) { - try { - entityManager.getTransaction().begin(); - entityManager.persist(login); - entityManager.getTransaction().commit(); - return Optional.of(login); - } catch (Exception e) { - e.printStackTrace(); - } - - return Optional.empty(); - } - - public Optional<Login> update(Login login) { - return Optional.empty(); - } - - public void deleteById(String id) { - - } - - public void deleteByUsername(String username) { - deleteById(username); - } - - public void delete(Login login) { - - } - - public long count() { - return 0; - } - - public boolean exists(Login entity) { - return false; - } - -} \ No newline at end of file diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index f088ef2a..c0ff9da9 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -8,8 +8,6 @@ <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <!-- Entity classes --> - <class>NTNU.IDATT1002.models.Login</class> - <class>NTNU.IDATT1002.models.User</class> <properties> <!-- Configuring JDBC properties --> -- GitLab From 8565864d8b40632a5c17b01b7eb625a848483c97 Mon Sep 17 00:00:00 2001 From: Eirik Steira <eirsteir@stud.ntnu.no> Date: Sat, 14 Mar 2020 14:28:46 +0100 Subject: [PATCH 4/4] Remove logging from App.java --- src/main/java/NTNU/IDATT1002/App.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/NTNU/IDATT1002/App.java b/src/main/java/NTNU/IDATT1002/App.java index 1a790773..5d464e8d 100644 --- a/src/main/java/NTNU/IDATT1002/App.java +++ b/src/main/java/NTNU/IDATT1002/App.java @@ -5,7 +5,6 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; -import org.slf4j.Logger; import java.io.IOException; @@ -14,8 +13,6 @@ public class App extends Application { private static Scene scene; - private static Logger log; - @Override public void start(Stage stage) throws IOException { scene = new Scene(loadFXML("login")); -- GitLab