rollback swagger-static template

This commit is contained in:
wing328 2015-06-09 12:58:41 +08:00
parent f2ee63da3b
commit d8060f47a8
11 changed files with 5674 additions and 8754 deletions

View File

@ -1,309 +1,308 @@
.line-numbers {
margin-right: 1.0em;
margin-right: 1.0em;
}
.content {
padding-bottom: 100px;
padding-bottom: 100px;
}
.column_header_name {
width: 150px;
width: 150px;
}
.column_header_path {
width: 350px;
width: 350px;
}
.column_header_name .column_header_param_type .column_header_data_type .column_header_return_type {
width: 200px;
width: 200px;
}
.expandable {
display: none;
display: none;
}
.main_content {
margin-top: 80px;
margin-left: 25px;
margin-right: 25px;
margin-top: 80px;
margin-left: 25px;
margin-right: 25px;
}
.model {
float: left;
float: left;
}
.model-container {
float: left;
width: 500px;
padding: 0px;
float: left;
width: 500px;
padding: 0px;
}
.model-detail-container {
clear: left;
float: left;
width: 500px;
margin-left: 40px;
clear: left;
float: left;
width: 500px;
margin-left: 40px;
}
.model-detail-popup {
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px;
border-style: solid;
border-width: 1px;
border-color: black;
padding-left: 10px;
padding-right: 10px;
padding-top: 10px;
padding-bottom: 10px;
background-color: white;
opacity: 0.99;
z-index: 1;
overflow: scroll;
width: 400px;
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px;
border-style: solid;
border-width: 1px;
border-color: black;
padding-left: 10px;
padding-right: 10px;
padding-top: 10px;
padding-bottom: 10px;
background-color: white;
opacity: 0.99;
z-index: 1;
overflow: scroll;
width: 400px;
}
.model-detail-popup .code {
background-color: #E4F5FF;
font-family: monospace;
white-space: pre;
margin: 10px;
overflow: auto;
background-color: #E4F5FF;
font-family: monospace;
white-space: pre;
margin: 10px;
overflow: auto;
}
.model-detail-popup h2 {
margin-top: 0px;
padding-top: 0px;
margin-top: 0px;
padding-top: 0px;
}
.model-detail-popup li {
padding-bottom: 5px;
padding-bottom: 5px;
}
.model-detail-popup .param-reqiured-true {
font-family: monospace;
font-weight: bold;
clear: left;
display: block;
float: left;
width: 100%;
font-family: monospace;
font-weight: bold;
clear: left;
display: block;
float: left;
width: 100%;
}
.model-detail-popup .param-required-false {
font-family: monospace;
clear: left;
display: block;
float: left;
width: 100%;
font-family: monospace;
clear: left;
display: block;
float: left;
width: 100%;
}
.model-detail-popup .param-description {
margin-left: 50px;
float: left;
margin-left: 50px;
float: left;
}
.section-header {
border-bottom: 2px;
font-weight: bold;
font-size: 15px;
padding: 6px 0;
color: rgb(57, 57, 57);
border-bottom: 2px;
font-weight: bold;
font-size: 15px;
padding: 6px 0;
color: rgb(57,57,57);
}
.content {
padding-top: 100px;
padding-top: 100px;
}
.content h1 {
font-size: 43px;
text-align: center;
margin-top: 40px;
margin-bottom: 40px;
font-size: 43px;
text-align: center;
margin-top: 40px;
margin-bottom: 40px;
}
.sidebar {
box-sizing: border-box;
float: left;
display: block;
width: 240px;
overflow: scroll;
position: fixed;
box-sizing: border-box;
float: left;
display: block;
width: 240px;
overflow: scroll;
position: fixed;
}
.section-box {
border-bottom-style: solid;
border-bottom: 10px;
border-bottom-style: solid;
border-bottom: 10px;
}
.section-box ul li {
list-style: none;
margin-left: 0px;
list-style: none;
margin-left: 0px;
}
.non-sidebar {
box-sizing: border-box;
display: block;
margin-left: 240px;
margin-right: 0px;
width: 638px;
box-sizing: border-box;
display: block;
margin-left: 240px;
margin-right: 0px;
width: 638px;
}
.non-sidebar h2 {
clear: left;
padding-top: 20px;
clear: left;
padding-top: 20px;
}
li.parameter {
list-style: none;
display: block;
padding-left: 1em;
list-style: none;
display: block;
padding-left: 1em;
}
.param {
display: block;
.param{
display: block;
}
.param-name {
margin-left: 1em;
margin-left: 1em;
}
.param-in {
font-weight: bold;
font-size: 1.1em;
font-weight: bold;
font-size: 1.1em;
}
.param-type {
margin-left: 1em;
font-style: italic;
margin-left: 1em;
font-style: italic;
}
.param-description {
display: block;
font-family: 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif;
display: block;
font-family: 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif;
}
.param-optional-flag {
font-style: italic;
font-style: italic;
}
.section {
font-weight: normal;
clear: left;
font-weight: normal;
clear: left;
}
.section a {
text-decoration: underline;
text-decoration: underline;
}
.code {
background-color: #E4F5FF;
font-family: monospace;
white-space: pre;
margin: 10px;
overflow: auto;
width: 600px;
background-color: #E4F5FF;
font-family: monospace;
white-space: pre;
margin: 10px;
overflow: auto;
width: 600px;
}
.header {
position: fixed;
text-align: left;
background-color: black;
float: left;
top: 0;
width: 100%;
height: 70px auto;
padding-bottom: 20px;
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px;
position: fixed;
text-align: left;
background-color: black;
float: left;
top: 0;
width: 100%;
height: 70px auto;
padding-bottom: 20px;
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px;
}
.top-bar h1 a {
width: auto;
width: auto;
}
.top-bar h1#logo a {
width: auto;
display: block;
clear: none;
float: left;
background-position: left;;
color: white;
text-decoration: none;
width: auto;
display: block;
clear: none;
float: left;
background-position: left;;
color: white;
text-decoration: none;
}
.top-bar ul li {
list-style: none;
list-style: none;
}
.top-bar h1#logo span {
display: block;
clear: none;
float: left;
padding-top: 10px;
padding-left: 10px;
margin: 0px;
display: block;
clear: none;
float: left;
padding-top: 10px;
padding-left: 10px;
margin: 0px;
}
.top-bar h1#logo a span.light {
color: #ffc97a;
color: #666666;
padding-left: 0px;
color: #ffc97a;
color: #666666;
padding-left: 0px;
}
.top-bar ul#nav {
float: none;
clear: both;
overflow: hidden;
margin: 0;
padding: 0;
display: block;
float: right;
clear: none;
float: none;
clear: both;
overflow: hidden;
margin: 0;
padding: 0;
display: block;
float: right;
clear: none;
}
.top-bar ul#nav li {
float: left;
clear: none;
margin: 0;
padding: 2px 10px;
border-right: 1px solid #dddddd;
float: left;
clear: none;
margin: 0;
padding: 2px 10px;
border-right: 1px solid #dddddd;
}
.top-bar ul#nav li:first-child, .top-bar ul#nav li.first {
padding-left: 0;
padding-left: 0;
}
.top-bar ul#nav li:last-child, .top-bar ul#nav li.last {
padding-right: 0;
border-right: none;
padding-right: 0;
border-right: none;
}
.top-bar ul#nav li {
border: none;
padding: 0 5px;
border: none;
padding: 0 5px;
}
.top-bar ul#nav li a {
display: block;
padding: 8px 10px 8px 10px;
color: #999999;
text-decoration: none;
display: block;
padding: 8px 10px 8px 10px;
color: #999999;
text-decoration: none;
}
.top-bar ul#nav li a.strong {
color: white;
color: white;
}
.top-bar ul#nav li a:active, .top-bar ul#nav li a.active, .top-bar ul#nav li a:hover {
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-o-border-radius: 4px;
-ms-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
background-image: -webkit-gradient(linear, 0% 100%, 0% 0%, color-stop(0%, #ff5401), color-stop(100%, #ffa014));
background-image: -moz-linear-gradient(bottom, #ff5401 0%, #ffa014 100%);
background-image: linear-gradient(bottom, #ff5401 0%, #ffa014 100%);
color: white;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-o-border-radius: 4px;
-ms-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
background-image: -webkit-gradient(linear, 0% 100%, 0% 0%, color-stop(0%, #ff5401), color-stop(100%, #ffa014));
background-image: -moz-linear-gradient(bottom, #ff5401 0%, #ffa014 100%);
background-image: linear-gradient(bottom, #ff5401 0%, #ffa014 100%);
color: white;
}
.top-bar ul#nav:hover li {
border-color: #222222;
border-color: #222222;
}

File diff suppressed because one or more lines are too long

View File

@ -1,69 +1,70 @@
window.onhashchange = function () {
choose(window.location.href.toString());
window.onhashchange = function() {
choose(window.location.href.toString());
}
var selectionImage;
function choose(url) {
var f = url.split("/").slice(-1)[0].split("?")[0];
if (f.match(/#/g) && f.match(/#/g).length > 0) {
f = f.split("#")[0];
var f = url.split("/").slice(-1)[0].split("?")[0];
if(f.match(/#/g) && f.match(/#/g).length > 0) {
f = f.split("#")[0];
}
$('div.non-sidebar').empty();
$('div.non-sidebar').load("operations/" + f + ".html", function(){
goToAnchor();
// rebind the models
$(".model a").on("click", function(e){
e.preventDefault();
var model = $(this).parent().attr("data-model")
var parentOffset = $(this).parent().offset();
var encodedWord = encodeURI(model);
if(!selectionImage) {
selectionImage = $('<div>').attr({
title: 'Model detail',
target: '_blank',
class: 'model-detail-popup'
}).hide();
$('div.model-container').append(selectionImage);
}
selectionImage.load("models/" + encodedWord + ".html")
selectionImage.attr('href',url.replace('{term}',encodeURI(model))).css({
left: e.pageX + 20,
top: e.pageY - 10,
position: "absolute"
}).fadeIn();
})
});
$("body").on("click",function(e) {
var target = $(e.target);
if (target.parents(".model-detail-popup").length == 0 && target.parents('.model').length != 1) {
if(document.querySelector('.model-detail-popup')) {
document.querySelector('.model-detail-popup').style.display = 'none';
}
}
$('div.non-sidebar').empty();
$('div.non-sidebar').load("operations/" + f + ".html", function () {
goToAnchor();
// rebind the models
$(".model a").on("click", function (e) {
e.preventDefault();
var model = $(this).parent().attr("data-model")
var parentOffset = $(this).parent().offset();
var encodedWord = encodeURI(model);
if (!selectionImage) {
selectionImage = $('<div>').attr({
title: 'Model detail',
target: '_blank',
class: 'model-detail-popup'
}).hide();
$('div.model-container').append(selectionImage);
}
selectionImage.load("models/" + encodedWord + ".html")
selectionImage.attr('href', url.replace('{term}', encodeURI(model))).css({
left: e.pageX + 20,
top: e.pageY - 10,
position: "absolute"
}).fadeIn();
})
});
$("body").on("click", function (e) {
var target = $(e.target);
if (target.parents(".model-detail-popup").length == 0 && target.parents('.model').length != 1) {
if (document.querySelector('.model-detail-popup')) {
document.querySelector('.model-detail-popup').style.display = 'none';
}
}
});
});
}
function goToAnchor() {
var doARead = $($('a')[0]).offset();
var anchorArr = window.location.href.toString().split("#");
if (anchorArr.length > 2) {
var anchor = anchorArr[anchorArr.length - 1];
window.scrollTo(0, $('a[name=' + anchor + ']').offset().top - 80);
}
var doARead = $($('a')[0]).offset();
var anchorArr = window.location.href.toString().split("#");
if(anchorArr.length > 2) {
var anchor = anchorArr[anchorArr.length-1];
window.scrollTo(0,$('a[name='+anchor+']').offset().top - 80);
}
}
function resize() {
$(".sidebar").css('height', $(window).height() - 60);
$("#content-window").css('height', $(window).height() - 60);
function resize()
{
$(".sidebar").css('height', $(window).height() -60);
$("#content-window").css('height', $(window).height() -60);
}
$(function () {
$(function(){
window.onresize = resize;
resize();
$(window).bind('hashchange', function () {
$(window).bind('hashchange', function() {
choose(window.location.href.toString());
});
});

View File

@ -1,60 +1,58 @@
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap-responsive.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/style.css">
<script src="assets/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="assets/js/main.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap-responsive.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/style.css">
<script src="assets/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="assets/js/main.js" type="text/javascript"></script>
<title>REST API Resources</title>
<title>REST API Resources</title>
</head>
<body>
<div class="header">
<div class="header">
<div class="top-bar">
<h1 id="logo"><a class="logo" href="/"><span>Swagger</span><span class="light">API Docs</span></a></h1>
<h1 id="logo"><a class="logo" href="/"><span>Swagger</span><span class="light">API Docs</span></a></h1>
</div>
</div>
<div class="model-container"></div>
<div class="content">
</div>
<div class="model-container"></div>
<div class="content">
<div class="box clearfix">
<div class="sidebar">
<div class="section-box">
<div class="section-header">
Overview
</div>
<ul>
<li>Getting Started</li>
</ul>
</div>
{{#apiInfo}}
{{#apis}}
<div class="section-box">
<div class="section-header">
<a href="#!/{{classname}}">{{classname}}</a>
</div>
<ul>
{{#operations}}
{{#operation}}
<li><a href="#!/{{classname}}#{{nickname}}">{{nickname}}</a></li>
{{/operation}}
{{/operations}}
</ul>
</div>
{{/apis}}
{{/apiInfo}}
<div class="sidebar">
<div class="section-box">
<div class="section-header">
Overview
</div>
<ul>
<li>Getting Started</li>
</ul>
</div>
<div class="non-sidebar">
<div class="main-content">
<h2>Getting Started</h2>
<p>To begin using your fancy HTTP API, follow the steps below.</p>
<p>You can add some helpful tips, here</p>
</div>
{{#apiInfo}}
{{#apis}}
<div class="section-box">
<div class="section-header">
<a href="#!/{{classname}}">{{classname}}</a>
</div>
<ul>
{{#operations}}
{{#operation}}
<li><a href="#!/{{classname}}#{{nickname}}">{{nickname}}</a></li>
{{/operation}}
{{/operations}}
</ul>
</div>
{{/apis}}
{{/apiInfo}}
</div>
<div class="non-sidebar">
<div class="main-content">
<h2>Getting Started</h2>
<p>To begin using your fancy HTTP API, follow the steps below.</p>
<p>You can add some helpful tips, here</p>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,13 +1,13 @@
{{#models}}
{{#model}}
{{#model}}
<h2>{{classname}}</h2>
{{#vars}}
<ul class="parameter">
<li class="param-required-{{required}}">{{name}} : {{datatype}}
<br/>{{description}}
</li>
</ul>
{{/vars}}
{{/model}}
<h2>{{classname}}</h2>
{{#vars}}
<ul class="parameter">
<li class="param-required-{{required}}">{{name}} : {{datatype}}
<br/>{{description}}
</li>
</ul>
{{/vars}}
{{/model}}
{{/models}}

View File

@ -1,39 +1,35 @@
<div class="main-content">
<h2><a name="{{className}}"></a>{{className}}</h2>
<h2><a name="{{className}}"></a>{{className}}</h2>
<p>This is the {{className}} API</p>
<p>This is the {{className}} API</p>
{{#operations}}
{{#operation}}
<h2><a name="{{nickname}}"></a>{{nickname}}</h2>
<hr>
<p>{{description}}</p>
{{#notes}}<p>{{notes}}</p>{{/notes}}
<h3 class="section">URL</h3>
<code>{{basePath}}{{path}}</code>
<h3 class="section">HTTP Method</h3>
<code>{{httpMethod}}</code>
<h3 class="section">Response Type</h3>
<div class="model" data-model="{{returnBaseType}}"><a href="">{{returnType}}</a></div>
<h3 class="section">Parameters</h3>
<ul>
{{#allParams}}
<li class="parameter">
{{#isFormParam}}<span class="param-in">Form: </span>{{/isFormParam}}
{{#isQueryParam}}<span class="param-in">Query: </span>{{/isQueryParam}}
{{#isPathParam}}<span class="param-in">Path: </span>{{/isPathParam}}
{{#isHeaderParam}}<span class="param-in">Header: </span>{{/isHeaderParam}}
{{#isBodyParam}}<span class="param-in">Body: </span>{{/isBodyParam}}
<span class="param-name">{{paramName}}</span>
<span class="param-type">{{dataType}}{{#baseType}}({{baseType}}){{/baseType}}</span>
{{#optional}}<span class="param-optional-flag">(optional)</span>{{/optional}}
<p class="param-description">{{description}}</p>
</li>
{{/allParams}}
</ul>
{{/operation}}
{{/operations}}
{{#operations}}
{{#operation}}
<h2><a name="{{nickname}}"></a>{{nickname}}</h2>
<hr>
<p>{{description}}</p>
{{#notes}}<p>{{notes}}</p>{{/notes}}
<h3 class="section">URL</h3>
<code>{{basePath}}{{path}}</code>
<h3 class="section">HTTP Method</h3>
<code>{{httpMethod}}</code>
<h3 class="section">Response Type</h3>
<div class="model" data-model="{{returnBaseType}}"><a href="">{{returnType}}</a></div>
<h3 class="section">Parameters</h3>
<ul>
{{#allParams}}
<li class="parameter">
{{#isFormParam}}<span class="param-in">Form: </span>{{/isFormParam}}
{{#isQueryParam}}<span class="param-in">Query: </span>{{/isQueryParam}}
{{#isPathParam}}<span class="param-in">Path: </span>{{/isPathParam}}
{{#isHeaderParam}}<span class="param-in">Header: </span>{{/isHeaderParam}}
{{#isBodyParam}}<span class="param-in">Body: </span>{{/isBodyParam}}
<span class="param-name">{{paramName}}</span>
<span class="param-type">{{dataType}}{{#baseType}}({{baseType}}){{/baseType}}</span>
{{#optional}}<span class="param-optional-flag">(optional)</span>{{/optional}}
<p class="param-description">{{description}}</p>
</li>
{{/allParams}}
</ul>
{{/operation}}
{{/operations}}
</div>

View File

@ -1,12 +1,12 @@
{
"name": "swagger-docs",
"version": "1.0.0",
"main": "main.js",
"engines": {
"node": ">= 0.8.x"
},
"dependencies": {
"express": "3.x"
},
"license": "apache 2.0"
"name": "swagger-docs",
"version": "1.0.0",
"main": "main.js",
"engines": {
"node": ">= 0.8.x"
},
"dependencies": {
"express": "3.x"
},
"license": "apache 2.0"
}

View File

@ -1,100 +1,100 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
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>io.swagger</groupId>
<artifactId>swagger-demo</artifactId>
<packaging>jar</packaging>
<name>swagger-demo</name>
<version>1.0.0-SNAPSHOT</version>
<prerequisites>
<maven>2.2.0</maven>
</prerequisites>
<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>io.swagger</groupId>
<artifactId>swagger-demo</artifactId>
<packaging>jar</packaging>
<name>swagger-demo</name>
<version>1.0.0-SNAPSHOT</version>
<prerequisites>
<maven>2.2.0</maven>
</prerequisites>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<jvmArgs>
<jvmArg>-Xms64m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg>
</jvmArgs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>once</forkMode>
<useFile>false</useFile>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty-version}</version>
<configuration>
<webAppConfig>
<contextPath>/</contextPath>
</webAppConfig>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8000</port>
<maxIdleTime>60000</maxIdleTime>
<confidentialPort>8443</confidentialPort>
</connector>
</connectors>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<maven-plugin.version>3.1.0</maven-plugin.version>
<jetty-version>7.6.0.v20120127</jetty-version>
</properties>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<jvmArgs>
<jvmArg>-Xms64m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg>
</jvmArgs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>once</forkMode>
<useFile>false</useFile>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty-version}</version>
<configuration>
<webAppConfig>
<contextPath>/</contextPath>
</webAppConfig>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8000</port>
<maxIdleTime>60000</maxIdleTime>
<confidentialPort>8443</confidentialPort>
</connector>
</connectors>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<maven-plugin.version>3.1.0</maven-plugin.version>
<jetty-version>7.6.0.v20120127</jetty-version>
</properties>
</project>