Hello,

I would like to setup my own central repository with Facelets jar and configure its pom with all dependencies. I see that it requires JSF API. I would like to use MyFaces or Sun's Reference Implementation. I think that I should include in the Facelets pom only JSF API dependency since different projects using Facelets can choose different implementations. I was thinking about following solution:

pom.xml for Facelets (https://facelets.dev.java.net/nonav/docs/dev/docbook.html#gettingstarted-dependencies):

<project>
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.sun</groupId>
 <artifactId>facelets</artifactId>
 <version>1.0e</version>
 <dependencies>
   <!-- JSF API from http://javaserverfaces.dev.java.net/ -->
   <dependency>
     <groupId>javax.faces</groupId>
     <artifactId>jsf-api</artifactId>
     <version>1.1</version>
   </dependency>
   <!-- EL API from 
https://facelets.dev.java.net/files/documents/3448/24027/facelets-1.0e.zip -->
   <dependency>
     <groupId>javax.el</groupId>
     <artifactId>el-api</artifactId>
     <version>1.0</version>
   </dependency>
   <!-- What about EL reference implementation? Include here? -->
   <!-- EL RI from 
https://facelets.dev.java.net/files/documents/3448/24027/facelets-1.0e.zip -->
   <dependency>
     <groupId>javax.el</groupId>
     <artifactId>el-ri</artifactId>
     <version>1.0</version>
   </dependency>
 </dependencies>
</project>

MyFaces 1.1.1 pom (based on the 
http://jira.codehaus.org/browse/MEV-136#action_51297):

<project>
 <modelVersion>4.0.0</modelVersion>
 <groupId>org.apache.myfaces</groupId>
 <artifactId>myfacess</artifactId>
 <version>1.1.1</version>
 <dependency>
   <groupId>commons-beanutils</groupId>
   <artifactId>commons-beanutils</artifactId>
   <version>1.7.0</version>
 </dependency>
 <dependency>
   <groupId>commons-codec</groupId>
   <artifactId>commons-codec</artifactId>
   <version>1.3.0</version>
 </dependency>
 <dependency>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
   <version>3.1</version>
 </dependency>
 <dependency>
   <groupId>commons-digester</groupId>
   <artifactId>commons-digester</artifactId>
   <version>1.7</version>
 </dependency>
 <dependency>
   <groupId>commons-el</groupId>
   <artifactId>commons-el</artifactId>
   <version>1.0</version>
 </dependency>
 <dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId> commons-fileupload</artifactId>
   <version>1.0</version>
 </dependency>
 <dependency>
   <groupId>commons-lang</groupId>
   <artifactId> commons-lang</artifactId>
   <version>2.1</version>
 </dependency>
 <dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.0.4</version>
 </dependency>
 <dependency>
   <groupId>commons-validator</groupId>
   <artifactId>commons-validator</artifactId>
   <version>1.1.4</version>
 </dependency>
 <dependency>
   <groupId>oro</groupId>
   <artifactId>oro</artifactId>
   <version>2.0.8</version>
 </dependency>
 <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>servlet-api</artifactId>
   <version>2.4</version>
   <scope>provided></scope>
 </dependency>
 <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jsp-api</artifactId>
   <version>2.0</version>
   <scope>provided></scope>
 </dependency>
 <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
   <version>1.1.2</version>
 </dependency>
 <dependency>
   <groupId>javax.portlet</groupId>
   <artifactId>portlet-api</artifactId>
   <version>1.0</version>
 </dependency>
 <!-- only for tiles support -->
 <dependency>
   <groupId>struts</groupId>
   <artifactId>struts</artifactId>
   <version>1.2.7</version>
   <optional>true</optional>
 </dependency>
 <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
 </dependency>
 <dependency>
   <groupId>easymock</groupId>
   <artifactId>easymock</artifactId>
   <version>1.1</version>
   <scope>test</scope>
 </dependency>
 <dependency>
   <groupId>easymock</groupId>
   <artifactId>easymockclassextension</artifactId>
   <version>1.1</version>
   <scope>test</scope>
 </dependency>
 <dependency>
   <groupId>cargo</groupId>
   <artifactId>cargo</artifactId>
   <version>0.6</version>
   <scope>test</scope>
 </dependency>
</project>

The main concern is about where to include API and RI dependencies? I think 
that all libraries which uses particular API should include dependency only to 
the API libraries and all projects using these libraries should include 
dependencies of equivalent implementations. But how and where this information 
should be written for users of these libraries? Maybe API libraries should list 
its own implementations as optional dependencies (I don't think it is a good 
solution because API libraries aren't responsible for these implementations), 
or other solution?

Best regards,
Piotrek


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to