JAT - Java Technology

Materials and information for subject Java Technology. Subject is focused on extension of students knoledges and skills in JavaSE and JavaEE platform.

During the semester can be information modified.

Students have to develop graded task on each computer lab. Students have to colect at least half of total sum of points to be able obtain credits.

Odevzdání a Obhajoba projektu

  • Termín odevzdání projektu je do neděle 5.1.2025.
  • Projekt nahrejte do systému edison (edison.vsb.cz) v ZIP souboru limit 15M. Nahrání je možné v sekci Studium -> Seminární práce a tam už je vidět předmět a úkol.
  • Obhajoba/předvedení proběhne osobně 13.1.2025 od 13:00 Je třeba se na ni přihlásit v systému https://ees.cs.vsb.cz/exams/1037/blocks , dostanete tak přidělený přibližný čas obhajoby a nemusíte čekat celý den.

Požadavky na software

Vpředmětu budeme využívat tento software:

Přednášky

 JAT přednášky (JAT přednášky PDF)

  • Úvod. Obsah předmětu, požadavky k zápočtu. Témata projektů, požadované řešení. Literatura a další zdroje informací.
  • JavaBeans - základní vlastnosti, rozhraní, zprávy. Event-Listener model.
  • Architektury informačních systémů. Vícevrstvé architektury. Prezentační, aplikační a datová vrstva v Jakarta EE.
  • Jakarta EE - aplikační mode, principy, architektura.
  • Java Aplikační servery.
  • Struktura webové aplikace. Přehled jazyků a technologie pro vývoj ve webovém prostředí.
  • Java Servlet, zpracování požadavku, možnosti odpovědi. Filtry.
  • Rámec Spring a Spring Boot.
  • Java CDI.
  • Jakarta Faces (dříve JSF) – principy, použití, komponenty, CDI, šablony a kompozice, konverze, validace, navigace.
  • Persistence objektů. Java Persistence API a dotazovací jazyk QL. Rozšířené možnosti.
  • JTA - transakce v jazyce JAVA (Java Transaction).
  • JMS – předávání zpráv, Message-Driven Bean.

Conditions for obtaining a classified credit

  • Passing the final test.
  • Accumulate the minimum number of points per exercise.
  • The project will be rated at a maximum of 40, at least 20.
  • Exercises in weeks 2 through 12 will be divided into 36 points, with a maximum of 30 points and a minimum of 15 points
  • The final test will be evaluated at a maximum of 30 minimum to be obtained 15.
  • The total sum of points for the workout, the project and the final test must be at least 51 points.

Assignment of the semester project

Students will submit their projects at the latest on the week before the week and will be uploaded to Edison.

Web Information System meeting the following conditions:

     Web layer using JSF
     Access DB using JPA
     Session beans can be in the JavaEE server's container web
     Database tables will represent mapping of at least 4 classes. There will be at least one 1-N bond between the entity classes and there will be a childhood that will be mapped to the DB tables.
     The system will include a public and non-public part (available after login to the system)
     The system uses css styles to protect the application
     The GUI application will include components like ComboBox (SelectOne or SelectMany)
     Converters for object conversion (javax.faces.convert.Converter)
     Links between objects will be set in the GUI using components and objects, not by entering an object ID into a text box.

Final exam

A final test for day-time students will take place during the week-end exercises. This will be a computer programming test, where students will solve short programmer tasks. Each student has only one attempt to complete this test.

Hibernate Bytecode Enhancement using maven plugin

<build>
...
<plugins>
...
<plugin>
<!--
https://mvnrepository.com/artifact/org.hibernate.orm.tooling/hibernate-enhance-maven-plugin -->
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>6.2.6.Final</version>
<executions>
<execution>
<configuration>
<enableDirtyTracking>true</enableDirtyTracking>
<enableLazyInitialization>true</enableLazyInitialization>
</configuration>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>