From 026459493655c4cd956460177546833f63b80c87 Mon Sep 17 00:00:00 2001 From: Caleb Fontenot Date: Tue, 7 May 2024 11:47:54 -0500 Subject: [PATCH] push files --- .gitignore | 8 + Semester 3/Assignments/.~lock.dbase.rtf# | 1 + Semester 3/Assignments/LabFileDownload.zip | Bin 0 -> 19508 bytes .../LabFileDownload/nb-configuration.xml | 21 ++ .../Assignments/LabFileDownload/pom.xml | 48 +++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../src/main/java/beans/DownloadBean.java | 81 +++++++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 33 +++ .../webapp/resources/images/ajax-loader.gif | Bin 0 -> 2608 bytes .../webapp/resources/images/fileDownload.png | Bin 0 -> 8634 bytes .../Assignments/LabFileDownload_Dbases.zip | Bin 0 -> 20413 bytes .../nb-configuration.xml | 21 ++ .../LabFileDownload_Dbases/pom.xml | 53 +++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../main/java/beans/DownloadBeanDBase.java | 146 +++++++++++++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 38 ++++ .../webapp/resources/images/ajax-loader.gif | Bin 0 -> 2608 bytes .../webapp/resources/images/fileDownload.png | Bin 0 -> 8634 bytes Semester 3/Assignments/LabFileUpload.zip | Bin 0 -> 8384 bytes .../LabFileUpload/nb-configuration.xml | 22 ++ Semester 3/Assignments/LabFileUpload/pom.xml | 83 ++++++++ .../src/main/java/beans/FieUploadBean.java | 89 ++++++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../LabFileUpload/src/main/webapp/index.xhtml | 26 +++ .../Assignments/LabFileUpload_Dbase.zip | Bin 0 -> 10712 bytes .../LabFileUpload_Dbase/nb-configuration.xml | 21 ++ .../Assignments/LabFileUpload_Dbase/pom.xml | 53 +++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../src/main/java/beans/Database.java | 122 +++++++++++ .../src/main/java/beans/FileUploadBean.java | 197 ++++++++++++++++++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 32 +++ Semester 3/Assignments/Problem2Final2800.zip | Bin 0 -> 12285 bytes Semester 3/Assignments/TP2_CalebFontenot.zip | Bin 0 -> 52367 bytes .../nb-configuration.xml | 21 ++ .../Templates1_CalebFontenot/pom.xml | 42 ++++ .../src/main/java/beans/templatesBean.java | 32 +++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/newjsf.xhtml | 12 ++ .../src/main/webapp/problem4.xhtml | 18 ++ Semester 3/Assignments/dbase.rtf | 45 ++++ Semester 3/Assignments/dbase.sql | 37 ++++ .../nb-configuration.xml | 18 ++ .../FinalExamProblem2_CalebFontenot/pom.xml | 42 ++++ .../src/main/java/beans/JsonBean.java | 84 ++++++++ .../src/main/java/beans/JsonSupplier.java | 153 ++++++++++++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 16 ++ .../nb-configuration.xml | 21 ++ .../FinalExamProblem3_CalebFontenot/pom.xml | 48 +++++ .../src/main/java/beans/slideMenuBean.java | 50 +++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 25 +++ .../Problem2Final2800/nb-configuration.xml | 21 ++ .../Exams-Quizzes/Problem2Final2800/pom.xml | 42 ++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../src/main/java/beans/TemplatesBean.java | 32 +++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 15 ++ .../main/webapp/resources/css/cssLayout.css | 37 ++++ .../src/main/webapp/resources/css/default.css | 10 + .../template/default/bottomDefault.xhtml | 17 ++ .../template/default/contentDefault.xhtml | 16 ++ .../webapp/template/default/leftDefault.xhtml | 14 ++ .../template/default/rightDefault.xhtml | 10 + .../webapp/template/default/topDefault.xhtml | 13 ++ .../src/main/webapp/template/layout.xhtml | 59 ++++++ .../Printed HTMLs/page1.html | 59 ++++++ .../nb-configuration.xml | 21 ++ .../ProgrammingExam1_CalebFontenot/pom.xml | 48 +++++ .../src/main/java/beans/Problem1Bean.java | 50 +++++ .../src/main/java/beans/Problem3Bean.java | 53 +++++ .../JakartaRestConfiguration.java | 13 ++ .../resources/JakartaEE10Resource.java | 20 ++ .../main/resources/META-INF/persistence.xml | 7 + .../src/main/webapp/WEB-INF/beans.xml | 6 + .../src/main/webapp/WEB-INF/glassfish-web.xml | 25 +++ .../src/main/webapp/WEB-INF/web.xml | 24 +++ .../src/main/webapp/index.xhtml | 13 ++ .../src/main/webapp/page1.xhtml | 31 +++ .../src/main/webapp/page2.xhtml | 37 ++++ .../src/main/webapp/page3.xhtml | 17 ++ .../src/main/webapp/template1.xhtml | 11 + .../ZIPs/FinalExamProblem1_CalebFontenot.zip | Bin 0 -> 12769 bytes .../ZIPs/FinalExamProblem2_CalebFontenot.zip | Bin 0 -> 11388 bytes .../ZIPs/FinalExamProblem3_CalebFontenot.zip | Bin 0 -> 9770 bytes 124 files changed, 3240 insertions(+) create mode 100644 Semester 3/Assignments/.~lock.dbase.rtf# create mode 100644 Semester 3/Assignments/LabFileDownload.zip create mode 100644 Semester 3/Assignments/LabFileDownload/nb-configuration.xml create mode 100644 Semester 3/Assignments/LabFileDownload/pom.xml create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/java/beans/DownloadBean.java create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/webapp/index.xhtml create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/webapp/resources/images/ajax-loader.gif create mode 100644 Semester 3/Assignments/LabFileDownload/src/main/webapp/resources/images/fileDownload.png create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases.zip create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/nb-configuration.xml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/pom.xml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/beans/DownloadBeanDBase.java create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/index.xhtml create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/resources/images/ajax-loader.gif create mode 100644 Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/resources/images/fileDownload.png create mode 100644 Semester 3/Assignments/LabFileUpload.zip create mode 100644 Semester 3/Assignments/LabFileUpload/nb-configuration.xml create mode 100644 Semester 3/Assignments/LabFileUpload/pom.xml create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/java/beans/FieUploadBean.java create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/JakartaRestConfiguration.java create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Assignments/LabFileUpload/src/main/webapp/index.xhtml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase.zip create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/nb-configuration.xml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/pom.xml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/JakartaRestConfiguration.java create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/Database.java create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/FileUploadBean.java create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/index.xhtml create mode 100644 Semester 3/Assignments/Problem2Final2800.zip create mode 100644 Semester 3/Assignments/TP2_CalebFontenot.zip create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/nb-configuration.xml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/pom.xml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/beans/templatesBean.java create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/JakartaRestConfiguration.java create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/newjsf.xhtml create mode 100644 Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/problem4.xhtml create mode 100644 Semester 3/Assignments/dbase.rtf create mode 100644 Semester 3/Assignments/dbase.sql create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/nb-configuration.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/pom.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonBean.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonSupplier.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/JakartaRestConfiguration.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/index.xhtml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/nb-configuration.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/pom.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/beans/slideMenuBean.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/JakartaRestConfiguration.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/index.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/nb-configuration.xml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/pom.xml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/JakartaRestConfiguration.java create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/beans/TemplatesBean.java create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/index.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/cssLayout.css create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/default.css create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/bottomDefault.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/contentDefault.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/leftDefault.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/rightDefault.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/topDefault.xhtml create mode 100644 Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/layout.xhtml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/Printed HTMLs/page1.html create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/nb-configuration.xml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/pom.xml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem1Bean.java create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem3Bean.java create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/JakartaRestConfiguration.java create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/resources/JakartaEE10Resource.java create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/resources/META-INF/persistence.xml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/web.xml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/index.xhtml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page1.xhtml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page2.xhtml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page3.xhtml create mode 100644 Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/template1.xhtml create mode 100644 Semester 3/ZIPs/FinalExamProblem1_CalebFontenot.zip create mode 100644 Semester 3/ZIPs/FinalExamProblem2_CalebFontenot.zip create mode 100644 Semester 3/ZIPs/FinalExamProblem3_CalebFontenot.zip diff --git a/.gitignore b/.gitignore index 804d61f..3cb27ca 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,11 @@ /Semester 3/Assignments/TermProject1_CalebFontenot copy/target/ /Semester 3/Assignments/TermProject2_CalebFontenot/target/ /Semester 3/Exams-Quizzes/ProgrammingQuiz1_CalebFontenot/target/ +/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/target/ +/Semester 3/Assignments/LabFileUpload/target/ +/Semester 3/Assignments/LabFileUpload_Dbase/target/ +/Semester 3/Assignments/LabFileDownload/target/ +/Semester 3/Assignments/LabFileDownload_Dbases/target/ +/Semester 3/Exams-Quizzes/Problem2Final2800/target/ +/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/target/ +/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/target/ diff --git a/Semester 3/Assignments/.~lock.dbase.rtf# b/Semester 3/Assignments/.~lock.dbase.rtf# new file mode 100644 index 0000000..7b16c0a --- /dev/null +++ b/Semester 3/Assignments/.~lock.dbase.rtf# @@ -0,0 +1 @@ +Caleb Fontenot,caleb,caleb-gaming-laptop-archlinux,29.04.2024 10:04,file:///home/caleb/.config/libreoffice/4; \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileDownload.zip b/Semester 3/Assignments/LabFileDownload.zip new file mode 100644 index 0000000000000000000000000000000000000000..da4aaa022dd0552994c993ad002918b8d0bb2816 GIT binary patch literal 19508 zcmbt+1yo(h()GQ#2G`*3?jGFT-7UDg1_+Q4G`I%0AR)NBy9C!@!QFqDnfH;&n>SDX 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 s|H>wR + + + + + 10-web + gfv700ee10 + Facelets + ide + + diff --git a/Semester 3/Assignments/LabFileDownload/pom.xml b/Semester 3/Assignments/LabFileDownload/pom.xml new file mode 100644 index 0000000..746a2d0 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + asdv + LabFileDownload + 1 + war + LabFileDownload-1 + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + org.primefaces + primefaces + 12.0.0 + jakarta + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java b/Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java new file mode 100644 index 0000000..78d0f2c --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package asdv.labfiledownload; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java b/Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..7f4b933 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package asdv.labfiledownload.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Assignments/LabFileDownload/src/main/java/beans/DownloadBean.java b/Semester 3/Assignments/LabFileDownload/src/main/java/beans/DownloadBean.java new file mode 100644 index 0000000..798212d --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/java/beans/DownloadBean.java @@ -0,0 +1,81 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ +package beans; + +import jakarta.inject.Named; +import jakarta.enterprise.context.SessionScoped; +import jakarta.faces.application.FacesMessage; +import jakarta.faces.context.FacesContext; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; +import java.nio.file.Path; +import java.nio.file.Paths; +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; +import org.primefaces.util.SerializableSupplier; + +/** + * + * @author asdv5 + */ +@Named(value = "downloadBean") +@SessionScoped +public class DownloadBean implements Serializable +{ + private StreamedContent fileStreamContent; + + private void download() + { + String directory = "/media/DataEXT4/WebDev/pdf"; + try + { + Path path = Paths.get(directory + "/" + "book1.pdf"); + File file = new File(path.toAbsolutePath().toString()); + InputStream inputStream + = new FileInputStream(file.getAbsoluteFile()); + + + + this.fileStreamContent + = DefaultStreamedContent.builder() + .name("book1.pdf") + .contentType("application/pdf") + + .stream(new SerializableSupplier() + { + @Override + public InputStream get() + { + return inputStream; + } + }) + .build(); + + } + catch (IOException e) + { + + System.out.println(e); + + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Failed to download file.", + e.toString() + ) + ); + } + + } + + public StreamedContent getFileStreamContent() + { + download(); + return fileStreamContent; + } +} diff --git a/Semester 3/Assignments/LabFileDownload/src/main/resources/META-INF/persistence.xml b/Semester 3/Assignments/LabFileDownload/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/web.xml b/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Assignments/LabFileDownload/src/main/webapp/index.xhtml b/Semester 3/Assignments/LabFileDownload/src/main/webapp/index.xhtml new file mode 100644 index 0000000..a734ed4 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload/src/main/webapp/index.xhtml @@ -0,0 +1,33 @@ + + + + + Download + + + + + + + + + + + + + + + + + + diff --git a/Semester 3/Assignments/LabFileDownload/src/main/webapp/resources/images/ajax-loader.gif b/Semester 3/Assignments/LabFileDownload/src/main/webapp/resources/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..20e04a28777fe2456f3de595008d455bd3ebb173 GIT binary patch literal 2608 zcmdVcdr(tX9tZGC9yiG~=H_*Q-0(;+D5LUNs}!o+fm~im1%gl;8toD;2?2}7G-{CT z3Ze*zE#*-ZT1Q?j5354ef=VIfsi5+R8cLQ35_ER0b=}rccK5QuZf9rz*zW91`$x~; zXXc#w%nzb~CTcs0wtiw{l6d-zXznH~c4Gb^5t>D;RuhQ_i2ez}P(@UnC6W&j3x6XrKOkf# zV(=F6>^bq;ej+%N0DiG0UR)LznUsiyDsZL49K}_?b4N&5CCv7ELR`HXVR(U+*Gr~tFOsu3X`09BTRGI5%Owc z^TAyI9i7`sR&ClAbWOV+?Moq}k2^jRLV+ldtxV5B_AN_*b}{mlEEr+~BsT%7JH~_} z(()M`u389s7HB9**+9+S9oaPLRt<-@7vpjC^z!W5ix@XMO3&&}VCkdviUADP$LLRA zZ`I56Wfp*~mw$a7wAyVNkUDOMZhx#CvE2NW+-D!skV#z@vz`RBE6ZSN!Bi-RkgUR8)PC)+h_fwRY?-Dl^N2 zaZ1sivRDh|(xd3k<@cmO2r$qN|RiNIw1Y!47%Ne}VSA6Y-xu8fFIeqs|c}B`L2mGei3p@PiERq>Ao@sX2pjwNW^$BjE#8 zG!A!1z<3PaFaY5)yktPi#^ny@eyd;}aVK|Kh3F&31^kO{ z@DbAAqE!Cl$*9?rCZ0Cf(V{%veGdN|pw*x8%6&uO((zr?MAdTel_Y?l8B_bRlIvf$N1R^(xx2kp z%Ws6kWCARe|6M=J1MtBLPW8^G$xB4;9nd{cBWEuD;dKH2(h3?(^X?FY*Bv@YWipDJ zf9`ko3y#tMGRpHh^9k-Ws%Vtb$igp;3r1f{sg$}V#!@;%;zyTCwl5h0MIwxZu6XcT zVX0sA&dK@$7kY*0^_?CK17z?xl2-Tpd$Y?CxZ*h_4l6K|4*SNQ9R0Nz@sX)1h4q#S zbhS;nS%DiWs{0%wxId&y{RS0U%}O%-4RWXZ5`IdryJPMRRN`6}eGmNcnnYajZpvWn z(Uoy0fy3ymOJ8tUk?V&2hrZ=C`Z1*d`uUbE`Qck0_GA=k-baI9nijzq% zRUC$DI1>5skiR_jrT=WNZJ6%3egJoll9vcU4*WZ^oslHXedy{08G+EJl7qFhC;ZW3H`h7-lL-EAC$a4NrD@%8(7&+Ii2 ze{YsON5xymZK_xtp0_lRan}5ZGG63%6_Z_7WE0$P(212sGxy8CS@By`Y}saHaaVAKu8=0Y^)0j zkc8&Y9Nk^lyMNTtRn^r!)!o&j5$LDqRaL$9)?07a_jkW<)d-~&N9m>tX zTfI;SA(B;Xj^!vdM={l{T2$qt+3S4ZlLd}4z+97xY{SwlBQ(VTKKK&Q65BNJk1|C5 zlmtrwF5pDB%`ib`28e*K14g9iRGHu?=yOAX#JhkESdn7W1QRsl0|-2cH-Ijn2j~V0 zG}Z)1DSwJez6q3onaH`I%u1OUAY%6=9s~3M13({DCP*^CQD(@WqITb<3clgjJ9rvE z2q8okEzphz=m&VlHUvP!oh=-%N4x9 zQ1}CjUKT%&2avNJLo(v5jX*P=iw`9I{48x^?J~BXjheYS5NTc4>FezU4}%IGCQ*MZ z6E&L$NIHT=fJ!9|{Mi{He(cpX%M7#Chj*%XUA2R{*T>prXq$RXrVAQe;cN4tg=2?8 zUZmC;&rGc(f&wN8!ob))^U(s?rM_-`{D!Tauim6?yVUkgUYm*P_Y*kaEji&WX97ut zefg>U_;H@V&nE3zK~Fu?2GFgTfW+l3-@F|LsE!~N>}ItA&rLuQ z%of2v%x0h&yPp}5d1eX@y9r3E%R}9_3Vc@3+cg98g$+7t0$K|B;vF`wYob2$x!L-i zrQNLU=NZk33CLUJx9s@M25K9iHwE}SG6Nkj0nLNo4#+=$@@H&)?mi~1vF3-}2K5^Y zdDV)y@~)FkO>c0RoWo`*XA{t2@Dp{mQ{jp7eatM^Su%W5^8;^#M)$qIW7GHYR_E;) zdRNW)`2=z!%FzTg20sVv)Cj6KGVXP@OqcW*^>E3{%&6NP-u_CSTJ99|fo!O%4{2}WFEOWI@5HRm?~2+B*Fkq_oPuu$?(8XC5|gNG*!m59T1{*z*{i|Ilj=_5fhMl>{T|bYX*D(({?yCT}C$~vY-%# zcc!ag@a{i41t}y#2qfNCAi{A4{|ga3PgS-1N}*6FrEqakO7YLXx`(o9dJPPT224zs zF-^Ovq);xJAxHlqcN36$>{T}3re2+2UokxsuxLpEp}XO)(R6T?ivpw)D4`IEe_>xW zPM?Y~fX4*NGcm4zYeS%v;Dyl=rWNr4(inH1Q?4ce@&P}qCU9MsifLmQU7&;Vm#At2 z9OWVvC?Svtgz}|diO?)WM-eFgP#gG6;QCCUNznZMr6E8`DyD<&x~YCn)0Cx;4t&d@ zvp#@VS@*bZn&r36OAav}U58zeSJ+9kkmbzpQLV#gNRH14Dq~>b?1fKHuO@OZj!k%gb zDgu7O6i7`4Yv9ohfe4629Od{LK!&P6Gy=-^ z0BTG?)d;8@>>H2Y^~9rNiJ0A&^2~7!p?pS9%Pf zOBwnA0^u`4!~tyJOnLeKS~FnC>YH!{Ln5S%%r_i4fF~(G4Ui!P+!FX1eE?U2E4`ni zNe$O^P$FOf&-MqA04jZa!DLU&1W?rg0qMF#3eN!*8NtsbRO|p9mPAk<;ETv%l>w?I zz)`N}0ff>YcmdwkA|<4bhJhrUKtt1zffFb-q^y0lt={jS&(s+wFnK&1`0bbhys%6O ziQ}tiDLfxQD1nMZ0DIkJ8*bfjK*XBJcrF z7=9{HB76-{P5y|8?H5W=(^;4jPJr+48$#mxR>06C!cQ&*V>nW&V@_b+;MZe@&;+1x z?cnDK9M|#ebO?Nn5vWN7#lt{<&u0WpYH0q4RW(hbiTWnsNTPgv0B8;Dig_I_e0j+A)QsB2&T<=|_2VP91tB7rngAZPIQ4^jM=r~|mZZL`?4)iE> z#0jLqal7Ehd-Wc^Ww~fVg$y8Ffuo#S+aKPeHUbDJ8U_Z(UMg4%89+G-+jc<+q&#xL zhdFiv8-krYo)vt&e7uy{wu`HQ;hO+~Tg?ObYTpAr9=b()jQRmp6HrYI=|V@>JO;2G zg=ML5&Eb(u`8$Eh<2nzhDX{A}fKq^lz^u3wq(Tp(03~o;w+ehT`d4-OBX|i!#moSa zJb*5J6JUW^@$(FAL;-2kXpW*2l&=o}vrBi1X=qyVgL?>p5E>QJrK_N-Q2;7t0s{44 z^$F5O7+hK13(bI1=vp<;VB0Pg(?v9?0b11-ozyb=?09O&30Fq%~o&E!LAMQsY0Z`~t5Bs+*MWy1P>jk8&{@tx30q`Vsd`TFQ<7PBL zO}{B^G$AlFopPy+)l<~~j&wZ}5d4eT{iqp;Q!Ez%)%AfWbScCBElW`@yMAPFGz`q- z)i?C`XFINADl|=_s2faFTx_%I131d@Oh7CGNQ8lPC_N1HvW!9hmZ_+e9D0idbiHG_ zv^k;tN8hfUZ{k>&l7enfo^r4)x2mF*iyLTwXbQMyF=&kus978u9P64E_HUVra@oP? zHPGad{ihcXOD2%WaXZYQ>l)p~BIS~UWmdyL9f{+=u@l<<=vY*`4v2++#McMv$gqFQ zaw(S`x{Jlg3}kaOU(7~+PT*|knsxdzIE4k>pr=rzRB|v)w`!v`Ef&TlO+a-VaSaf4 z3!)|fK#xQLmZ>O}9C`{xbbWRPm@iq>j0b1miq3c5~zcMqoNqTK3ipyB%A znMycw&Hj;0f2aa5^r{aa1UQajpr?nTZlqs3k3o-8XEK4aNjn*}M!jRd|AL`2*xQQ` zAZ2wufG)iSoZfms2vY#DFt3TJy3$_VBNKmLJ%bUg4{lSU0Mhj9eC7G1h`0f9Rf?jC)`n+gPQo*q%k^Kp0FRNCr;FnK7 z%v5;>*HyTV!tuAR>)BezaYMB&5}oWGeHKjivnoyoPB0EFfqZNvF9l21{b{VjdT^-8&04n zT=14}35D`Qz+eN!G=SG4GSV6i;O)DS{y+A?*S9s!vT3va2luh#z)p4?+{;^D)>e0I zQLbsM%#NQ=1=$0d#=g-RHr}xr$93>t#A>g&*huNUI4Xtkown#P2)_g#y|+);M)=nS z$1Zj*V{=@G8-BQneWNodO|ZCUS)LFyP5CguERJ72um7DVypvZge=SD0!Q;O>z_4&&$({={?yEx+=Yug&ju8I9#6ridDt4{YuoWWUs zN3_kZLkBo+(QsSi`pM6q;_l7c8D7=R$;X_`<)>cSR)2X=M`kh_C4fkrGc<#1-v1?5 zEm=X|VvXDW?Qu3e@=S}W-(|KSY+tjjAR$Xx?u zmHy;4#}2LFhO@rP;7}J@H+=Qh&FmYU^5xoPN#6jAd-^FkCS}_zCEKKARhY3Wl&lK2 z>x5EUm0oK7fQCLmqD|l^`sXayp=4EJ_bu7gF)isGU`gLVIPQI8Q>_2qX7nD#z+e{} z&%U0O3yzJgH*B^9*X2R^F+hvbAHD9C$Gn0o-~W&F3~HFlV*U4i#Z<`*9jI4~tYWa( z9cKPQz@lJ9fsCs0G?3FuqFvN{)W45sItGeeykcZkINs^9$#viV6%}RCHK1|LpM8;6 zu6RW%n9YJe{}_PQr9XP^wBLI-|NW0Iq1Y#RVRDAA-~J%B>v$i1)Fh`IbAtc1jyMn^ z*pJxonouwXGASjkU7|mkxSu}`Lu#C|Vl`5eD50=jhmChU$mrw@g>K2G{$w4epL}Xv zP@yp+q_xR|Iu-^-&t;MR=(+RX^q)EVHD_UTNp?Oz#`o`fBy^_wibYNyJ~kfPr)qn^2o9D7mMLIZ@c?Zc0NCbEK2_JwP$g`n?EwE#5ba5+h?WR zG(fx3pLA+I_osi$+t$1Zq~MX?J1h;e#0U_`^g`CLe&9 zgo_a9_dOIOfWD5gjxwUV1m{siG+q@?=*P^(Geb$x{* zCoNqOj_Z+~&vO5-cVL>ZcIjHKKl|$HJB1n5zU#VS=@jq*<-!12!@$&Qs2|ew6?^&C zU){i>?xj>pil06FB)ebmGICN1et+3YG%b;~tpPv9@e_&Eut=Db+4>0gCBMIXr9bto zc;?_3cRl(PrAb&=T*^)7-9T@lCsp#30M`ROtv)!;gXSy@Y)1N{v}|ygo6g&SX7w|S{4DNR&57rI+@x{^8u2n^sbZM#^>L6Df@QVjE!3S$CEp;T^EI7 z_2Ln_3r4!#PfCBn*^>$9P^2+L!XM}^7Fe@*1ckzJT^{)DUdCQ9+55W+pMT${dB@tf zqyiS*rtLSQ0U{X*`OHBMj#hZ`(Mdk~roZCc*MF$4 zgg4RvvuS~3ySy|&=ih5;B=NCk*)+pv&iEv|5ANZfhwouQUmv@lpXS(+9(oD|j$OEj z-D3y6g&_Vy!039wVEISQ%~Qu!P4ZWB{jhSuB6;haNn@yVkyw%l>p- zs>2uTr)`t_^(bf)Jd62d0y-q|X(WZ@`g6a`nuRB^dGqre9JLvruu&+M4h*oMw z7q#Ox8NNDxfQXuqNM8$jdRaO!fI@NTkjwbE;{IRlVfBKwtUu?A2t+37uc!XA+W-0K z0|eB9#5X&$)n#;X%lX$+bQbW-2lg;ADyWn^`CheXF_<#4K)I6cg2Bk(Ky6mAX$|0&k%0la3kJ9nZF(V(Jo!Ao+`5~M|K*=pz4W+-0N0cH zG*gf@6b!aowrqJ4u>4{ZXM{}Dk@o^pPu1IRF)R$uz4^q~am_h@&qd$9l;NR4)*QDG ztN#ECdV85MO{U6aAmR*0C@M&4w-P{Kv5SR$y(k6x)FOVnbClce+{!iQe4aP1eoaHQ z?cF2&IM|PF0bI8hJ0YsSR|vtOLx&h09W9@A)>-R;vR_O*COC`?5T%@?JPV!uh7Yjw zz%yL?;~Tl;FW_KZxiJJja;!T-C4eq<8F^hzmDhey-Ak^F^enoLYgP%4$2PkiDNpWU@< z*M49cn89O$kO5RiFL7=@Z;>-Iq-lmvpK%d8_dml8Ke&rep8GDknNp^`$R;>B6d9d2C(qVKxPdfvM`DeLgFz? zH!uh+0Y-o&N~v$o%*@n=f_1$7tlobs=S%uG)+Jw46T)KsiYPEK;@&>;>@OfWGq!T9(%rI{HFU1y+wfP!Jf zz`yg(JMY-AVZ*(^Aw1A0fGMCv)dy%Q3h0amsJBo18X(IxI}bd=J3f0RuR3{{vrj#R z@t)mOpav;A)ko>^*SMZ&`X2FL}ycv{rzr&8<>sJ2}U%TMT zoOj*DEL%9lAD(m^dyBuNzuRG|TuGe^=<6!dtrs|^asu0av!9#(Wiwy@*j2px_&;pu z)d$6KoKW@8%uF*eaR|#Y@&2%tL0@k#gM)(%4-d0+=~9$ZHQFM%-Me@1u8)8G<6kY8 z%K`8ccqSll{7gK_Z)t@{$G#BK32K&UKJdEJ*tvfXSA6%YeEGsZW5u!)*xmITY}diG z>{#1^uF>07V5Pl=7xu$fzH<+kfAA9C_v&|N3ikpNU|BY%X;LbcFwF|@eeZiy#}=51 zM&-bP1N+ylTX*%?*w{f}+%Gk1pB7TU0nO=Lz~P|3Ipcgj^oIBI#c$n-KE05Y&hhkh z7yOSlctz6$eLY29=B`GYUdR`|`BVPClVxgZs`P~~ zeBqjH+qUh-13r-aN#Y)VOLjj>bN89cHfI0YC0*0F^}nrWV#47YKYoap%TrjPFQ=vIzpttWZI5-&IKP@~=ZY!0Fd+V*Ye(m<# zZ{JE)^2e!y-iR( zm-vTo-@^AlwSgiAV`F1s-$IBG^k6?aF%zi%U<{7qVEJ+X$jAub<^5-K_)OE}jyvx7 z&c=-!@26Jn&rk)w=~%xJ9dVz!j!IeZz{8YkovG94{__4MTygII;Ox)+9k*WkIS_Ep zKl~k6edIEh^)F^@Y%B&cct8gwSr;rFQ?BbvvlWhMcz75$tZyv+_uO;OPp-cD>YozN z@&J%%<$0f9^yKHNPKt z{BEnUej_>}G(Z%*dJJIunYQG)w0g&JSiSgI{^tiT#I|juluS-eqG?(U&{E20pBNagXzA3rPjTefVu zcip;m8y&}qI(&iThts>A0v`^;dVp5rd`;8PG>t-`P$TvA)O@|ARMF&3l%igK)X_`Z zA_ORf5E6yLGEE%YMw60}kr6aas~hK=rpZ0`+;hj}mtXz^;@*B#^4rexWuYU&1SBbt zaKkWSnjs2o67WW=aHEve25Aft&;EJ&f7`Nf94{4o{PD}`N`1Lpc7O7dpM2-aE3f=F zYSn(OS-vbZCk!wbVPaHmM@>dOO3Uyyw~SkbAFB!(!L~3Aox#DuRH-kOO7_h+-+ZGV z>ZRHI0DPM{03VJ}4Ujk0(*kMFzsfY#YxAo=TA|a-mS6u za|J%U1Q{T23b1lrm)_o9fSM`Y%Pza@%Uic@-9;_<(In5DgAW~KfWw_0o(qa<1|bCf z{rxfN-?L}Wu1hYtEF6_>!yn?y6DDoxg4Z)1Mrh8 zcypcDX@#;*2e$h(-v^%I-lPzwZj0JHNbrL2a-TH3Kgq! z1uA@H%QQ{*iYu=8;tzlL!)??~=O)9vc>_MQ#sG@oPw03*D4cM4F;W_HM9ZPd0aE|~ z0V_#FK~&`AqEsr`9I@x-w9}izr?S3=oun0ZMqF2k+@u{1Vvv z!xrObp-c>*lu|;7K>b^IKNNp|8c+I@4De#5;5h`sU{d``N08i^SDt<&YE=W^@0a~P z0`Old43K03JF=aZ&R#vr2 zkSy@x0Xz$-$TloT67T^v%>dzrwQt<8 M07*qoM6N<$g5JP_^#A|> literal 0 HcmV?d00001 diff --git a/Semester 3/Assignments/LabFileDownload_Dbases.zip b/Semester 3/Assignments/LabFileDownload_Dbases.zip new file mode 100644 index 0000000000000000000000000000000000000000..eaa9628fd9ac3d4deecc433358c7d81e410c6a10 GIT binary patch literal 20413 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 + + + + + 10-web + gfv700ee10 + Facelets + ide + + diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/pom.xml b/Semester 3/Assignments/LabFileDownload_Dbases/pom.xml new file mode 100644 index 0000000..5fa6fbf --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/pom.xml @@ -0,0 +1,53 @@ + + 4.0.0 + asdv + LabFileDownload_Dbases + 1 + war + LabFileDownload_Dbases + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + org.primefaces + primefaces + 12.0.0 + jakarta + + + com.mysql + mysql-connector-j + 8.3.0 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java new file mode 100644 index 0000000..78d0f2c --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package asdv.labfiledownload; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..7f4b933 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/asdv/labfiledownload/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package asdv.labfiledownload.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/beans/DownloadBeanDBase.java b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/beans/DownloadBeanDBase.java new file mode 100644 index 0000000..9c2213d --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/java/beans/DownloadBeanDBase.java @@ -0,0 +1,146 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ +package beans; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.inject.Named; +import jakarta.enterprise.context.SessionScoped; +import jakarta.faces.application.FacesMessage; +import jakarta.faces.context.FacesContext; +import java.io.Serializable; +import java.io.InputStream; +import java.sql.Blob; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; +import org.primefaces.util.SerializableSupplier; + +@Named(value = "downloadBeanDBase") +@SessionScoped +public class DownloadBeanDBase implements Serializable +{ + private StreamedContent fileStreamContent; + Connection connection; + + public DownloadBeanDBase() + { + } + + @PostConstruct + public void init() + { + try + { + connection = connection(); + } + catch (Exception e) + { + System.out.println(e); + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Failed to connect to the database.", + e.toString() + ) + ); + } + } + + @PreDestroy + public void destroy() + { + try + { + connection.close(); + } + catch (SQLException e) + { + System.out.println(e); + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_WARN, + "Failed to close the connection with the database.", + e.toString() + ) + ); + } + } + + public void download() + { + try + { + ResultSet results = getRsultSetFromDatabase(); + ResultSetMetaData meta = results.getMetaData(); + results.next();//position the cursor + Blob blob = results.getBlob("binary_data"); + InputStream inputStream = blob.getBinaryStream(); + this.fileStreamContent + = DefaultStreamedContent.builder() + .name("TEST 4.pdf") + .contentType("application/pdf") + .stream(new SerializableSupplier() + { + @Override + public InputStream get() + { + return inputStream; + } + }) + .build(); + } + catch (SQLException e) + { + System.out.println(e); + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Failed to download file.", + e.toString() + ) + ); + } + } + + public StreamedContent getFileStreamContent() + { + download(); + return fileStreamContent; + } + + private ResultSet getRsultSetFromDatabase() throws SQLException + { + PreparedStatement ps = null; + ResultSet rs = null; + String sqlStr = "SELECT * from binary_files where key_ai = 2 "; + ps = connection.prepareStatement(sqlStr); + rs = ps.executeQuery(); + return rs; + } + + private Connection connection() + throws SQLException, + ClassNotFoundException, InstantiationException, IllegalAccessException + { + String databaseName = "downloads"; + String userName = "java"; + String password = "java"; + String URL2 = "com.mysql.jdbc.Driver"; + Connection con = null; + Class.forName(URL2).newInstance(); + String ip = "localhost"; //internet connection + String url = "jdbc:mysql://" + ip + ":3306/" + databaseName; + url += "?allowPublicKeyRetrieval=true&useSSL=false"; + con = DriverManager.getConnection(url, userName, password); + con.setReadOnly(false); + return con; + } +} diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/resources/META-INF/persistence.xml b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/web.xml b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/index.xhtml b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/index.xhtml new file mode 100644 index 0000000..3c015c9 --- /dev/null +++ b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/index.xhtml @@ -0,0 +1,38 @@ + + + + + Download from database + + + + + + + + + + + + + + + + + + + + + + diff --git a/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/resources/images/ajax-loader.gif b/Semester 3/Assignments/LabFileDownload_Dbases/src/main/webapp/resources/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..20e04a28777fe2456f3de595008d455bd3ebb173 GIT binary patch literal 2608 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 M07*qoM6N<$g5JP_^#A|> literal 0 HcmV?d00001 diff --git a/Semester 3/Assignments/LabFileUpload.zip b/Semester 3/Assignments/LabFileUpload.zip new file mode 100644 index 0000000000000000000000000000000000000000..9f636f77b162f5afa0f2eb0e6dd8c745634db7f2 GIT binary patch literal 8384 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 s3m0VKao=Kufz literal 0 HcmV?d00001 diff --git a/Semester 3/Assignments/LabFileUpload/nb-configuration.xml b/Semester 3/Assignments/LabFileUpload/nb-configuration.xml new file mode 100644 index 0000000..fc0cdd3 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/nb-configuration.xml @@ -0,0 +1,22 @@ + + + + + + 10-web + gfv700ee10 + Facelets + JDK_11 + ide + + diff --git a/Semester 3/Assignments/LabFileUpload/pom.xml b/Semester 3/Assignments/LabFileUpload/pom.xml new file mode 100644 index 0000000..f0d8210 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/pom.xml @@ -0,0 +1,83 @@ + + 4.0.0 + ripoll + LabFileUpload + 1.0 + war + LabFileUpload-1.0 + + + 11 + 11 + ${project.build.directory}/endorsed + UTF-8 + false + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + org.primefaces + primefaces + 12.0.0 + jakarta + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + ${endorsed.dir} + + + + + org.apache.maven.plugins + maven-war-plugin + 2.3 + + false + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.6 + + + validate + + copy + + + ${endorsed.dir} + true + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + jar + + + + + + + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileUpload/src/main/java/beans/FieUploadBean.java b/Semester 3/Assignments/LabFileUpload/src/main/java/beans/FieUploadBean.java new file mode 100644 index 0000000..54482b7 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/java/beans/FieUploadBean.java @@ -0,0 +1,89 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ +package beans; + +import jakarta.inject.Named; +import jakarta.enterprise.context.SessionScoped; +import jakarta.faces.application.FacesMessage; +import jakarta.faces.context.FacesContext; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; +import java.nio.file.FileAlreadyExistsException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.file.UploadedFile; + +/** + * + * @author lisset + */ +@Named(value = "fileUploadBean") +@SessionScoped +public class FieUploadBean implements Serializable { + + private UploadedFile file; + + public UploadedFile getFile() { + return file; + } + + public void setFile(UploadedFile file) { + this.file = file; + } + + public void handleFileUpload(FileUploadEvent event){ + System.out.println("handleFileUpload"); + file = event.getFile(); + + if (writeToAnyExistingDirectory(file)) + { + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Upload Successful", + file.getFileName() + " is uploaded.")); + } + else + { + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Failed to upload.", + file.getFileName() + " was not uploaded.")); + } + + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, new FacesMessage( + FacesMessage.SEVERITY_INFO, + "upload succesful", + file.getFileName() + " is uploaded")); + writeToAnyExistingDirectory(file); + } + + public boolean writeToAnyExistingDirectory(UploadedFile f) { + Path path = Paths.get("/media/DataEXT4/WebDev/"); + String s = ""; + if (Files.exists(path)) { + s = path.toString(); + } + try (InputStream input = f.getInputStream()) { + String fileName = f.getFileName(); + Files.copy(input, new File(s, fileName).toPath()); + } catch (FileAlreadyExistsException e) { + System.out.println(e); + return false; + } + catch (IOException e) { + System.out.println("------ failed to upload file" + e); + return false; + } + return true; + } +} diff --git a/Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/JakartaRestConfiguration.java b/Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/JakartaRestConfiguration.java new file mode 100644 index 0000000..678a711 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package ripoll.labfileupload; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/resources/JakartaEE10Resource.java b/Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..7b1c4da --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/java/ripoll/labfileupload/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package ripoll.labfileupload.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Assignments/LabFileUpload/src/main/resources/META-INF/persistence.xml b/Semester 3/Assignments/LabFileUpload/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/web.xml b/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Assignments/LabFileUpload/src/main/webapp/index.xhtml b/Semester 3/Assignments/LabFileUpload/src/main/webapp/index.xhtml new file mode 100644 index 0000000..e0704a5 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload/src/main/webapp/index.xhtml @@ -0,0 +1,26 @@ + + + + + File Uploads + + + + + + + + + + + + diff --git a/Semester 3/Assignments/LabFileUpload_Dbase.zip b/Semester 3/Assignments/LabFileUpload_Dbase.zip new file mode 100644 index 0000000000000000000000000000000000000000..fedc8d05d789c9728ea8396028e58af8a908912f GIT binary patch literal 10712 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 Z@7E{9&GiBR;N1K`ZVFWM%_;!k{{bY9jiLYm literal 0 HcmV?d00001 diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/nb-configuration.xml b/Semester 3/Assignments/LabFileUpload_Dbase/nb-configuration.xml new file mode 100644 index 0000000..c678822 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/nb-configuration.xml @@ -0,0 +1,21 @@ + + + + + + 10-web + gfv700ee10 + JSP + ide + + diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/pom.xml b/Semester 3/Assignments/LabFileUpload_Dbase/pom.xml new file mode 100644 index 0000000..dea60d5 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/pom.xml @@ -0,0 +1,53 @@ + + 4.0.0 + asdv + LabFileUpload_Dbase + 1 + war + LabFileUpload_Dbase + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + org.primefaces + primefaces + 12.0.0 + jakarta + + + com.mysql + mysql-connector-j + 8.3.0 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/JakartaRestConfiguration.java b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/JakartaRestConfiguration.java new file mode 100644 index 0000000..476c53f --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package asdv.labfileupload; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/resources/JakartaEE10Resource.java b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..7518ae1 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/asdv/labfileupload/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package asdv.labfileupload.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/Database.java b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/Database.java new file mode 100644 index 0000000..8230bde --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/Database.java @@ -0,0 +1,122 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package beans; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +/** + * + * @author ASDV1 + */ +public class Database +{ + + public static int saveFile( String directory, String fileName, String extension) + { + int count = -1; + File f = null; + Connection con = connection(); + if (con == null) + { + System.out.println("cannot connect to database"); + return -1; + } + try + { + PreparedStatement ps = null; + + String sqlStr = "INSERT INTO binary_files (file_name , file_extension, size_kb, binary_data )VALUES(?,?,?,?)"; + ps = con.prepareStatement(sqlStr); + + Path path = Paths.get(directory + "/" + fileName); + f = path.toFile(); + long fileLength = f.length(); + ps.setString(1, fileName); + ps.setString(2, extension); + ps.setLong(3, fileLength/1000); + + FileInputStream fis = new FileInputStream(f); + ps.setBinaryStream(4, fis, fileLength); + //execute + count = ps.executeUpdate(); + } + catch ( FileNotFoundException e ) + { + System.out.println("method Database:saveFile " + e); + + } + catch (SQLException e) + { + System.out.println("method Database:saveFile " + e); + } + finally + { + try + { + if ( f!= null ) + f.delete();//delete the uploaded file + con.close(); + } + catch (SQLException e) + { + System.out.println("connection did not close...method Database:saveFile " + e); + return -1; + } + } + + return count; + + } + + + private static Connection connection() //throws InstantiationException, IllegalAccessException + { + String databaseName = "downloads"; + String userName = "java"; + String password = "java"; + String URL2 = "com.mysql.jdbc.Driver"; + Connection con = null; + try + {// Load Sun's jdbc driver + Class.forName(URL2).newInstance(); + System.out.println("JDBC Driver loaded!"); + } + catch (Exception e) // driver not found + { + System.err.println("Unable to load database driver"); + System.err.println("Details : " + e); + return null; + } + String ip = "localhost"; //internet connection + String url = "jdbc:mysql://" + ip + ":3306/" + databaseName; + url += "?allowPublicKeyRetrieval=true&useSSL=false"; + try + { + con = DriverManager.getConnection(url, userName, password); + con.setReadOnly(false); + } + catch (Exception e) + { + System.err.println(e.toString()); + return null; + } + System.out.println("connection successfull"); + return con; + } + + public static void main(String[] args) + throws SQLException + { + connection(); + } +} diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/FileUploadBean.java b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/FileUploadBean.java new file mode 100644 index 0000000..5dc4da0 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/java/beans/FileUploadBean.java @@ -0,0 +1,197 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ +package beans; + +import jakarta.enterprise.context.SessionScoped; +import jakarta.faces.application.FacesMessage; +import jakarta.faces.context.FacesContext; +import jakarta.inject.Named; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; +import java.nio.file.FileAlreadyExistsException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.file.UploadedFile; + +/** + * + * @author asdv5 + */ +@Named(value = "fileUploadBean") +@SessionScoped +public class FileUploadBean implements Serializable +{ + private UploadedFile file; + + public void handleFileUpload(FileUploadEvent event) + { + System.out.println("handleFileUpload"); + UploadedFile file = event.getFile(); + if (uploadToDatabase(file)) + { + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_INFO, + "upload successful", + file.getFileName() + " is uploaded.")); + } + else + { + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Failed to upload.", + file.getFileName() + " was not uploaded.")); + } + } + + public static boolean fileExists(Path path, String fileName) + { + Path p = Paths.get(path.toString() + "/" + fileName); + System.out.println(p); + if (Files.exists(p)) + { + return true; + } + return false; + } + + /** + * Writes the file in Uploaded file into MAC existing directory + * /Users/asdv5/user1") + * + * @param f the file to be uploaded. + * @return the filename written, or null if nothing was written + */ + private String writeToAnyExistingDirectory(UploadedFile f) + { + InputStream input = null; + Path path = Paths.get("/media/DataEXT4/WebDev/"); + String s = ""; + String fileName = ""; + if (Files.exists(path)) + { + s = path.toString(); + } + try + { + input = f.getInputStream(); + fileName = f.getFileName(); + Files.copy(input, new File(s, fileName).toPath()); + System.out.println("---success saving file" + s + " " + fileName); + } + catch (FileAlreadyExistsException e) + { + int i = 1; + do + { + fileName = f.getFileName(); + int indexOfLastDot = fileName.lastIndexOf("."); + if (indexOfLastDot != -1) + { + String s1 = fileName.substring(0, indexOfLastDot); + s1 += "_" + i; + s1 += fileName.substring(indexOfLastDot); + fileName = s1; + ++i; + } + else + { + fileName += "_1"; + } + } + while (fileExists(path, fileName)); + try + { + input.close(); + input = f.getInputStream(); + Files.copy(input, new File(s, fileName).toPath()); + System.out.println("---success saving file" + s + " " + fileName); + } + catch (IOException ex) + { + System.out.println(ex); + return null; + } + return fileName; + } + catch (IOException e) + { + System.out.println("---failed to upload file " + e); + return null; + } + finally + { + try + { + input.close(); + } + catch (IOException e) + { + System.out.println(e); + return null; + } + } + return fileName; + } + + /** + * Uploads a file to a database. Firstly writes the file to the user's + * directory and then copies it to the database and deletes it from the + * user's directory. + * + * @param f Uploaded file that contains the file to be uploaded + * @return true if the file was uploaded, false otherwise. + */ + private boolean uploadToDatabase(UploadedFile f) + { + //users's directory + String uploadDirectory = "/media/DataEXT4/WebDev/"; + + //>if failed to write to user's directory, return false + if (writeToAnyExistingDirectory(f) == null) + { + return false; + } + //>separate file name from file extension if any + String fileName = f.getFileName(); + int indexOfDot = fileName.lastIndexOf("."); + String fileExtension = ""; + if (indexOfDot != -1) + { + fileExtension = fileName.substring(indexOfDot); + } + String fullPathNfileName = uploadDirectory + "/" + fileName; + + //> write to database + int count = Database.saveFile(uploadDirectory, fileName, fileExtension); + System.out.println(" ...the database server returned: " + Integer.toString(count)); + Path path = Paths.get(uploadDirectory + "/" + fileName); + + //>delete file from usr's directory + try + { + + Files.deleteIfExists(path); + } + catch (IOException e) + { + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage(null, + new FacesMessage( + FacesMessage.SEVERITY_WARN, + file.getFileName(), + "Failed to delete an intemmediate file but the file was uploaded to database. " + ) + ); + + } + return count >= 0 ? true : false; + } +} diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/resources/META-INF/persistence.xml b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/web.xml b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/index.xhtml b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/index.xhtml new file mode 100644 index 0000000..6d533a2 --- /dev/null +++ b/Semester 3/Assignments/LabFileUpload_Dbase/src/main/webapp/index.xhtml @@ -0,0 +1,32 @@ + + + + + Facelet Title + + + + + + + + + + + + + + + diff --git a/Semester 3/Assignments/Problem2Final2800.zip b/Semester 3/Assignments/Problem2Final2800.zip new file mode 100644 index 0000000000000000000000000000000000000000..c4b1547391a199407fa90cd188f1321933811ed7 GIT binary patch literal 12285 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 b5c19}Ck+qm9HF47fd6{Ypr8n-L4W-pnN70e literal 0 HcmV?d00001 diff --git a/Semester 3/Assignments/TP2_CalebFontenot.zip b/Semester 3/Assignments/TP2_CalebFontenot.zip new file mode 100644 index 0000000000000000000000000000000000000000..085e6bf0a46d55a02168790ddf7f5a0008af7fcd GIT binary patch literal 52367 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 Z9q2RCX9fH3IGi!~6Sx+96T5-@^nVPh*Z2Sc literal 0 HcmV?d00001 diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/nb-configuration.xml b/Semester 3/Assignments/Templates1_CalebFontenot/nb-configuration.xml new file mode 100644 index 0000000..b98110a --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/nb-configuration.xml @@ -0,0 +1,21 @@ + + + + + + 10-web + gfv700ee10 + ide + Facelets + + diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/pom.xml b/Semester 3/Assignments/Templates1_CalebFontenot/pom.xml new file mode 100644 index 0000000..544cacd --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/pom.xml @@ -0,0 +1,42 @@ + + 4.0.0 + edu.slcc.asdv.caleb + Templates1_CalebFontenot + 1.0-SNAPSHOT + war + Templates1_CalebFontenot-1.0-SNAPSHOT + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/beans/templatesBean.java b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/beans/templatesBean.java new file mode 100644 index 0000000..b1be75e --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/beans/templatesBean.java @@ -0,0 +1,32 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ + +package beans; + +import jakarta.inject.Named; +import jakarta.faces.view.ViewScoped; +import java.io.Serializable; + +/** + * + * @author caleb + */ +@Named(value="templatesBean") +@ViewScoped +public class templatesBean implements Serializable{ + private String msg = ""; + + public String getMsg() { return msg; } + public void action(String arg){this.msg = arg;} + + public String createMenu(String menu) { + String s = ""; + for (String menuItems: menu) { + s += menuItems; + return "I created a menu and return " + s1; + } + } + +} diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/JakartaRestConfiguration.java b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/JakartaRestConfiguration.java new file mode 100644 index 0000000..90c1d42 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package edu.slcc.asdv.caleb.templates1_calebfontenot; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/resources/JakartaEE10Resource.java b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..f93d4d5 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/templates1_calebfontenot/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package edu.slcc.asdv.caleb.templates1_calebfontenot.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/resources/META-INF/persistence.xml b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/web.xml b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/newjsf.xhtml b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/newjsf.xhtml new file mode 100644 index 0000000..5f8f982 --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/newjsf.xhtml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/problem4.xhtml b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/problem4.xhtml new file mode 100644 index 0000000..cae377e --- /dev/null +++ b/Semester 3/Assignments/Templates1_CalebFontenot/src/main/webapp/problem4.xhtml @@ -0,0 +1,18 @@ + + + + + Facelet Title + + + + + + + + + + + + diff --git a/Semester 3/Assignments/dbase.rtf b/Semester 3/Assignments/dbase.rtf new file mode 100644 index 0000000..567f431 --- /dev/null +++ b/Semester 3/Assignments/dbase.rtf @@ -0,0 +1,45 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2639 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 -- phpMyAdmin SQL Dump\ +-- version 5.2.0\ +-- https://www.phpmyadmin.net/\ +--\ +-- Host: localhost:8889\ +-- Generation Time: Apr 29, 2024 at 02:43 PM\ +-- Server version: 5.7.39\ +-- PHP Version: 7.4.33\ +\ +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";\ +START TRANSACTION;\ +SET time_zone = "+00:00";\ +\ +\ +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\ +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\ +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\ +/*!40101 SET NAMES utf8mb4 */;\ +\ +--\ +-- Database: `downloads`\ +--\ +\ +-- --------------------------------------------------------\ +\ +--\ +-- Table structure for table `binary_files`\ +--\ +\ +CREATE TABLE `binary_files` (\ + `key_ai` int(11) NOT NULL,\ + `file_name` varchar(1000) NOT NULL,\ + `file_extension` varchar(100) NOT NULL,\ + `size_kb` bigint(20) NOT NULL,\ + `binary_data` longblob NOT NULL\ +) ENGINE=InnoDB DEFAULT CHARSET=utf8;\ +\ +} \ No newline at end of file diff --git a/Semester 3/Assignments/dbase.sql b/Semester 3/Assignments/dbase.sql new file mode 100644 index 0000000..2d7d02a --- /dev/null +++ b/Semester 3/Assignments/dbase.sql @@ -0,0 +1,37 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost:8889 +-- Generation Time: Apr 29, 2024 at 02:43 PM +-- Server version: 5.7.39 +-- PHP Version: 7.4.33 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `downloads` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `binary_files` +-- + +CREATE TABLE `binary_files` ( +    `key_ai` int(11) NOT NULL, +    `file_name` varchar(1000) NOT NULL, +    `file_extension` varchar(100) NOT NULL, +    `size_kb` bigint(20) NOT NULL, +    `binary_data` longblob NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/nb-configuration.xml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/nb-configuration.xml new file mode 100644 index 0000000..4da1f6c --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/nb-configuration.xml @@ -0,0 +1,18 @@ + + + + + + ide + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/pom.xml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/pom.xml new file mode 100644 index 0000000..a43beff --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/pom.xml @@ -0,0 +1,42 @@ + + 4.0.0 + edu.slcc.asdv.caleb + FinalExamProblem2_CalebFontenot + 1.0-SNAPSHOT + war + FinalExamProblem2_CalebFontenot-1.0-SNAPSHOT + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonBean.java b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonBean.java new file mode 100644 index 0000000..d227447 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonBean.java @@ -0,0 +1,84 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ +package beans; + +import jakarta.inject.Named; +import jakarta.enterprise.context.SessionScoped; +import jakarta.json.JsonArray; +import jakarta.json.JsonNumber; +import jakarta.json.JsonObject; +import jakarta.json.JsonString; +import jakarta.json.JsonValue; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.LinkedHashMap; + +/** + * + * @author caleb + */ +@Named(value = "jsonBean") +@SessionScoped +public class JsonBean implements Serializable { + + /** + * Creates a new instance of JsonBean + */ + public JsonBean() + { + } + + public String compute() + { + String returnString = ""; + ArrayList> personArray = new ArrayList<>(); + personArray.add(JsonSupplier.createMapOfSupplier("s1", "Jeff", "21", "Sillicon Valley")); + personArray.add(JsonSupplier.createMapOfSupplier("s2", "Mary Poppins", "22", "London")); + JsonObject jo = JsonSupplier.createJsonObjectForSuppliers(personArray); + returnString += navigateTree(jo, null) + "\n"; + returnString += jo.toString(); + return returnString; + } + + public static String navigateTree(JsonValue tree, String returnString) + { + if (returnString == null) { + returnString = ""; + } + if (tree == null) { + return returnString; + } + + switch (tree.getValueType()) { + case OBJECT: + JsonObject object = (JsonObject) tree; + for (String name : object.keySet()) { + returnString += "Key " + name + ": \n"; + returnString = navigateTree(object.get(name), returnString); + } + break; + case ARRAY: + JsonArray array = (JsonArray) tree; + for (JsonValue val : array) { + returnString = navigateTree(val, returnString); + } + break; + case STRING: + JsonString st = (JsonString) tree; + returnString += "\tSTRING " + st.getString() + "\n"; + break; + case NUMBER: + JsonNumber num = (JsonNumber) tree; + returnString += "\tNUMBER " + num.toString() + "\n"; + break; + case TRUE: + case FALSE: + case NULL: + returnString += tree.getValueType().toString() + "\n"; + break; + } + return returnString; + } +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonSupplier.java b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonSupplier.java new file mode 100644 index 0000000..f235525 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/beans/JsonSupplier.java @@ -0,0 +1,153 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package beans; + +/** + * + * @author caleb + */ +import java.io.StringReader; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import jakarta.json.Json; +import jakarta.json.JsonArrayBuilder; +import jakarta.json.JsonObject; +import jakarta.json.JsonObjectBuilder; +import jakarta.json.JsonReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintWriter; +import java.util.Scanner; + +public class JsonSupplier +{ + + /** + * Creates a JsonObject by traversing the arrayList of LinkedHashMap + * + * @param suppliers ArrayList of LinkedHashMap. Each element of the + * arrayList is a row of suppliers table. The key of the LinkedHashMap is + * the attribute name and the value of the attribute Example ( One liked + * hash map is one row from the table) LinkedHashMap 1 : key: snumber, + * value: s1 key: sname, value: white key: status, value: 20 key: city, + * value London LinkedHashMap 2 : key: snumber, value: s2 key: sname, value: + * black key: status, value: 30 key: city, value Paris The value of the map + * @return JsonObject + */ + public static JsonObject createJsonObjectForSuppliers(ArrayList> suppliers) + { + JsonObjectBuilder jsonBuilder = Json.createObjectBuilder(); + int counter = 1; + for (LinkedHashMap supplier : suppliers) + { + // create an array of key-value pairs + JsonArrayBuilder arraySupplierBld = Json.createArrayBuilder(); + + // create each key-value pair as seperate object and add it to the array + Set> entrySet = supplier.entrySet(); + for (Map.Entry entry : entrySet) + { + arraySupplierBld.add( + Json.createObjectBuilder().add(entry.getKey(), + entry.getValue()).build()); + } + + // add supplier-array to object + String objectID = "+" + (counter++); + + jsonBuilder.add(objectID, arraySupplierBld); + } + + JsonObject allSuppliersJsonObject = jsonBuilder.build(); + return allSuppliersJsonObject; + } + + /** + * Creates a JsonObject by reading the String data in JSON format + * + * @param jsonData Json format data + * @return JsonObject + */ + public static JsonObject createJsonObjectFromString(String jsonData) + { + JsonReader jsonReader = Json.createReader(new StringReader(jsonData)); + JsonObject o = jsonReader.readObject(); + return o; + } + + /** + * Creates a LinkedHashMap of 4 ENTRYies.Keys name: snumber, sname, status + * and city. Values of map are the parameters. + * + * @param snumber value of map + * @param sname value of map + * @param status value of map + * @param city value of map + * @return + */ + public static LinkedHashMap createMapOfSupplier( + String snumber, + String sname, + String status, + String city + ) + + { + LinkedHashMap mapSupplier + = new LinkedHashMap(); + mapSupplier.put("snumber", snumber); + mapSupplier.put("sname", sname); + mapSupplier.put("status", status); + mapSupplier.put("city", city); + + return mapSupplier; + } + + public static String supplierJasonObject() + { + ArrayList< LinkedHashMap> suppliers = new ArrayList(); + for (int i = 1; i <= 2; ++i) + { + LinkedHashMap oneSupplierRowOfTable + = createMapOfSupplier( + "s1" + i, + "Johnson" + i, + Integer.toString(20 + i), + "london" + i); + suppliers.add(oneSupplierRowOfTable); + } + + JsonObject j = createJsonObjectForSuppliers(suppliers); + return j.toString(); + } + + public static void writeJsonToTextFile( JsonObject jo) + throws FileNotFoundException + { + String joString = jo.toString(); + PrintWriter output = new PrintWriter(new FileOutputStream("jo.json", true)); + output.print(joString); + output.close(); + } + public static JsonObject readTextFileIntoJson( String fileName) + throws FileNotFoundException + { + File file = new java.io.File(fileName); + Scanner input = new Scanner(file); + String joString = ""; + while (input.hasNext()) + { + joString += input.next(); + } + input.close(); + JsonObject jo = createJsonObjectFromString( joString); + return jo; + } + + +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/JakartaRestConfiguration.java b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/JakartaRestConfiguration.java new file mode 100644 index 0000000..6cb8d99 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package edu.slcc.asdv.caleb.finalexamproblem2_calebfontenot; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/resources/JakartaEE10Resource.java b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..64961f9 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem2_calebfontenot/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package edu.slcc.asdv.caleb.finalexamproblem2_calebfontenot.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/resources/META-INF/persistence.xml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/web.xml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/index.xhtml b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/index.xhtml new file mode 100644 index 0000000..834d42a --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem2_CalebFontenot/src/main/webapp/index.xhtml @@ -0,0 +1,16 @@ + + + + + Facelet Title + + + + + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/nb-configuration.xml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/nb-configuration.xml new file mode 100644 index 0000000..b98110a --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/nb-configuration.xml @@ -0,0 +1,21 @@ + + + + + + 10-web + gfv700ee10 + ide + Facelets + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/pom.xml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/pom.xml new file mode 100644 index 0000000..917891a --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + edu.slcc.asdv.caleb + FinalExamProblem3_CalebFontenot + 1.0-SNAPSHOT + war + FinalExamProblem3_CalebFontenot-1.0-SNAPSHOT + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + org.primefaces + primefaces + 14.0.0-RC2 + jakarta + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/beans/slideMenuBean.java b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/beans/slideMenuBean.java new file mode 100644 index 0000000..5986fae --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/beans/slideMenuBean.java @@ -0,0 +1,50 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ + +package beans; + +import jakarta.inject.Named; +import jakarta.enterprise.context.SessionScoped; +import java.io.Serializable; + +/** + * + * @author caleb + */ +@Named(value="slideMenuBean") +@SessionScoped +public class slideMenuBean implements Serializable{ + private boolean menuVisable; + public boolean isMenuVisable() { return menuVisable; } + public void toggleSlideMenu() { menuVisable = !menuVisable; } + private String out; + public String getOut() { return out; } + public void setOut(String out) { this.out = out; } + + public void handleMenuSelection(int selection) { + String selectedMenuItem; + switch (selection) { + case 0: + selectedMenuItem = "save"; + break; + case 1: + selectedMenuItem = "update"; + break; + case 2: + selectedMenuItem = "delete"; + break; + default: + selectedMenuItem = "unknown"; + break; + } + out = "You selected " + selectedMenuItem; + System.out.println(out); + } + + /** Creates a new instance of slideMenuBean */ + public slideMenuBean() { + } + +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/JakartaRestConfiguration.java b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/JakartaRestConfiguration.java new file mode 100644 index 0000000..f2b9189 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package edu.slcc.asdv.caleb.finalexamproblem3_calebfontenot; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/resources/JakartaEE10Resource.java b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..c883039 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/finalexamproblem3_calebfontenot/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package edu.slcc.asdv.caleb.finalexamproblem3_calebfontenot.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/resources/META-INF/persistence.xml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/web.xml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/index.xhtml b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/index.xhtml new file mode 100644 index 0000000..76c247f --- /dev/null +++ b/Semester 3/Exams-Quizzes/FinalExamProblem3_CalebFontenot/src/main/webapp/index.xhtml @@ -0,0 +1,25 @@ + + + + + Facelet Title + + + + + + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/nb-configuration.xml b/Semester 3/Exams-Quizzes/Problem2Final2800/nb-configuration.xml new file mode 100644 index 0000000..ea4eb8b --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/nb-configuration.xml @@ -0,0 +1,21 @@ + + + + + + 10-web + gfv700ee10 + Facelets + ide + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/pom.xml b/Semester 3/Exams-Quizzes/Problem2Final2800/pom.xml new file mode 100644 index 0000000..4684100 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/pom.xml @@ -0,0 +1,42 @@ + + 4.0.0 + asdv + Problem2Final2800 + 1 + war + Problem2Final2800-1 + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/JakartaRestConfiguration.java b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/JakartaRestConfiguration.java new file mode 100644 index 0000000..56939c8 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package asdv.problem2final2800; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/resources/JakartaEE10Resource.java b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..e04a006 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/asdv/problem2final2800/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package asdv.problem2final2800.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/beans/TemplatesBean.java b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/beans/TemplatesBean.java new file mode 100644 index 0000000..c2b360a --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/java/beans/TemplatesBean.java @@ -0,0 +1,32 @@ +package beans; +import java.io.Serializable; +import jakarta.inject.Named; +import jakarta.faces.view.ViewScoped; + +@Named(value = "templatesBean") +@ViewScoped +public class TemplatesBean implements Serializable +{ + + private String msgTopDefault = ""; + private String msgBottomDefault = ""; + private String msgLeftDefault = "Generate a number between 1 and 100!"; + private String msgCenterDefault = "No center content ... press the below button!"; + public String getMsgLeftDefault() { return msgLeftDefault; } + public void setMsgLeftDefault(String msgLeftDefault) { this.msgLeftDefault = msgLeftDefault; } + public String getMsgTopDefault(){return msgTopDefault;} + public void setMsgTopDefault(String msgTopDefault){this.msgTopDefault = msgTopDefault;} + public String getMsgBottomDefault(){return msgBottomDefault;} + public void setMsgBottomDefault(String msgBottomDefault){this.msgBottomDefault = msgBottomDefault;} + public String getMsgCenterDefault(){return msgCenterDefault;} + public void setMsgCenterDefault(String msgCenterDefault){this.msgCenterDefault = msgCenterDefault;} + public void leftAction() { + int randInt = (int) (Math.random() * 100 + 1); + this.msgLeftDefault = "" + randInt; + } + public void topAction(String msg){this.msgTopDefault = msg;} + public void bottomAction(String msg){this.msgBottomDefault = msg; + System.out.println( this.msgBottomDefault );} + + public void centerAction(){this.msgCenterDefault = "This is default content";} +} diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/resources/META-INF/persistence.xml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/web.xml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/index.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/index.xhtml new file mode 100644 index 0000000..ec9be7b --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/index.xhtml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/cssLayout.css b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/cssLayout.css new file mode 100644 index 0000000..c1bd39b --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/cssLayout.css @@ -0,0 +1,37 @@ +#top { + position: relative; + background-color: #cccccc; + padding: 5px; + margin: 0px 0px 10px 0px; + text-align:center; +} +#bottom { + position: relative; + background-color: #cccccc; + padding: 5px; + margin: 10px 0px 0px 0px; + text-align:center; +} +#left { + float: left; + background-color: #cccc11; + position: relative; + padding: 5px; + width: 150px; + text-align:center; +} +#right { + float: right; + position: relative; + background-color: #cccc11; + padding: 5px; + width: 150px; + text-align:center; +} +#content { + background-color: #00cc00; + padding: 5px; + margin: 0px 170px 0px 170px; + text-align:center; +} + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/default.css b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/default.css new file mode 100644 index 0000000..713572a --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/resources/css/default.css @@ -0,0 +1,10 @@ +body { + background-color: #ffffff; + font-size: 12px; + font-family: Verdana, "Verdana CE", Arial, + "Arial CE", "Lucida Grande CE", + lucida, "Helvetica CE", + sans-serif; + color: #000000; + margin: 10px; +} diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/bottomDefault.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/bottomDefault.xhtml new file mode 100644 index 0000000..7f187aa --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/bottomDefault.xhtml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/contentDefault.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/contentDefault.xhtml new file mode 100644 index 0000000..288f3d1 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/contentDefault.xhtml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/leftDefault.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/leftDefault.xhtml new file mode 100644 index 0000000..bc5e433 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/leftDefault.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/rightDefault.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/rightDefault.xhtml new file mode 100644 index 0000000..4854bb4 --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/rightDefault.xhtml @@ -0,0 +1,10 @@ + + + + + + This is default right side + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/topDefault.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/topDefault.xhtml new file mode 100644 index 0000000..ccce3da --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/default/topDefault.xhtml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/layout.xhtml b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/layout.xhtml new file mode 100644 index 0000000..93e591a --- /dev/null +++ b/Semester 3/Exams-Quizzes/Problem2Final2800/src/main/webapp/template/layout.xhtml @@ -0,0 +1,59 @@ + + + + + + + + My Template + + + +
+ + + + + + + +
+ +
+
+ + + +
+ + + +
+ + + + + + +
+ +
+
+ + + + + + + + +
+
+ diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/Printed HTMLs/page1.html b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/Printed HTMLs/page1.html new file mode 100644 index 0000000..9ffe6d6 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/Printed HTMLs/page1.html @@ -0,0 +1,59 @@ + + + +page1.xhtml + + + + +
/home/caleb/ASDV-WebDev/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page1.xhtml
+
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:h="jakarta.faces.html"
+      xmlns:p="http://primefaces.org/ui">
+    <h:head>
+        <title>Facelet Title</title>
+        <style>
+            body {
+                text-align: center
+            }
+        </style>
+    </h:head>
+    <h:body>
+        <h:form>
+            <h2 style="display: inline;">Miles to kilometers label 1: </h2>
+            <h:outputText id="output1" style="display: inline;" value="#{problem1Bean.output}"/>
+            <br/>
+            <h2 style="display: inline;">Miles to kilometers label 2: </h2>
+            <h:outputText id="output2" style="display: inline;" value="#{problem1Bean.output}"/>
+            <br/>
+
+            <p:inputText value="#{problem1Bean.input}" >
+                <p:ajax event="keyup" listener="#{problem1Bean.convert}" update="output2"/>
+            </p:inputText>  
+            mi<br/>
+            <p:commandButton value="Convert Miles to Killometers" action="#{problem1Bean.convert}" update="output1 output2"/>
+        </h:form>
+    </h:body>
+</html>
+
+
+ diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/nb-configuration.xml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/nb-configuration.xml new file mode 100644 index 0000000..b98110a --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/nb-configuration.xml @@ -0,0 +1,21 @@ + + + + + + 10-web + gfv700ee10 + ide + Facelets + + diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/pom.xml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/pom.xml new file mode 100644 index 0000000..c62170c --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + edu.slcc.asdv.caleb + ProgrammingExam1_CalebFontenot + 1.0-SNAPSHOT + war + ProgrammingExam1_CalebFontenot-1.0-SNAPSHOT + + + UTF-8 + 10.0.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee} + provided + + + org.primefaces + primefaces + 13.0.5 + jakarta + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem1Bean.java b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem1Bean.java new file mode 100644 index 0000000..a122010 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem1Bean.java @@ -0,0 +1,50 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ + +package beans; + +import jakarta.inject.Named; +import jakarta.enterprise.context.SessionScoped; +import jakarta.faces.application.FacesMessage; +import jakarta.faces.context.FacesContext; +import jakarta.faces.event.AjaxBehaviorEvent; +import java.io.Serializable; +import org.primefaces.PrimeFaces; + +/** + * + * @author caleb + */ +@Named(value="problem1Bean") +@SessionScoped +public class Problem1Bean implements Serializable { + private boolean checkboxState = true; + private String input; + private String output = "test"; + + public String getOutput() { return output; } + public String getInput() { return input; } + public void setInput(String input) { this.input = input; } + public void setOutput(String output) {this.output = output;} + public boolean isCheckboxState() { return checkboxState; } + public void setCheckboxState(boolean checkboxState) { System.out.println("checkbox state updated: " + checkboxState); this.checkboxState = checkboxState; } + + public void convert() { + System.out.println("convert"); + double miles = Double.parseDouble(input); + output = String.valueOf(miles * 1.609344) + "km"; + String messageContent = "Result of " + miles + "mi to km is: " + output; + System.out.println(messageContent); + FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Converter:", messageContent); + FacesContext.getCurrentInstance().addMessage(null, message); + PrimeFaces.current().ajax().update("MyForm:messages"); + } + + + /** Creates a new instance of Problem1Bean */ + public Problem1Bean() { + } + +} diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem3Bean.java b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem3Bean.java new file mode 100644 index 0000000..af94378 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/beans/Problem3Bean.java @@ -0,0 +1,53 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template + */ + +package beans; + +import jakarta.inject.Named; +import jakarta.enterprise.context.Dependent; +import jakarta.enterprise.context.SessionScoped; +import java.io.Serializable; + +/** + * + * @author caleb + */ +@Named(value="a") +@SessionScoped +public class Problem3Bean implements Serializable { + + private String value1; + private String value2; + + public String getValue2() + { + return value2; + } + + public void setValue2(String value2) + { + this.value2 = value2; + } + + + public String getValue1() + { + return value1; + } + + public void setValue1(String value1) + { + this.value1 = value1; + } + public void b (String a, String b) { + this.value1 = a; + this.value2 = b; + } + + /** Creates a new instance of Problem3Bean */ + public Problem3Bean() { + } + +} diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/JakartaRestConfiguration.java b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/JakartaRestConfiguration.java new file mode 100644 index 0000000..dc8e79d --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/JakartaRestConfiguration.java @@ -0,0 +1,13 @@ +package edu.slcc.asdv.caleb.programmingexam1_calebfontenot; + +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; + +/** + * Configures Jakarta RESTful Web Services for the application. + * @author Juneau + */ +@ApplicationPath("resources") +public class JakartaRestConfiguration extends Application { + +} diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/resources/JakartaEE10Resource.java b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/resources/JakartaEE10Resource.java new file mode 100644 index 0000000..f989551 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/programmingexam1_calebfontenot/resources/JakartaEE10Resource.java @@ -0,0 +1,20 @@ +package edu.slcc.asdv.caleb.programmingexam1_calebfontenot.resources; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +/** + * + * @author + */ +@Path("jakartaee10") +public class JakartaEE10Resource { + + @GET + public Response ping(){ + return Response + .ok("ping Jakarta EE") + .build(); + } +} diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/resources/META-INF/persistence.xml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7582bf1 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..9dfae34 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml new file mode 100644 index 0000000..673cc06 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/glassfish-web.xml @@ -0,0 +1,25 @@ + + + + + + + + Keep a copy of the generated servlet class' java code. + + + diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/web.xml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..fcfcd54 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + jakarta.faces.PROJECT_STAGE + Development + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.xhtml + + diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/index.xhtml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/index.xhtml new file mode 100644 index 0000000..c8f7fc8 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/index.xhtml @@ -0,0 +1,13 @@ + + + + + Facelet Title + + +
+
+
+
+ diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page1.xhtml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page1.xhtml new file mode 100644 index 0000000..af22e9b --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page1.xhtml @@ -0,0 +1,31 @@ + + + + + Facelet Title + + + + + +

Miles to kilometers label 1:

+ +
+

Miles to kilometers label 2:

+ +
+ + + + + mi
+ +
+
+ diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page2.xhtml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page2.xhtml new file mode 100644 index 0000000..4a63aa9 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page2.xhtml @@ -0,0 +1,37 @@ + + + + + Facelet Title + + + + + + +

Miles to kilometers label 1:

+ +
+

Miles to kilometers label 2:

+ +
+ + + + mi
+
+ show converter + + + + +
+
+ diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page3.xhtml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page3.xhtml new file mode 100644 index 0000000..2ef71a4 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/page3.xhtml @@ -0,0 +1,17 @@ + + + + + Facelet Title + + + + + + + + + + diff --git a/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/template1.xhtml b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/template1.xhtml new file mode 100644 index 0000000..4375fc5 --- /dev/null +++ b/Semester 3/Exams-Quizzes/ProgrammingExam1_CalebFontenot/src/main/webapp/template1.xhtml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/Semester 3/ZIPs/FinalExamProblem1_CalebFontenot.zip b/Semester 3/ZIPs/FinalExamProblem1_CalebFontenot.zip new file mode 100644 index 0000000000000000000000000000000000000000..84a2e9d91080d988385b1f920f695fd54f18c5d9 GIT binary patch literal 12769 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 literal 0 HcmV?d00001 diff --git a/Semester 3/ZIPs/FinalExamProblem2_CalebFontenot.zip b/Semester 3/ZIPs/FinalExamProblem2_CalebFontenot.zip new file mode 100644 index 0000000000000000000000000000000000000000..db44c5046254992ecf5c095408e8e6ace946c6b3 GIT binary patch literal 11388 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 F{{xiW0xbXl literal 0 HcmV?d00001