[Building Sakai] Conformation on Tomcat and Maven version for Sakai 2.9

View: New views
3 Messages — Rating Filter:   Alert me  

[Building Sakai] Conformation on Tomcat and Maven version for Sakai 2.9

by Mustansar Mehmood :: Rate this Message:

| View Threaded | Show Only this Message

Hi,
   I may have missed some announcements and am a bit confused about the proper version requirements for Sakai 2.9.
1- What tomcat version is recommended for Sakai 2.9.x. I think it is 7 what confuses me is that what happens when we dont follow the optional steps in the development walk through tutorial
https://confluence.sakaiproject.org/display/BOOT/Development+Environment+Setup+Walkthrough
  1. [OPTIONAL] Delete the default webapps from the webapps dir

    rm -rf webapps/*
    
  2. Configure tomcat 7 to use the old tomcat 5.5 classloader dirs
    1. Edit conf/catalina.properties
      1. Add the following to the line that begins with "common.loader=..."

        ,${catalina.base}/common/classes/,${catalina.base}/common/lib/*.jar
        
      2. Add the following to the line that begins with "shared.loader=..."

        ${catalina.base}/shared/classes/,${catalina.base}/shared/lib/*.jar
        
      3. Add the following to the line that begins with "server.loader=..."

        ${catalina.base}/server/classes/,${catalina.base}/server/lib/*.jar
        
    2. [OPTIONAL] Create the directories

      mkdir -p shared/classes shared/lib common/classes common/lib server/classes server/lib

2- Do we need to change this line in settings.xml
 <appserver.id>tomcat5x</appserver.id> to reflect tomcat 7?


Secondly, is sakai 2.9.x supposed to with with maven 3 ?  If so I am getting errors in building Fresh copy of Sakai-2.9.x-all

Maven 2 OUTPUT
==========
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).


Project ID: org.sakaiproject.search:search-impl
POM Location: /home/mustansar/source/sakai-2.9.x-all/search/search-impl/impl/pom.xml
Validation Messages:

    [0]  'dependencies.dependency.artifactId' with value 'bcprov-${bouncycastle.artifact.version}' does not match a valid id pattern.
    [1]  'dependencies.dependency.artifactId' with value 'bcmail-${bouncycastle.artifact.version}' does not match a valid id pattern.


Reason: Failed to validate POM for project org.sakaiproject.search:search-impl at /home/mustansar/source/sakai-2.9.x-all/search/search-impl/impl/pom.xml


[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.reactor.MavenExecutionException: Failed to validate POM for project org.sakaiproject.search:search-impl at /home/mustansar/source/sakai-2.9.x-all/search/search-impl/impl/pom.xml
    at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:404)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:272)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.project.InvalidProjectModelException: Failed to validate POM for project org.sakaiproject.search:search-impl at /home/mustansar/source/sakai-2.9.x-all/search/search-impl/impl/pom.xml
    at org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder.java:1077)
    at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:880)
    at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:508)
    at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)
    at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:604)
    at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:487)
    at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560)
    at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560)
    at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:391)
    ... 12 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Apr 19 18:05:19 CDT 2012
[INFO] Final Memory: 39M/645M

Maven 3 OUTPUT
=======================
/usr/local/apache-maven-3.0.4/bin/mvn clean
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]  
[ERROR]   The project org.sakaiproject.search:search-impl:1.4-SNAPSHOT (/home/mustansar/source/sakai-2.9.x-all/search/search-impl/impl/pom.xml) has 8 errors
[ERROR]     'dependencies.dependency.version' for org.apache.lucene:lucene-core:jar must be a valid version but is '${lucene.version}'. @ line 162, column 16
[ERROR]     'dependencies.dependency.version' for org.apache.lucene:lucene-highlighter:jar must be a valid version but is '${lucene.version}'. @ line 168, column 16
[ERROR]     'dependencies.dependency.version' for org.apache.lucene:lucene-spellchecker:jar must be a valid version but is '${lucene.version}'. @ line 174, column 16
[ERROR]     'dependencies.dependency.version' for org.apache.poi:poi:jar must be a valid version but is '${poi.version}'. @ line 201, column 16
[ERROR]     'dependencies.dependency.version' for org.apache.poi:poi-ooxml:jar must be a valid version but is '${poi.version}'. @ line 207, column 16
[ERROR]     'dependencies.dependency.version' for org.apache.poi:poi-scratchpad:jar must be a valid version but is '${poi.version}'. @ line 213, column 16
[ERROR]     'dependencies.dependency.artifactId' for org.bouncycastle:bcprov-${bouncycastle.artifact.version}:jar with value 'bcprov-${bouncycastle.artifact.version}' does not match a valid id pattern. @ line 227, column 18
[ERROR]     'dependencies.dependency.artifactId' for org.bouncycastle:bcmail-${bouncycastle.artifact.version}:jar with value 'bcmail-${bouncycastle.artifact.version}' does not match a valid id pattern. @ line 232, column 18
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

-- 
Mustansar Mehmood
Educational System Developer& Integrator

Information Technology  
6100 Main St. MS 119
Houston Texas 77005

Phone:(713)348-2523
Fax  :(713)348 6099 
email:mustansar@...





I have yet to see any problem, however complicated, which, when,you  looked at it in the right way, did not become still more complicated. 
    -- Poul Anderson 


_______________________________________________
sakai-dev mailing list
sakai-dev@...
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe@... with a subject of "unsubscribe"

Re: [Building Sakai] Conformation on Tomcat and Maven version for Sakai 2.9

by Matthew Jones-11 :: Rate this Message:

| View Threaded | Show Only this Message

Answers inline!

On Thu, Apr 19, 2012 at 7:15 PM, Mustansar Mehmood <mustansar@...> wrote:
Hi,
   I may have missed some announcements and am a bit confused about the proper version requirements for Sakai 2.9.
1- What tomcat version is recommended for Sakai 2.9.x. I think it is 7 what confuses me is that what happens when we dont follow the optional steps in the development walk through tutorial
https://confluence.sakaiproject.org/display/BOOT/Development+Environment+Setup+Walkthrough
  1. [OPTIONAL] Delete the default webapps from the webapps dir

    
    rm -rf webapps/*
    
  2. Configure tomcat 7 to use the old tomcat 5.5 classloader dirs
    1. Edit conf/catalina.properties
      1. Add the following to the line that begins with "common.loader=..."

        
        ,${catalina.base}/common/classes/,${catalina.base}/common/lib/*.jar
        
      2. Add the following to the line that begins with "shared.loader=..."

        
        ${catalina.base}/shared/classes/,${catalina.base}/shared/lib/*.jar
        
      3. Add the following to the line that begins with "server.loader=..."

        
        ${catalina.base}/server/classes/,${catalina.base}/server/lib/*.jar
        
    2. [OPTIONAL] Create the directories

      
      mkdir -p shared/classes shared/lib common/classes common/lib server/classes server/lib


Tomcat 7 is recommended for Sakai 2.9.x. I believe the TCC even went as far as saying Tomcat 7 was required.


If you build with the -P pack-demo target, it correctly modifies these properties and startup files so it works according to the directions, otherwise you'll have to do it manually. When Sakai 2.9 is officially released this will get a prominent section in the release notes. The optional steps 1a is just a cleanup (to remove the default webapps that tomcat deploys like ROOT) and the optional b.ii. isn't really necessary because when you unpack the binary or do a deploy, it will make those directories anyway. 

Before Sakai 2.9 is released I plan on writing up a split configuration which we used at Michigan that has the CATALINA_HOME (the tomcat files) separate from the CATALINA_BASE (the Sakai binaries). This is pretty cool because it allows you to do much easier upgrades of both tomcat and Sakai, and also works well with how many distributions (like unix) deploy their tomcat. Though ubuntu has the concept of a private instance installer as well as the global instance now, so it's not that big of a deal. :) 
 
2- Do we need to change this line in settings.xml
 <appserver.id>tomcat5x</appserver.id> to reflect tomcat 7?

I wasn't sure what this was used for. I searched the trunk-all and it's in 2 files
reset-pass/account-validator-tool/pom.xml

site-manage/site-manage-participant-helper/pom.xml

However it's just being used "as properties" and appserver.id isn't even used. So since I've never defined it, I don't think it's useful. ;) (If it is maybe someone else could say, but it's never broke anything for me not having it)

Secondly, is sakai 2.9.x supposed to with with maven 3 ?  If so I am getting errors in building Fresh copy of Sakai-2.9.x-all

Maven 2 OUTPUT
==========
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).

This error is based on the JDK 7. Earle did some work to make trunk compatible with JDK 7 but we didn't merge many of these back to 2.9.x yet. Since Java 6 is EOL in November 2012, I think that these all should get merged. This is tracked on SAK-20908 and the specific merge for search was at https://source.sakaiproject.org/viewsvn?view=revision&revision=104897. 2.9.x-all as of *today* won't build and many tests fail under JDK 7, and it's still being released with JDK 7. I believe it should still be compiled with a JDK 6 target but should run and compile under 7.

As far as the maven version, Maven 3 is recommended. The way indies are released they will cause checksum errors on the metadata if you try to build 2.9.x (the non-all version) with Maven 2, but it still works.  

_______________________________________________
sakai-dev mailing list
sakai-dev@...
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe@... with a subject of "unsubscribe"

Re: [Building Sakai] Confirmation on Tomcat and Maven version for Sakai 2.9

by Mustansar Mehmood :: Rate this Message:

| View Threaded | Show Only this Message

Thanks it all makes sense now:)
./mustansar
On 4/19/2012 8:36 PM, Matthew Jones wrote:
Answers inline!

On Thu, Apr 19, 2012 at 7:15 PM, Mustansar Mehmood <mustansar@...> wrote:
Hi,
   I may have missed some announcements and am a bit confused about the proper version requirements for Sakai 2.9.
1- What tomcat version is recommended for Sakai 2.9.x. I think it is 7 what confuses me is that what happens when we dont follow the optional steps in the development walk through tutorial
https://confluence.sakaiproject.org/display/BOOT/Development+Environment+Setup+Walkthrough
  1. [OPTIONAL] Delete the default webapps from the webapps dir

    rm -rf webapps/*
    
  2. Configure tomcat 7 to use the old tomcat 5.5 classloader dirs
    1. Edit conf/catalina.properties
      1. Add the following to the line that begins with "common.loader=..."

        ,${catalina.base}/common/classes/,${catalina.base}/common/lib/*.jar
        
      2. Add the following to the line that begins with "shared.loader=..."

        ${catalina.base}/shared/classes/,${catalina.base}/shared/lib/*.jar
        
      3. Add the following to the line that begins with "server.loader=..."

        ${catalina.base}/server/classes/,${catalina.base}/server/lib/*.jar
        
    2. [OPTIONAL] Create the directories

      mkdir -p shared/classes shared/lib common/classes common/lib server/classes server/lib


Tomcat 7 is recommended for Sakai 2.9.x. I believe the TCC even went as far as saying Tomcat 7 was required.


If you build with the -P pack-demo target, it correctly modifies these properties and startup files so it works according to the directions, otherwise you'll have to do it manually. When Sakai 2.9 is officially released this will get a prominent section in the release notes. The optional steps 1a is just a cleanup (to remove the default webapps that tomcat deploys like ROOT) and the optional b.ii. isn't really necessary because when you unpack the binary or do a deploy, it will make those directories anyway. 

Before Sakai 2.9 is released I plan on writing up a split configuration which we used at Michigan that has the CATALINA_HOME (the tomcat files) separate from the CATALINA_BASE (the Sakai binaries). This is pretty cool because it allows you to do much easier upgrades of both tomcat and Sakai, and also works well with how many distributions (like unix) deploy their tomcat. Though ubuntu has the concept of a private instance installer as well as the global instance now, so it's not that big of a deal. :) 
 
2- Do we need to change this line in settings.xml
 <appserver.id>tomcat5x</appserver.id> to reflect tomcat 7?

I wasn't sure what this was used for. I searched the trunk-all and it's in 2 files
reset-pass/account-validator-tool/pom.xml

site-manage/site-manage-participant-helper/pom.xml

However it's just being used "as properties" and appserver.id isn't even used. So since I've never defined it, I don't think it's useful. ;) (If it is maybe someone else could say, but it's never broke anything for me not having it)

Secondly, is sakai 2.9.x supposed to with with maven 3 ?  If so I am getting errors in building Fresh copy of Sakai-2.9.x-all

Maven 2 OUTPUT
==========
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).

This error is based on the JDK 7. Earle did some work to make trunk compatible with JDK 7 but we didn't merge many of these back to 2.9.x yet. Since Java 6 is EOL in November 2012, I think that these all should get merged. This is tracked on SAK-20908 and the specific merge for search was at https://source.sakaiproject.org/viewsvn?view=revision&revision=104897. 2.9.x-all as of *today* won't build and many tests fail under JDK 7, and it's still being released with JDK 7. I believe it should still be compiled with a JDK 6 target but should run and compile under 7.

As far as the maven version, Maven 3 is recommended. The way indies are released they will cause checksum errors on the metadata if you try to build 2.9.x (the non-all version) with Maven 2, but it still works.  


_______________________________________________
sakai-dev mailing list
sakai-dev@...
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe@... with a subject of "unsubscribe"