Project

General

Profile

« Previous | Next » 

Revision 3f91e2a5

Added by Cherian Mathew about 9 years ago

pom.xml : updated jetty version to 9, added jetty annotations jar to be compatible with servlet 3 annotations
Bootloader.java : updated code to be compatible with jetty 9 and added classlist for servlet
web.xml : updated webapp version to 3 for compatibility with servlet 3

View differences:

pom.xml
1 1
<?xml version="1.0" encoding="UTF-8"?>
2
<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/xsd/maven-4.0.0.xsd">
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 4

  
4 5
  <modelVersion>4.0.0</modelVersion>
5 6
  <groupId>eu.etaxonomy</groupId>
......
9 10
  <name>CDM Community Standalone Server</name>
10 11

  
11 12
  <properties>
12
    <jetty-version>7.2.2.v20101205</jetty-version>
13
    <jetty-version>9.2.5.v20141112</jetty-version>
13 14
  </properties>
14 15

  
15 16
  <scm>
16
    <!-- see section Provider Configuration in http://maven.apache.org/scm/subversion.html
17
    <!-- see section Provider Configuration in http://maven.apache.org/scm/subversion.html 
17 18
      for instructions on how to externalize credentials in $user.home/.scm/svn-settings.xml -->
18 19
    <connection>scm:svn:http://dev.e-taxonomy.eu/svn/trunk/cdm-server</connection>
19 20
    <developerConnection>scm:svn:http://dev.e-taxonomy.eu/svn/trunk/cdm-server</developerConnection>
......
71 72
    </developer>
72 73
  </developers>
73 74

  
74
  <!-- contributors> <contributor> <name>Test-Contributor</name> </contributor>
75
  <!-- contributors> <contributor> <name>Test-Contributor</name> </contributor> 
75 76
    </contributors -->
76 77
  <issueManagement>
77 78
    <system>Trac</system>
......
109 110
  <repositories>
110 111
    <!-- sun repository -->
111 112
    <repository>
112
        <id>java.net-Public</id>
113
        <name>Maven Java Net Snapshots and Releases</name>
114
        <url>https://maven.java.net/content/groups/public/</url>
113
      <id>java.net-Public</id>
114
      <name>Maven Java Net Snapshots and Releases</name>
115
      <url>https://maven.java.net/content/groups/public/</url>
115 116
    </repository>
116 117
    <!-- the localhost Maven Repository -->
117 118
    <repository>
118
          <id>EditLocalRepository</id>
119
          <!--
120
            disable the local repo to let maven always retrieve the
121
            latest cdmlib-remote-webapp.war
122

  
123
            TODO: use ${localrepo} for ${user.home}/.m2/repository
124
            in MAVEN 3
125
          -->
126
          <url>file://${user.home}/.m2/repository/eu/etaxonomy/</url>
127
          <releases>
128
            <enabled>false</enabled>
129
            <updatePolicy>always</updatePolicy>
130
          </releases>
131
          <snapshots>
132
            <enabled>false</enabled>
133
            <updatePolicy>always</updatePolicy>
134
          </snapshots>
135
        </repository>
119
      <id>EditLocalRepository</id>
120
      <!-- disable the local repo to let maven always retrieve the latest 
121
        cdmlib-remote-webapp.war TODO: use ${localrepo} for ${user.home}/.m2/repository 
122
        in MAVEN 3 -->
123
      <url>file://${user.home}/.m2/repository/eu/etaxonomy/</url>
124
      <releases>
125
        <enabled>false</enabled>
126
        <updatePolicy>always</updatePolicy>
127
      </releases>
128
      <snapshots>
129
        <enabled>false</enabled>
130
        <updatePolicy>always</updatePolicy>
131
      </snapshots>
132
    </repository>
136 133
    <!-- the EDIT Maven Repository -->
137 134
    <repository>
138 135
      <id>EditRepository</id>
......
158 155
    <resources>
