Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Testing spring openshift application locally

I have an application running on Openshift. It works fine, but testing is difficult because i have to push every little thing to openshift and wait for all the building and restarting to see the changes.

So i am trying to find a way to test the application locally. Another guy asked the same thing here: How to test an openshift application on local host, but i am wondering if an easier solution exists.

I used the quickstart project here http://github.com/openshift/spring-eap6-quickstart.git to start it. So basically it is a Spring application using Hibernate.

What i have in mind to have two sets of configuration files (persistence.xml etc.) in the project, one for local Tomcat server and one for Jboss eap and change web.xml according to the server i want to deploy to. Is this doable? Looks so simple, i am afraid of any surprise problems before changing the project.

like image 758
lunr Avatar asked Apr 03 '13 17:04

lunr


1 Answers

This is how i ended up doing. I renamed the original web.xml file, with something like web-openshift.xml. When projects are built in OpenShift, the maven openshift profile is used. You can find it in your <profiles> section in pom.xml. So i added a line to my pom.xml:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
         <configuration>
         ....
           <webXml>src/main/webapp/WEB-INF/web-openshift.xml</webXml>  <!--add this-->  

This makes the maven-war-plugin to use the web-openshift.xml file as the web deployment descriptor when building the war. Then i added a web.xml file, which will be used for my local build. In those files you configure your servlets with:

<init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/jboss-as-spring-mvc-context.xml</param-value>

So by changing the <param-value> in my two web.xml files, I was able to configure Spring and Hibernate in different ways.

Then I added the jars marked as <provided> in pom.xml to the \lib directory of my Tomcat installation. Now i am able to deploy and run the application both to OpenShift and Tomcat.

like image 71
lunr Avatar answered Nov 08 '22 17:11

lunr