<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.divami.ims.model</groupId>
  <artifactId>ims-model</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Ims-Model</name>
  <description>Ims Model</description>
  <packaging>jar</packaging>
     
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
        <relativePath/>
  </parent>
  <dependencies>

        <!-- Core Spring Boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        
        	
		<dependency>
		    <groupId>com.mysql</groupId>
		    <artifactId>mysql-connector-j</artifactId>
	    </dependency>

		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency> 
		

		<!-- Spring and Transactions -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-jpa</artifactId>
		</dependency>
		<!-- Logging with SLF4J & LogBack -->


		<!-- Logging dependencies -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-1.2-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jcl</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-web</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>


		<!-- Hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<exclusions>
				<exclusion>
					<groupId>cglib</groupId>
					<artifactId>cglib</artifactId>
				</exclusion>
				<exclusion>
					<groupId>dom4j</groupId>
					<artifactId>dom4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-pool</groupId>
			<artifactId>commons-pool</artifactId>
		</dependency>
		

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-dbcp2</artifactId>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- Jackson dependency to convert object to or from JSON -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>

		<!-- Author Yamini -->

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>

		<!-- Spring Security -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
		</dependency>

		<!-- All Mail related stuff + Much more -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<!-- JavaMail -->
		

<!--		<dependency>-->
<!--			<groupId>javax.mail</groupId>-->
<!--			<artifactId>javax.mail-api</artifactId>-->
<!--			<version>1.5.5</version>-->
<!--		</dependency>-->
<!--		<dependency>-->
<!--			<groupId>javax.mail</groupId>-->
<!--			<artifactId>mail</artifactId>-->
<!--			<version>1.4.7</version>-->
<!--		</dependency>-->

		
		<!-- <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> 
			<version>2.0</version> </dependency> -->
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
		</dependency>
		<!-- End of yamin code -->

		<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>

		<!-- Database -->
		<dependency>
			<groupId>org.hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
		</dependency>


		<!-- Test Artifacts -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>

			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- Commons -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		

		

		<!-- Jersey 2.x -->

		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-multipart</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-json-jackson</artifactId>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpmime</artifactId>
		</dependency>

		<!-- Password Security & Strength -->
		

		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
		

		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
		</dependency>
		
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
		</dependency>

		
        <!-- Testing -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency> 
        
        <!-- Migration -->
        <!-- Errors-->
        
		
        <!-- version -->
        <dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20231013</version>    
		</dependency>
		
        
		<dependency>
			<groupId>commons-beanutils</groupId>
			<artifactId>commons-beanutils</artifactId>
			 <version>1.9.4</version>  
		</dependency>
		
        <dependency>
			<groupId>com.sun.mail</groupId>
			<artifactId>javax.mail</artifactId>
			<version>1.6.2</version> 
		</dependency>
		
        <dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<version>1.10</version>    
		</dependency>
		
        <dependency>
			<groupId>org.passay</groupId>
			<artifactId>passay</artifactId>
			 <version>1.6.4</version>  
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 -->
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-s3</artifactId>
			 <version>1.12.529</version>     
		</dependency>

		<!-- JCraft SSH -->
		<dependency>
			<groupId>com.jcraft</groupId>
			<artifactId>jsch</artifactId>
			<version>0.1.55</version>  
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itextpdf</artifactId>
			<version>5.5.13.3</version>   
		</dependency>

		<!-- apache watermark dependecies -->

		<dependency>
			<groupId>org.apache.pdfbox</groupId>
			<artifactId>pdfbox</artifactId>
			<version>2.0.29</version>  
		</dependency>

		<dependency>
			<groupId>org.apache.pdfbox</groupId>
			<artifactId>fontbox</artifactId>
			 <version>2.0.29</version>     
		</dependency>

		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-ext-jdk15on</artifactId>
			<version>1.70</version>    
		</dependency>
		
        <dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>5.2.3</version> 
		</dependency>
        
        <dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
		</dependency>
		
		<dependency>
			<groupId>com.fasterxml.jackson.jaxrs</groupId>
			<artifactId>jackson-jaxrs-json-provider</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>6.2.5.Final</version>  
		</dependency>
        <!-- Remove -->
        
		    <!-- 
		    	<dependency>
					<groupId>org.hibernate.javax.persistence</groupId>
					<artifactId>hibernate-jpa-2.1-api</artifactId>
				</dependency>
				<dependency>
					<groupId>commons-collections</groupId>
					<artifactId>commons-collections</artifactId>
				</dependency>
				
				
				<dependency>
					<groupId>javax.transaction</groupId>
					<artifactId>jta</artifactId>
				</dependency>
		    -->
		     
		    
		    <!-- velocity -->
				<!-- <dependency>
					<groupId>org.apache.velocity</groupId>
					<artifactId>velocity</artifactId>
				</dependency> -->
			
		    <!-- Jackson -->
				<!-- <dependency>
					<groupId>org.codehaus.jackson</groupId>
					<artifactId>jackson-mapper-asl</artifactId>
				</dependency> -->
		
	        <!-- <dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-mock</artifactId>
			</dependency> -->
			
        <!-- Replace -->
        <!-- OAuth dependencies -->
				<!-- <dependency>
					<groupId>com.google.collections</groupId>
					<artifactId>google-collections</artifactId>
				</dependency>
				<dependency>
					<groupId>com.google.oauth-client</groupId>
					<artifactId>google-oauth-client</artifactId>
				</dependency>
				<dependency>
					<groupId>com.google.http-client</groupId>
					<artifactId>google-http-client-jackson2</artifactId>
				</dependency> -->
	         <dependency>                                                                                                       
			      <groupId>com.google.oauth-client</groupId>                                                                     
			      <artifactId>google-oauth-client</artifactId>                                                                   
			      <version>1.35.0</version>                                                                                      
			  </dependency>                                                                                                      
			                                                                                                                     
			  <dependency>                                                                                                       
			      <groupId>com.google.http-client</groupId>                                                                      
			      <artifactId>google-http-client-jackson2</artifactId>                                                           
			      <version>1.43.3</version>                                                                                      
			  </dependency>                                                                                                      
			                                                                                                                     
			  <dependency>                                                                                                       
			      <groupId>com.google.http-client</groupId>                                                                      
			      <artifactId>google-http-client-apache-v2</artifactId>                                                          
			      <version>1.43.3</version>                                                                                      
			  </dependency>   
       
 </dependencies>
 
    
     <properties>
        <java.version>17</java.version>
        <spring-framework.version>5.3.39</spring-framework.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>                                             
	    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>                                     
	    <maven.compiler.source>17</maven.compiler.source>                                                              
	    <maven.compiler.target>17</maven.compiler.target>    
    </properties>
    <build>                                                                                                            
      <sourceDirectory>src/main/java</sourceDirectory>                                                               
                                                                                                                     
      <!-- Resource configuration to include XML files from src/main/java -->                                        
      <resources>                                                                                                    
          <resource>                                                                                                 
              <directory>src/main/java</directory>                                                                   
              <includes>                                                                                             
                  <include>**/*.xml</include>                                                                        
              </includes>                                                                                            
          </resource>                                                                                                
          <resource>                                                                                                 
              <directory>src/main/resources</directory>                                                              
              <includes>                                                                                             
                  <include>**/*</include>                                                                            
              </includes>                                                                                            
          </resource>                                                                                                
      </resources>                                                                                                   
                                                                                                                     
      <plugins>                                                                                                      
          <!-- Compiler plugin for JDK 17 -->                                                                        
          <plugin>                                                                                                   
              <groupId>org.apache.maven.plugins</groupId>                                                            
              <artifactId>maven-compiler-plugin</artifactId>                                                                                                                                       
              <configuration>                                                                                        
                  <source>17</source>                                                                                
                  <target>17</target>                                                                                
                  <compilerArgument>-Xlint:all</compilerArgument>                                                    
                  <showWarnings>true</showWarnings>                                                                  
                  <showDeprecation>true</showDeprecation>                                                            
              </configuration>                                                                                       
          </plugin>                                                                                                  
                                                                                                                     
          <!-- Resources plugin for encoding -->                                                                     
          <plugin>                                                                                                   
              <groupId>org.apache.maven.plugins</groupId>                                                            
              <artifactId>maven-resources-plugin</artifactId>                                                                                                                                
              <configuration>                                                                                        
                  <encoding>${project.build.sourceEncoding}</encoding>                                               
              </configuration>                                                                                       
          </plugin>                                                                                                  
                                                                                                                     
          <!-- Assembly plugin for fat JAR (if needed) -->                                                           
          <plugin>                                                                                                   
              <groupId>org.apache.maven.plugins</groupId>                                                            
              <artifactId>maven-assembly-plugin</artifactId>                                                                                                                                    
              <configuration>                                                                                        
                  <descriptorRefs>                                                                                   
                      <descriptorRef>jar-with-dependencies</descriptorRef>                                           
                  </descriptorRefs>                                                                                  
              </configuration>                                                                                       
          </plugin>                                                                                                  
                                                                                                                     
          <!-- Surefire plugin for tests -->                                                                         
          <plugin>                                                                                                   
              <groupId>org.apache.maven.plugins</groupId>                                                            
              <artifactId>maven-surefire-plugin</artifactId>                                                                                                                                       
              <configuration>                                                                                        
                  <!-- Set to false when ready to run tests -->                                                      
                  <skipTests>true</skipTests>                                                                        
              </configuration>                                                                                       
          </plugin>                                                                                                  
      </plugins>                                                                                                     
  </build>  
</project>