http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
 
b/org.apache.juneau.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
new file mode 100755
index 0000000..996a185
--- /dev/null
+++ 
b/org.apache.juneau.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
@@ -0,0 +1,60 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ 
***************************************************************************************************************************/
+package org.apache.juneau.server;
+
+import java.text.*;
+
+import org.apache.juneau.client.*;
+import org.apache.juneau.json.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.transforms.*;
+import org.junit.Assert;
+
+import junit.framework.*;
+
+public class TestUtils {
+
+       private static JsonSerializer js2 = new JsonSerializer.Simple()
+               .addTransforms(IteratorTransform.class, 
EnumerationTransform.class);
+
+       /**
+        * Assert that the object equals the specified string after running it 
through JsonSerializer.DEFAULT_LAX.toString().
+        */
+       public static void assertObjectEquals(String s, Object o) {
+               assertObjectEquals(s, o, js2);
+       }
+
+       /**
+        * Assert that the object equals the specified string after running it 
through ws.toString().
+        */
+       public static void assertObjectEquals(String s, Object o, 
WriterSerializer ws) {
+               Assert.assertEquals(s, ws.toString(o));
+       }
+
+       public static void checkErrorResponse(boolean debug, RestCallException 
e, int status, String...contains) throws AssertionFailedError {
+               String r = e.getResponseMessage();
+               if (debug) {
+                       System.err.println(r);
+                       e.printStackTrace();
+               }
+               if (status != e.getResponseCode())
+                       throw new 
AssertionFailedError(MessageFormat.format("Response status code was not 
correct.  Expected: ''{0}''.  Actual: ''{1}''", status, e.getResponseCode()));
+               for (String s : contains) {
+                       if (r == null || ! r.contains(s)) {
+                               if (! debug)
+                                       System.err.println(r);
+                               throw new 
AssertionFailedError(MessageFormat.format("Response did not have the following 
expected text: ''{0}''", s));
+                       }
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.classpath
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.classpath 
b/org.apache.juneau.server/.classpath
new file mode 100755
index 0000000..a953066
--- /dev/null
+++ b/org.apache.juneau.server/.classpath
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry including="**/*.java" kind="src" 
output="target/classes" path="src/main/java">
+               <attributes>
+                       <attribute name="optional" value="true"/>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="src" path="src/test/java"/>
+       <classpathentry combineaccessrules="false" kind="src" 
path="/org.apache.juneau.releng"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+               <attributes>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry combineaccessrules="false" kind="src" 
path="/org.apache.juneau"/>
+       <classpathentry kind="con" 
path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+               <attributes>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.gitignore
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.gitignore 
b/org.apache.juneau.server/.gitignore
new file mode 100644
index 0000000..30e1a65
--- /dev/null
+++ b/org.apache.juneau.server/.gitignore
@@ -0,0 +1,2 @@
+bin/
+/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.project
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.project 
b/org.apache.juneau.server/.project
new file mode 100755
index 0000000..9f06158
--- /dev/null
+++ b/org.apache.juneau.server/.project
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.apache.juneau.server</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.m2e.core.maven2Builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>
+               <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+               
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+               
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+       </natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/com.ibm.etools.references.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/com.ibm.etools.references.prefs 
b/org.apache.juneau.server/.settings/com.ibm.etools.references.prefs
new file mode 100755
index 0000000..60e92fc
--- /dev/null
+++ b/org.apache.juneau.server/.settings/com.ibm.etools.references.prefs
@@ -0,0 +1,4 @@
+#Fri Sep 28 14:37:35 EDT 2012
+com.ibm.etools.references.ui.validation.projectPropertiesEnabled=true
+eclipse.preferences.version=1
+com.ibm.etools.references.ui.validation.severityLevel=0

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
 
b/org.apache.juneau.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
new file mode 100755
index 0000000..fea8f8b
--- /dev/null
+++ 
b/org.apache.juneau.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
@@ -0,0 +1,3 @@
+#Fri Jan 24 16:55:50 EST 2014
+use-project-settings=false
+eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.jdt.apt.core.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.jdt.apt.core.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100755
index 0000000..ec0c557
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.jdt.core.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 0000000..73f18fb
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,402 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not 
insert
+org.eclipse.jdt.core.formatter.comment.line_length=200
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=3
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do
 not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do
 not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do 
not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do
 not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do
 not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do 
not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do
 not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do 
not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do 
not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not 
insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do
 not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do
 not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=200
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=3
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.jdt.ui.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 0000000..d54ca08
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,120 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=false
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=true
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Juneau
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Juneau
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=false
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" 
encoding\="UTF-8"?><templates><template autoinsert\="false" 
context\="gettercomment_context" deleted\="false" description\="Comment for 
getter method" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" 
name\="gettercomment">/**\r\n * Bean property getter\:  
&lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @return The 
value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on 
this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\r\n 
*/</template><template autoinsert\="false" context\="settercomment_context" 
deleted\="false" description\="Comment for setter method" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" 
name\="settercomment">/**\r\n * Bean property setter\:  
&lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @param 
${param} The new value for the 
&lt;property&gt;${bare_field_name}&lt;/property&gt; property on th
 is bean.\r\n * @return This object (for method chaining).\r\n 
*/</template><template autoinsert\="false" 
context\="constructorcomment_context" deleted\="false" description\="Comment 
for created constructors" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" 
name\="constructorcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n 
*/</template><template autoinsert\="true" context\="filecomment_context" 
deleted\="false" description\="Comment for created Java files" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" 
name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" 
context\="typecomment_context" deleted\="false" description\="Comment for 
created types" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" 
name\="typecomment">/**\r\n * TODO\r\n * &lt;p&gt;\r\n * \r\n * @author James 
Bognar (james.bog...@salesforce.com)\r\n * ${tags}\r\n */</template><template 
autoinsert\="true" context\="fieldcommen
 t_context" deleted\="false" description\="Comment for fields" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" 
name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="false" 
context\="methodcomment_context" deleted\="false" description\="Comment for 
non-overriding methods" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" 
name\="methodcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n 
*/</template><template autoinsert\="true" context\="overridecomment_context" 
deleted\="false" description\="Comment for overriding methods" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" 
name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n 
*/</template><template autoinsert\="false" context\="delegatecomment_context" 
deleted\="false" description\="Comment for delegate methods" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" 
name\="delegatecomment">/**\r\n * TODO\r\n *
  \r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template 
autoinsert\="true" context\="newtype_context" deleted\="false" 
description\="Newly created files" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.newtype" 
name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template
 autoinsert\="true" context\="classbody_context" deleted\="false" 
description\="Code in new class type bodies" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.classbody" 
name\="classbody">\r\n</template><template autoinsert\="true" 
context\="interfacebody_context" deleted\="false" description\="Code in new 
interface type bodies" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" 
name\="interfacebody">\r\n</template><template autoinsert\="true" 
context\="enumbody_context" deleted\="false" description\="Code in new enum 
type bodies" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name
 \="enumbody">\r\n</template><template autoinsert\="true" 
context\="annotationbody_context" deleted\="false" description\="Code in new 
annotation type bodies" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" 
name\="annotationbody">\r\n</template><template autoinsert\="true" 
context\="catchblock_context" deleted\="false" description\="Code in new catch 
blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" 
name\="catchblock">// ${todo} Auto-generated catch 
block\r\n${exception_var}.printStackTrace();</template><template 
autoinsert\="true" context\="methodbody_context" deleted\="false" 
description\="Code in created method stubs" enabled\="true" 
id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// 
${todo} Auto-generated method stub\r\n${body_statement}</template><template 
autoinsert\="true" context\="constructorbody_context" deleted\="false" 
description\="Code in created constructor stubs" enabled\="true" id\="org
 .eclipse.jdt.ui.text.codetemplates.constructorbody" 
name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated 
constructor stub</template><template autoinsert\="true" 
context\="getterbody_context" deleted\="false" description\="Code in created 
getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" 
name\="getterbody">return ${field};</template><template autoinsert\="true" 
context\="setterbody_context" deleted\="false" description\="Code in created 
setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" 
name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=true
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.update_ibm_copyright_to_current_year=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.ltk.core.refactoring.prefs
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/.settings/org.eclipse.ltk.core.refactoring.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100755
index 0000000..4823f83
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Tue Feb 03 13:34:43 EST 2009
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.m2e.core.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.pde.core.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.pde.core.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.pde.core.prefs
new file mode 100755
index 0000000..ecf8088
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+#Mon Jan 05 14:46:11 EST 2009
+eclipse.preferences.version=1
+resolve.requirebundle=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.pde.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.pde.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.pde.prefs
new file mode 100755
index 0000000..a9e32da
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,15 @@
+#Thu Feb 05 14:13:09 EST 2009
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.deprecated=1
+compilers.p.missing-packages=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=0
+compilers.p.unknown-element=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.use-project=true
+eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.wst.common.component
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/.settings/org.eclipse.wst.common.component 
b/org.apache.juneau.server/.settings/org.eclipse.wst.common.component
new file mode 100755
index 0000000..fcc037e
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" 
project-version="1.5.0">
+    <wb-module deploy-name="org.apache.juneau.server">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/test/java"/>
+    </wb-module>
+</project-modules>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.wst.common.project.facet.core.xml
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/.settings/org.eclipse.wst.common.project.facet.core.xml
 
b/org.apache.juneau.server/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100755
index 0000000..6c4c744
--- /dev/null
+++ 
b/org.apache.juneau.server/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 
***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            * 
+ * with the License.  You may obtain a copy of the License at                  
                                            *
+ *                                                                             
                                            *
+ *  http://www.apache.org/licenses/LICENSE-2.0                                 
                                            *
+ *                                                                             
                                            *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the        *
+ * specific language governing permissions and limitations under the License.  
                                            *
+ *                                                                             
                                            *
+ 
***************************************************************************************************************************
+-->
+<faceted-project>
+  <fixed facet="jst.java"/>
+  <fixed facet="jst.utility"/>
+  <installed facet="jst.utility" version="1.0"/>
+  <installed facet="jst.java" version="1.6"/>
+</faceted-project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.wst.html.core.prefs
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/.settings/org.eclipse.wst.html.core.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.wst.html.core.prefs
new file mode 100755
index 0000000..00c4f29
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,37 @@
+#Wed Sep 26 17:17:38 EDT 2012
+elemUnnecessaryEnd=2
+elemCoexistence=2
+attrUndefValue=2
+attrUndefName=2
+piInvalidContent=2
+elemMissingStart=2
+elemInvalidEmptyTag=2
+docDuplicateTag=1
+docInvalidChar=2
+piUndefined=2
+docInvalidContent=2
+elemStartInvalidCase=2
+commentInvalidContent=2
+use-project-settings=true
+attrInvalidName=2
+elemUnclosedStartTag=1
+attrNameMismatch=2
+elemInvalidContent=2
+elemDuplicate=2
+cdataInvalidContent=2
+piUnclosed=1
+commentUnclosed=1
+attrDuplicate=2
+docDoctypeUnclosed=1
+eclipse.preferences.version=1
+attrInvalidValue=2
+cdataUnclosed=1
+refInvalidContent=2
+attrValueUnclosed=2
+elemEndInvalidCase=1
+elemMissingEnd=2
+attrValueMismatch=1
+elemInvalidName=1
+elemInvalidDirective=1
+elemUnknownName=-1
+elemUnclosedEndTag=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/.settings/org.eclipse.wst.validation.prefs
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/.settings/org.eclipse.wst.validation.prefs 
b/org.apache.juneau.server/.settings/org.eclipse.wst.validation.prefs
new file mode 100755
index 0000000..1d71887
--- /dev/null
+++ b/org.apache.juneau.server/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,9 @@
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorList
+USER_MANUAL_PREFERENCE=enabledManualValidatorList
+USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.402.v201212031633
+eclipse.preferences.version=1
+override=true
+suspend=false
+vals/org.eclipse.wst.html.core.HTMLValidator/global=TF01
+vf.version=3

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/META-INF/MANIFEST.MF 
b/org.apache.juneau.server/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..39fa87f
--- /dev/null
+++ b/org.apache.juneau.server/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Juneau Cloud Tools - Server
+Bundle-SymbolicName: org.apache.juneau.server
+Bundle-Version: 5.2.1000.qualifier
+Bundle-Vendor: IBM
+Require-Bundle: 
+ org.apache.juneau
+Import-Package: 
+ com.hp.hpl.jena.rdf.model;resolution:=optional,
+ com.hp.hpl.jena.shared;resolution:=optional,
+ javax.servlet,
+ javax.servlet.http,
+ javax.ws.rs;resolution:=optional,
+ javax.ws.rs.core;resolution:=optional,
+ javax.ws.rs.ext;resolution:=optional
+Export-Package: 
+ org.apache.juneau.server,
+ org.apache.juneau.server.annotation,
+ org.apache.juneau.server.converters,
+ org.apache.juneau.server.jaxrs,
+ org.apache.juneau.server.jena,
+ org.apache.juneau.server.labels,
+ org.apache.juneau.server.matchers,
+ org.apache.juneau.server.remoteable,
+ org.apache.juneau.server.response
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/OSGI-INF/l10n/plugin.properties
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/OSGI-INF/l10n/plugin.properties 
b/org.apache.juneau.server/OSGI-INF/l10n/plugin.properties
new file mode 100755
index 0000000..0505c8a
--- /dev/null
+++ b/org.apache.juneau.server/OSGI-INF/l10n/plugin.properties
@@ -0,0 +1,19 @@
+# 
***************************************************************************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+# * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+# * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            * 
+# * with the License.  You may obtain a copy of the License at                 
                                             *
+# *                                                                            
                                             *
+# *  http://www.apache.org/licenses/LICENSE-2.0                                
                                             *
+# *                                                                            
                                             *
+# * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
+# * specific language governing permissions and limitations under the License. 
                                             *
+# *                                                                            
                                             *
+# 
***************************************************************************************************************************
+# NLS_ENCODING=UTF-8
+# NLS_MESSAGEFORMAT_VAR
+
+# META-INF/MANIFEST.MF
+bundle.name = Juneau Cloud Tools - REST server component
+bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/build.properties
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/build.properties 
b/org.apache.juneau.server/build.properties
new file mode 100755
index 0000000..8273e93
--- /dev/null
+++ b/org.apache.juneau.server/build.properties
@@ -0,0 +1,24 @@
+# 
***************************************************************************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+# * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+# * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            * 
+# * with the License.  You may obtain a copy of the License at                 
                                             *
+# *                                                                            
                                             *
+# *  http://www.apache.org/licenses/LICENSE-2.0                                
                                             *
+# *                                                                            
                                             *
+# * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
+# * specific language governing permissions and limitations under the License. 
                                             *
+# *                                                                            
                                             *
+# 
***************************************************************************************************************************
+
+source.. = src/main/java/,\
+           src/test/java/
+output.. = target/classes
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/
+bin.excludes = **/doc-files/**
+# We include JAX-RS in the extra classpath since it's not available in Jazz.  
+jars.extra.classpath = lib/jaxrs/jsr311-api-1.1.1.jar
+nls_exclude=**/*.html

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/lib/jaxrs/jsr311-api-1.1.1.jar
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/lib/jaxrs/jsr311-api-1.1.1.jar 
b/org.apache.juneau.server/lib/jaxrs/jsr311-api-1.1.1.jar
new file mode 100755
index 0000000..ec8bc81
Binary files /dev/null and 
b/org.apache.juneau.server/lib/jaxrs/jsr311-api-1.1.1.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/pom.xml
----------------------------------------------------------------------
diff --git a/org.apache.juneau.server/pom.xml b/org.apache.juneau.server/pom.xml
new file mode 100644
index 0000000..bec70b6
--- /dev/null
+++ b/org.apache.juneau.server/pom.xml
@@ -0,0 +1,36 @@
+<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";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.juneau</groupId>
+  <artifactId>juneau-server</artifactId>
+  <version>6.0.0-SNAPSHOT</version>
+  <name>org.apache.juneau.server</name>
+  <description>org.apache.juneau.server</description>
+       <dependencies>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>4.10</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/java</directory>
+        <excludes>
+          <exclude>**/*.java</exclude>
+        </excludes>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.3</version>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
new file mode 100644
index 0000000..16cee12
--- /dev/null
+++ 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
@@ -0,0 +1,52 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ 
***************************************************************************************************************************/
+package org.apache.juneau.server;
+
+import org.apache.juneau.internal.*;
+import org.apache.juneau.server.annotation.*;
+
+/**
+ * Specialized matcher for matching client versions.
+ * <p>
+ * See {@link RestResource#clientVersionHeader} and {@link 
RestMethod#clientVersion} for more info.
+ *
+ * @author James Bognar (james.bog...@salesforce.com)
+ */
+public class ClientVersionMatcher extends RestMatcherReflecting {
+
+       private final String clientVersionHeader;
+       private final VersionRange range;
+
+       /**
+        * Constructor.
+        *
+        * @param servlet The servlet.
+        * @param javaMethod The version string that the client version must 
match.
+        */
+       protected ClientVersionMatcher(RestServlet servlet, 
java.lang.reflect.Method javaMethod) {
+               super(servlet, javaMethod);
+               this.clientVersionHeader = servlet.getClientVersionHeader();
+               RestMethod m = javaMethod.getAnnotation(RestMethod.class);
+               range = new VersionRange(m.clientVersion());
+       }
+
+       @Override /* RestMatcher */
+       public boolean matches(RestRequest req) {
+               return range.matches(req.getHeader(clientVersionHeader));
+       }
+
+       @Override /* RestMatcher */
+       public boolean mustMatch() {
+               return true;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ReaderResource.java
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ReaderResource.java
 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ReaderResource.java
new file mode 100755
index 0000000..77c207b
--- /dev/null
+++ 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ReaderResource.java
@@ -0,0 +1,100 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ 
***************************************************************************************************************************/
+package org.apache.juneau.server;
+
+import java.io.*;
+import java.util.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.server.response.*;
+import org.apache.juneau.svl.*;
+
+/**
+ * Represents the contents of a text file with convenience methods for 
resolving
+ *     {@link Var} variables and adding HTTP response headers.
+ * <p>
+ * This class is handled special by the {@link WritableHandler} class.
+ *
+ * @author James Bognar (james.bog...@salesforce.com)
+ */
+public class ReaderResource implements Writable {
+
+       private String contents;
+       private String mediaType;
+       private VarResolverSession varSession;
+       private Map<String,String> headers = new LinkedHashMap<String,String>();
+
+       /**
+        * Constructor.
+        *
+        * @param contents The contents of this resource.
+        * @param mediaType The HTTP media type.
+        */
+       protected ReaderResource(String contents, String mediaType) {
+               this.contents = contents;
+               this.mediaType = mediaType;
+       }
+
+       /**
+        * Add an HTTP response header.
+        *
+        * @param name The header name.
+        * @param value The header value converted to a string using {@link 
Object#toString()}.
+        * @return This object (for method chaining).
+        */
+       public ReaderResource setHeader(String name, Object value) {
+               headers.put(name, value == null ? "" : value.toString());
+               return this;
+       }
+
+       /**
+        * Use the specified {@link VarResolver} to resolve any {@link Var 
StringVars} in the
+        * contents of this file when the {@link #writeTo(Writer)} or {@link 
#toString()} methods are called.
+        *
+        * @param varSession The string variable resolver to use to resolve 
string variables.
+        * @return This object (for method chaining).
+        */
+       public ReaderResource setVarSession(VarResolverSession varSession) {
+               this.varSession = varSession;
+               return this;
+       }
+
+       /**
+        * Get the HTTP response headers.
+        *
+        * @return The HTTP response headers.
+        */
+       public Map<String,String> getHeaders() {
+               return headers;
+       }
+
+       @Override /* Writeable */
+       public void writeTo(Writer w) throws IOException {
+               if (varSession != null)
+                       varSession.resolveTo(contents, w);
+               else
+                       w.write(contents);
+       }
+
+       @Override /* Streamable */
+       public String getMediaType() {
+               return mediaType;
+       }
+
+       @Override /* Object */
+       public String toString() {
+               if (varSession != null)
+                       return varSession.resolve(contents);
+               return contents;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/src/main/java/org/apache/juneau/server/Redirect.java
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/src/main/java/org/apache/juneau/server/Redirect.java 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/Redirect.java
new file mode 100755
index 0000000..7e1a489
--- /dev/null
+++ 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/Redirect.java
@@ -0,0 +1,138 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ 
***************************************************************************************************************************/
+package org.apache.juneau.server;
+
+import java.net.*;
+import java.text.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.urlencoding.*;
+
+/**
+ * REST methods can return this object as a shortcut for performing <code>HTTP 
302</code> redirects.
+ * <p>
+ * The following example shows the difference between handling redirects via 
the {@link RestRequest}/{@link RestResponse},
+ *     and the simplified approach of using this class.
+ * <p class='bcode'>
+ *     <jc>// Redirect to "/contextPath/servletPath/foobar"</jc>
+ *
+ *     <jc>// Using RestRequest and RestResponse</jc>
+ *     <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example1"</js>)
+ *     <jk>public void</jk> example1(RestRequest req, RestResponse res) 
<jk>throws</jk> IOException {
+ *             res.sendRedirect(req.getServletURI() + <js>"/foobar"</js>);
+ *     }
+ *
+ *     <jc>// Using Redirect</jc>
+ *     <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example2"</js>)
+ *     <jk>public</jk> Redirect example2() {
+ *             <jk>return new</jk> Redirect(<js>"foobar"</js>);
+ *     }
+ * </p>
+ * <p>
+ * The constructor can use a {@link MessageFormat}-style pattern with multiple 
arguments:
+ * <p class='bcode'>
+ *     <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example3"</js>)
+ *     <jk>public</jk> Redirect example3() {
+ *             <jk>return new</jk> Redirect(<js>"foo/{0}/bar/{1}"</js>, id1, 
id2);
+ *     }
+ * </p>
+ * <p>
+ * The arguments are serialized to strings using the servlet's {@link 
UrlEncodingSerializer},
+ *     so any filters defined on the serializer or REST method/class will be 
used when present.
+ * The arguments will also be automatically URL-encoded.
+ * <p>
+ * Redirecting to the servlet root can be accomplished by simply using the 
no-arg constructor.
+ * <p class='bcode'>
+ *     <jc>// Simply redirect to the servlet root.
+ *     // Equivalent to res.sendRedirect(req.getServletURI()).</jc>
+ *     <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example4"</js>)
+ *     <jk>public</jk> Redirect exmaple4() {
+ *             <jk>return new</jk> Redirect();
+ *     }
+ * </p>
+ * <p>
+ * This class is handled by {@link 
org.apache.juneau.server.response.RedirectHandler}, a built-in default
+ *     response handler created by {@link 
RestServlet#createResponseHandlers(ObjectMap)}.
+ */
+public final class Redirect {
+
+       private int httpResponseCode;
+       private String url;
+       private Object[] args;
+
+       /**
+        * Redirect to the specified URL.
+        * Relative paths are interpreted as relative to the servlet path.
+        *
+        * @param url The URL to redirect to.
+        * @param args Optional {@link MessageFormat} arguments to replace in 
the URL string.
+        */
+       public Redirect(CharSequence url, Object...args) {
+               this.url = (url == null ? null : url.toString());
+               this.args = args;
+       }
+
+       /**
+        * Convenience method for redirecting to instance of {@link URL} and 
{@link URI}.
+        * Same as calling <code>toString()</code> on the object and using the 
other constructor.
+        *
+        * @param url The URL to redirect to.
+        */
+       public Redirect(Object url) {
+               this.url = (url == null ? null : url.toString());
+       }
+
+       /**
+        * Redirect to the specified URL.
+        * Relative paths are interpreted as relative to the servlet path.
+        *
+        * @param httpResponseCode The HTTP response code.
+        * @param url The URL to redirect to.
+        * @param args Optional {@link MessageFormat} arguments to replace in 
the URL string.
+        */
+       public Redirect(int httpResponseCode, CharSequence url, Object...args) {
+               this.httpResponseCode = httpResponseCode;
+               this.url = (url == null ? null : url.toString());
+               this.args = args;
+       }
+
+       /**
+        * Shortcut for redirecting to the servlet root.
+        */
+       public Redirect() {
+       }
+
+       /**
+        * Calculates the URL to redirect to.
+        *
+        * @param s Use this serializer to encode arguments using the {@link 
UrlEncodingSerializer#serializeUrlPart(Object)} method.
+        * @return The URL to redirect to.
+        */
+       public String toUrl(UrlEncodingSerializer s) {
+               if (url != null && args != null && args.length > 0) {
+                       for (int i = 0; i < args.length; i++)
+                               args[i] = s.serializeUrlPart(args[i]);
+                       url = MessageFormat.format(url, args);
+               }
+               return url;
+       }
+
+       /**
+        * Returns the response code passed in through the constructor.
+        *
+        * @return The response code passed in through the constructor, or 
<code>0</code> if response code wasn't specified.
+        */
+       public int getHttpResponseCode() {
+               return httpResponseCode;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/1b4f98a0/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
----------------------------------------------------------------------
diff --git 
a/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
new file mode 100755
index 0000000..c37ac71
--- /dev/null
+++ 
b/org.apache.juneau.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
@@ -0,0 +1,92 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ 
***************************************************************************************************************************/
+package org.apache.juneau.server;
+
+import java.io.*;
+
+import javax.servlet.http.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.server.annotation.*;
+import org.apache.juneau.server.response.*;
+
+/**
+ * Defines the interface for handlers that convert POJOs to appropriate HTTP 
responses.
+ * <p>
+ * The {@link RestServlet} API uses the concept of registered response 
handlers for
+ *     converting objects returned by REST methods or set through {@link 
RestResponse#setOutput(Object)}
+ *     into appropriate HTTP responses.
+ * <p>
+ * Response handlers can be associated with {@link RestServlet RestServlets} 
through the following ways:
+ * <ul class='spaced-list'>
+ *     <li>Through the {@link RestResource#responseHandlers 
@RestResource.responseHandlers} annotation.
+ *     <li>By overriding {@link RestServlet#createResponseHandlers(ObjectMap)} 
and augmenting or creating your
+ *             own list of handlers.
+ * </ul>
+ * <p>
+ * By default, {@link RestServlet RestServlets} are registered with the 
following response handlers:
+ * <ul class='spaced-list'>
+ *     <li>{@link DefaultHandler} - Serializes POJOs using the Juneau 
serializer API.
+ *     <li>{@link ReaderHandler} - Pipes the output of {@link Reader Readers} 
to the response writer ({@link RestResponse#getWriter()}).
+ *     <li>{@link InputStreamHandler} - Pipes the output of {@link InputStream 
InputStreams} to the response output stream ({@link 
RestResponse#getOutputStream()}).
+ *     <li>{@link RedirectHandler} - Handles {@link Redirect} objects.
+ * </ul>
+ * <p>
+ * Response handlers can be used to process POJOs that cannot normally be 
handled through Juneau serializers, or
+ *     because it's simply easier to define response handlers for special 
cases.
+ * <p>
+ * The following example shows how to create a response handler to handle 
special <code>Foo</code> objects outside the normal
+ *     Juneau architecture.
+ * <p class='bcode'>
+ *     <ja>@RestResource</ja>(
+ *             path=<js>"/example"</js>,
+ *             responseHandlers=FooHandler.<jk>class</jk>
+ *     )
+ *     <jk>public class</jk> Example <jk>extends</jk> RestServlet {
+ *
+ *             <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>)
+ *             <jk>public</jk> Foo test1() {
+ *                     <jk>return new</jk> Foo(<js>"123"</js>);
+ *             }
+ *
+ *             <jk>public static class</jk> FooHandler <jk>implements</jk> 
ResponseHandler {
+ *                     <ja>@Override</ja>
+ *                     <jk>public boolean</jk> handle(RestRequest req, 
RestResponse res, Object output) <jk>throws</jk> IOException, RestException {
+ *                             <jk>if</jk> (output <jk>instanceof</jk> Foo) {
+ *                                     Foo foo = (Foo)output;
+ *                                     <jc>// Set some headers and body 
content.</jc>
+ *                                     res.setHeader(<js>"Foo-ID"</js>, 
foo.getId());
+ *                                     
res.getWriter().write(<js>"foo.id="</js> + foo.getId());
+ *                                     <jk>return true</jk>;  <jc>// We 
handled it.</jc>
+ *                             }
+ *                             <jk>return false</jk>;  <jc>// We didn't handle 
it.</jc>
+ *                     }
+ *             }
+ *     }
+ * </p>
+ */
+public interface ResponseHandler {
+
+       /**
+        * Process this response if possible.
+        * This method should return <jk>false</jk> if it wasn't able to 
process the response.
+        *
+        * @param req The HTTP servlet request.
+        * @param res The HTTP servlet response;
+        * @param output The POJO returned by the REST method that now needs to 
be sent to the response.
+        * @return true If this handler handled the response.
+        * @throws IOException - If low-level exception occurred on output 
stream.  Results in a {@link HttpServletResponse#SC_INTERNAL_SERVER_ERROR} 
error.
+        * @throws RestException - If some other exception occurred.  Can be 
used to provide an appropriate HTTP response code and message.
+        */
+       boolean handle(RestRequest req, RestResponse res, Object output) throws 
IOException, RestException;
+}

Reply via email to