Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Maven + SMartClient NOT GWT?

    Hi, all:

    Trying to get started with smartclient. We use Maven, so i'm looking for the basic location for the m2 repo and a basic starting POM for a project on the server side.

    I searched the forums and found lots of docs on Maven+SmartGWT. but really i'm just trying to get started on the server side only-- we are fine with good old javascript, so i only need the server side.

    The Quickstart guide under "deploying smartclient-->Java module dependencies", lists all the jar files.. but i cannot be the first person to want use use these in a maven environment...

    #2
    Hrm, there is no repo containing server-side artifacts, which AFAIK are available only with Pro+ licenses. This, as you might have seen in the forum posts you found, is where that SmartGWT plugin for Maven comes from.

    The good news is, there is no difference on the server between SmartGWT and SmartClient - you should be able to use the plugin as documented and get the server-side artifacts you want. You'll of course need to use it with the JavaScript from a SmartClient bundle having the same date.

    I'm planning to do a little work on the plugin in the near future, and I'll see about making better sense out of both SmartClient and SmartGWT bundles while I'm at it. Let me know if you run into any trouble in the meantime.

    Comment


      #3
      Maven+SmartClient

      Hi, thanks..

      Here's what i ended up doing. I'd be happy to share if isomorphic would create a 'supported version':

      * installed the main isomorphic jars in my own nexus instance as version 9.0
      * created a smartclient pom that lists these, plus their dependencies according to the "Deploying SmartClient" documentation.

      These are complete. What's left to do is to create a maven war overlay that will bring in the static resources, taglib, and server.properties. This will make it possible for a standard maven webapp to include two dependencies that will then get all of the smartclient stuff on the server.

      the only troublespot will be web.xml, which has to be merged manually.

      My concern is that it was not trivial to select the correct version of dependencies-- and it took me a few hours to get these poms together. it would be nice if everyone using the server framework+maven doesnt have to repeat that-- especially since only isomorphic would know which dependencies are ok.

      I have put the pom i came up with below.

      Code:
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>isomorphic</groupId>
        <artifactId>smartclient</artifactId>
        <packaging>pom</packaging>
        <version>9.1</version>
        <name>SmartClient Server Side Dependencies</name>
        <url>http://www.smartclient.com</url>
        <dependencies>
        
          <!-- smart client core jars stored in our own repo -->
      	<dependency>
      	  <groupId>isomorphic</groupId>
      	  <artifactId>core_rpc</artifactId>
      	  <version>9.0</version>
      	</dependency>
      	<dependency>
      	  <groupId>isomorphic</groupId>
      	  <artifactId>js_parser</artifactId>
      	  <version>9.0</version>
      	</dependency>
      	<dependency>
      	  <groupId>isomorphic</groupId>
      	  <artifactId>realtime_messaging</artifactId>
      	  <version>9.0</version>
      	</dependency>
      	<dependency>
      	  <groupId>isomorphic</groupId>
      	  <artifactId>assembly</artifactId>
      	  <version>9.0</version>
      	</dependency>
      	<dependency>
      	  <groupId>isomorphic</groupId>
      	  <artifactId>compression</artifactId>
      	  <version>9.0</version>
      	</dependency>
      
      	<!-- 
      	transitive deps of smartclient. Why oh wy dont they provide this? 
      	see SmartClient Reference, Deploying Smartclient :: Java Module Dependencies
      
      	These are not all of the dependencies or options, just the ones that came with the samples.
      	These are documented above but not in this list:
      		isomorphic_autotest
      		isomorphic_obfuscation
      		isomorphic_struts
      		isomorphic_sql
      		isomorphic_tools
      		isomorphic_web_services
      		isomorphic_spring
      		isomorphic_examples
      	-->
      
      
      	<!-- required dependencies of core_rpc -->
      	<dependency>
      	  <groupId>commons-cli</groupId>
      	  <artifactId>commons-cli</artifactId>
      	  <version>1.2</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-codec</groupId>
      	  <artifactId>commons-codec</artifactId>
      	  <version>1.8</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-lang</groupId>
      	  <artifactId>commons-lang</artifactId>
      	  <version>2.6</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-collections</groupId>
      	  <artifactId>commons-collections</artifactId>
      	  <version>3.2.1</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-pool</groupId>
      	  <artifactId>commons-pool</artifactId>
      	  <version>1.6</version>
      	</dependency>
      	<dependency>
      	  <groupId>log4j</groupId>
      	  <artifactId>log4j</artifactId>
      	  <version>1.2.15</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-jxpath</groupId>
      	  <artifactId>commons-jxpath</artifactId>
      	  <version>1.3</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-httpclient</groupId>
      	  <artifactId>commons-httpclient</artifactId>
      	  <version>3.1</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-vfs</groupId>
      	  <artifactId>commons-vfs</artifactId>
      	  <version>1.0</version>
      	</dependency>
      	<dependency>
      	  <groupId>commons-fileupload</groupId>
      	  <artifactId>commons-fileupload</artifactId>
      	  <version>1.2.2</version>
      	</dependency>
      	<dependency>
      	  <groupId>org.apache.velocity</groupId>
      	  <artifactId>velocity</artifactId>
      	  <version>1.7</version>
      	</dependency>
      	<dependency>
      	  <groupId>org.apache.ant</groupId>
      	  <artifactId>ant-apache-oro</artifactId>
      	  <version>1.9.2</version>
      	</dependency>
      	<dependency>
      	  <groupId>javax.validation</groupId>
      	  <artifactId>validation-api</artifactId>
      	  <version>1.0.0.GA</version>
      	</dependency>
      
      	<!-- optional dependencies of core_rpc -->
      	<!-- for mail notifications feature -->
      	<dependency>
      	  <groupId>javax.mail</groupId>
      	  <artifactId>mail</artifactId>
      	  <version>1.4.7</version>
      	</dependency>
      	<dependency>
      	  <groupId>org.apache.poi</groupId>
      	  <artifactId>poi</artifactId>
      	  <version>3.9</version>
      	</dependency>
      	<dependency>
      	  <groupId>org.apache.poi</groupId>
      	  <artifactId>poi-ooxml</artifactId>
      	  <version>3.9</version>
      	</dependency>
      	<dependency>
      	  <groupId>org.apache.poi</groupId>
      	  <artifactId>poi-ooxml-schemas</artifactId>
      	  <version>3.9</version>
      	</dependency>
      	<dependency>
      	  <groupId>org.apache.xmlbeans</groupId>
      	  <artifactId>xmlbeans</artifactId>
      	  <version>2.6.0</version>
      	</dependency>
      	<dependency>
      	  <groupId>jaxb</groupId>
      	  <artifactId>jsr173_api</artifactId>
      	  <version>1.0</version>
      	</dependency>
      </dependencies>
      
      </project>

      Comment

      Working...
      X