159 156
      <!-- ${basedir}/src/main/resources -->
160 157
      <resource>
161
        <!-- replace the project-version placeholder in the version.properties
162
          file. This property can then be used to retrieve the version number in the
158
        <!-- replace the project-version placeholder in the version.properties 
159
          file. This property can then be used to retrieve the version number in the 
163 160
          Bootloader -->
164 161
        <targetPath>${project.build.directory}/classes</targetPath>
165 162
        <filtering>true</filtering>
......
208 205
      </plugin>
209 206

  
210 207
      <plugin>
211
        <!-- only needed for testing the svn credentials credentials are usually
212
          stored by svn automatically unless not configured differently in {user.home}\.subversion\config
213
          So in order to use a specific svn account with maven firts to a commit manually
214
          by svn ci -m "commit message" and answer the question wether to store the
215
          credential with yes. There is no specific maven configuration required for
216
          svn to work with maven! -->
208
        <!-- only needed for testing the svn credentials credentials are 
209
          usually stored by svn automatically unless not configured differently in 
210
          {user.home}\.subversion\config So in order to use a specific svn account 
211
          with maven firts to a commit manually by svn ci -m "commit message" and answer 
212
          the question wether to store the credential with yes. There is no specific 
213
          maven configuration required for svn to work with maven! -->
217 214
        <groupId>org.apache.maven.plugins</groupId>
218 215
        <artifactId>maven-scm-plugin</artifactId>
219 216
        <version>1.5</version>
......
332 329
              <overWriteReleases>true</overWriteReleases>
333 330
              <artifactItems>
334 331
                <artifactItem>
335
                    <!--
336
                        copy the cdmlib-remote-webapp-${project.version}.war to the build dir
337
                     -->
332
                  <!-- copy the cdmlib-remote-webapp-${project.version}.war 
333
                    to the build dir -->
338 334
                  <groupId>eu.etaxonomy</groupId>
339 335
                  <artifactId>cdmlib-remote-webapp</artifactId>
340 336
                  <version>${project.version}</version>
......
353 349
      </plugin>
354 350

  
355 351
      <!-- ====== PACKAGE ====== -->
356
      <!-- package the default webapp, // (and also add the cdmlib-remote-webapp.war)
352
      <!-- package the default webapp, // (and also add the cdmlib-remote-webapp.war) 
357 353
        test with: mvn war:war -->
358 354
      <plugin>
359 355
        <groupId>org.apache.maven.plugins</groupId>
......
364 360
          <packagingExcludes>
365 361
            cdmlib-remote-webapp-*.war
366 362
          </packagingExcludes>
367
          <!--
368
            <overlays>
369
              <overlay>
370
                <groupId>eu.etaxonomy</groupId>
371
                <artifactId>cdmlib-remote-webapp</artifactId>
372
                <!- - version is set in dependency - ->
373
                <skip>true</skip>
374
                <!- - Do Not overlay - ->
375
            </overlay>
376
          </overlays>
377
          -->
363
          <!-- <overlays> <overlay> <groupId>eu.etaxonomy</groupId> <artifactId>cdmlib-remote-webapp</artifactId> 
364
            <!- - version is set in dependency - -> <skip>true</skip> <!- - Do Not overlay 
365
            - -> </overlay> </overlays> -->
378 366
        </configuration>
379 367
        <executions>
380 368
          <execution>
......
424 412
            <phase>install</phase>
425 413
            <configuration>
426 414
              <tasks>
427
                <property name="project.fullversionstring" value="${project.version}" />
415
                <property name="project.fullversionstring"
416
                  value="${project.version}" />
428 417
                <property name="project.version" value="${project.version}" />
429
                <ant antfile="${project.basedir}/src/main/installer/linux/build-deb.xml" dir="${project.basedir}" />
418
                <ant
419
                  antfile="${project.basedir}/src/main/installer/linux/build-deb.xml"
