Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

SmartClient and Maven: Working examples

$
0
0
Ok this is not a question, but rather something i hope others find helpful.

I spent a full day getting SmartClient working in my Maven 2 project, and I found it way more difficult than it should have been. That's because the server side still uses old-school jar files and dependency management.

Attached is a working POM that contains the dependencies you need to get smartclient server side stuff ( including JPA ) working.

You'll see in the pom that it was necessary to install isomorphic stuff into our repository.

[RANT]
!!!!Attention ISC admins!!!-- for almost $2k per developer, i expect easy, fast maven integration from an enterprise product. If you guys were to create a maven repo ( authenticated, of course, to protect these assets since they are proprietary ), it would have made the setup process 1 hour instead of 10-- not to mention i wouldn't have to be trying to work out dependencies when you guys are already solving that!
[/RANT]

Anyway if you add this pom ( and the isomorphic jars ) into the your maven repo, then you can get all of the necessary jars by just including this single maven dependency.

Next i'm working on a maven war file overlay, so that with one other dependency you get all of the static webcontent too.

Enjoy!

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.5</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>
        <dependency>
          <groupId>isomorphic</groupId>
          <artifactId>isomorphic_jpa</artifactId>
          <version>9.0</version>
        </dependency>

        <!-- Weird isomorphic versions of libraries -->
        <dependency>
          <groupId>isomorphic</groupId>
          <artifactId>isc-jakarta-oro</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.17</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>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>


Viewing all articles
Browse latest Browse all 4756

Trending Articles