420
                  dir="${project.basedir}" />
430 421
              </tasks>
431 422
            </configuration>
432 423
            <goals>
......
459 450
        </configuration>
460 451
      </plugin>
461 452
      <!-- ====== DEPLOY ====== -->
462
      <!-- potentialy needed for maven 3
463
      <plugin>
464
        <groupId>org.apache.maven.plugins</groupId>
465
        <artifactId>maven-depoly-plugin</artifactId>
466
        <version>2.7</version>
467
        <dependencies>
468
            <dependency>
469
                <groupId>org.apache.maven.wagon</groupId>
470
                <artifactId>wagon-ssh</artifactId>
471
                <version>1.0-beta-7</version>
472
            </dependency>
473
        </dependencies>
474
      </plugin>
475
      --> 
453
      <!-- potentialy needed for maven 3 <plugin> <groupId>org.apache.maven.plugins</groupId> 
454
        <artifactId>maven-depoly-plugin</artifactId> <version>2.7</version> <dependencies> 
455
        <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> 
456
        <version>1.0-beta-7</version> </dependency> </dependencies> </plugin> -->
476 457
      <plugin>
477 458
        <groupId>org.apache.maven.plugins</groupId>
478 459
        <artifactId>maven-release-plugin</artifactId>
......
481 462
          <allowTimestampedSnapshots>true</allowTimestampedSnapshots>
482 463
          <autoVersionSubmodules>false</autoVersionSubmodules>
483 464
          <preparationGoals>clean verify install</preparationGoals>
484
          <goals>deploy</goals><!-- skipping site-deploy by explicitly configuring
465
          <goals>deploy</goals><!-- skipping site-deploy by explicitly configuring 
485 466
            the goal here -->
486 467
          <tagBase>http://dev.e-taxonomy.eu/svn/tags/cdm-server</tagBase>
487 468
        </configuration>
......
490 471
        <groupId>org.codehaus.mojo</groupId>
491 472
        <artifactId>wagon-maven-plugin</artifactId>
492 473
        <version>1.0-beta-3</version>
493
        <!-- Problems with the wagon-maven-plugin have been encounterd on Windows,
494
          it should work properly on linux though. -->
474
        <!-- Problems with the wagon-maven-plugin have been encounterd on 
475
          Windows, it should work properly on linux though. -->
495 476
        <executions>
496 477
          <execution>
497 478
            <phase>deploy</phase>
......
554 535
        </configuration>
555 536
      </plugin>
556 537
      <plugin>
557
        <!-- this will generate an indexed and cross-referenced HTML version
538
        <!-- this will generate an indexed and cross-referenced HTML version 
558 539
          of your source code -->
559 540
        <groupId>org.apache.maven.plugins</groupId>
560 541
        <artifactId>maven-jxr-plugin</artifactId>
561 542
        <version>2.2</version>
562 543
      </plugin>
563 544
      <plugin>
564
        <!-- if you use @todo tags to remind you of things to be done (which
565
          is a good coding practice), the taglist report will generate a list of all
545
        <!-- if you use @todo tags to remind you of things to be done (which 
546
          is a good coding practice), the taglist report will generate a list of all 
566 547
          the items marked @todo or TODO -->
567 548
        <groupId>org.codehaus.mojo</groupId>
568 549
        <artifactId>taglist-maven-plugin</artifactId>
569 550
        <version>2.4</version>
570 551
      </plugin>
571 552
      <plugin>
572
        <!-- Test coverage can be a useful indication of the quality of your
573
          unit tests. It basically tells you how much of your code is actually run
574
          by your unit tests, which, in turn, can give you a good idea of the tests'
553
        <!-- Test coverage can be a useful indication of the quality of your 
554
          unit tests. It basically tells you how much of your code is actually run 
555
          by your unit tests, which, in turn, can give you a good idea of the tests' 
575 556
          quality -->
576 557
        <groupId>org.codehaus.mojo</groupId>
577 558
        <artifactId>cobertura-maven-plugin</artifactId>
......
600 581
  </distributionManagement>
601 582

  
602 583
  <dependencies>
603
    <!-- maven 3 no longer supports uniqueVersions for SNAPSHOT artifacts. The
604
      cdm-server Bootlader however relies on a specific name of the cdmlib-remote-webapp
605
      war file. In order to achieve this with maven 3 the below dependency is now
606
      handled more explicitely by utilizing the dependency:copy-dependencies gloal
607
      in the build/plugins section
608
       <dependency>
609
           <groupId>eu.etaxonomy</groupId>
610
           <artifactId>cdmlib-remote-webapp</artifactId>
611
           <version>${project.version}</version>
612
           <type>war</type>
613
       </dependency>
614
         -->
584
    <!-- maven 3 no longer supports uniqueVersions for SNAPSHOT artifacts. 
585
      The cdm-server Bootlader however relies on a specific name of the cdmlib-remote-webapp 
586
      war file. In order to achieve this with maven 3 the below dependency is now 
587
      handled more explicitely by utilizing the dependency:copy-dependencies gloal 
588
      in the build/plugins section <dependency> <groupId>eu.etaxonomy</groupId> 
589
      <artifactId>cdmlib-remote-webapp</artifactId> <version>${project.version}</version> 
590
      <type>war</type> </dependency> -->
615 591
    <!-- JETTY 7 -->
616 592
    <dependency>
617 593
      <groupId>org.eclipse.jetty</groupId>
......
633 609
      <artifactId>jetty-security</artifactId>
634 610
      <version>${jetty-version}</version>
635 611
    </dependency>
612
    <dependency>
613
      <groupId>org.eclipse.jetty</groupId>
614
      <artifactId>jetty-annotations</artifactId>
615
      <version>${jetty-version}</version>
616
    </dependency>
636 617
    <dependency>
637 618
      <groupId>org.mortbay.jetty</groupId>
638 619
      <artifactId>jsp-2.1-glassfish</artifactId>
......
677 658
      <artifactId>commons-io</artifactId>
678 659
      <version>2.4</version>
679 660
    </dependency>
680
        <dependency>
681
            <groupId>commons-collections</groupId>
682
            <artifactId>commons-collections</artifactId>
683
            <version>3.2.1</version>
684
        </dependency>
661
    <dependency>
662
      <groupId>commons-collections</groupId>
663
      <artifactId>commons-collections</artifactId>
664
      <version>3.2.1</version>
665
    </dependency>
685 666
    <dependency>
686 667
      <groupId>net.sf.jopt-simple</groupId>
687 668
      <artifactId>jopt-simple</artifactId>
src/main/java/eu/etaxonomy/cdm/server/Bootloader.java
360 360
        server = new Server(httpPort);
361 361
        server.addLifeCycleListener(instanceManager);
362 362

  
363
        org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
364
        classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
365
        classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");
366
        
363 367
        // JMX support
364 368
        if(cmdLine.hasOption(JMX.getOpt())){
365 369
            logger.info("adding JMX support ...");
366 370
            MBeanContainer mBeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
367
            server.getContainer().addEventListener(mBeanContainer);
368
            mBeanContainer.addBean(Log.getLog());
369
            mBeanContainer.start();
371
            server.addEventListener(mBeanContainer);
372
            server.addBean(Log.getLog());            
370 373
        }
371 374

  
372 375
        if(cmdLine.hasOption(WIN32SERVICE.getOpt())){
src/main/webapp/WEB-INF/web.xml
1 1
<?xml version="1.0" encoding="UTF-8"?>
2
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
3
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
5
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
2
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
3
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
5
      version="3.0">
6 6
    <description>EDIT CDM Community Server</description>
7 7
    <display-name>CDM Community Server</display-name>
8 8

  

Also available in: Unified diff