more pom and social example cleanup
diff --git a/jpa/employee.dynamic/pom.xml b/jpa/employee.dynamic/pom.xml
index cffc152..ff25945 100644
--- a/jpa/employee.dynamic/pom.xml
+++ b/jpa/employee.dynamic/pom.xml
@@ -9,9 +9,7 @@
 		<version>2.4.2-SNAPSHOT</version>
 	</parent>
 
-	<groupId>eclipselink.example.jpa</groupId>
 	<artifactId>employee.dynamic</artifactId>
-	<version>2.4.2-SNAPSHOT</version>
 	<packaging>jar</packaging>
 
 	<name>employee.dynamic</name>
diff --git a/jpa/polyglot/polyglot.nosql/.classpath b/jpa/polyglot/polyglot.nosql/.classpath
index 517e18a..698778f 100644
--- a/jpa/polyglot/polyglot.nosql/.classpath
+++ b/jpa/polyglot/polyglot.nosql/.classpath
@@ -11,14 +11,20 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
 		<attributes>
+			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
 		<attributes>
-			<attribute name="owner.project.facets" value="java"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<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"/>
diff --git a/jpa/polyglot/polyglot.nosql/.project b/jpa/polyglot/polyglot.nosql/.project
index ae3f1cf..dd705a5 100644
--- a/jpa/polyglot/polyglot.nosql/.project
+++ b/jpa/polyglot/polyglot.nosql/.project
@@ -16,12 +16,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
diff --git a/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs b/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs
index 443e085..77dd058 100644
--- a/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,91 @@
 eclipse.preferences.version=1
+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.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.compliance=1.7
+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=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+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=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+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=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+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=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+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=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+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=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+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.source=1.7
diff --git a/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.wst.validation.prefs b/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..9e2c3a9
--- /dev/null
+++ b/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,9 @@
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
+USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.402.v201212031633
+eclipse.preferences.version=1
+override=true
+suspend=false
+vals/org.eclipse.jpt.jpa.core.jpaValidator/global=FF01
+vf.version=3
diff --git a/jpa/polyglot/polyglot.nosql/pom.xml b/jpa/polyglot/polyglot.nosql/pom.xml
index 3264688..6bb1371 100644
--- a/jpa/polyglot/polyglot.nosql/pom.xml
+++ b/jpa/polyglot/polyglot.nosql/pom.xml
@@ -14,8 +14,8 @@
     <dependencies>
 		<dependency>
 			<groupId>${eclipselink.groupid}</groupId>
-			<artifactId>javax.persistence</artifactId>
-			<version>2.0.5</version>
+			<artifactId>eclipselink</artifactId>
+			<version>${eclipselink.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>${eclipselink.groupid}</groupId>
diff --git a/moxy/social-binding/pom.xml b/moxy/social-binding/pom.xml
index 6beef6c..f1bcc7b 100644
--- a/moxy/social-binding/pom.xml
+++ b/moxy/social-binding/pom.xml
@@ -132,8 +132,8 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>2.5.1</version>
                 <configuration>
-                    <source>1.6</source>
-                    <target>1.6</target>
+                    <source>1.7</source>
+                    <target>1.7</target>
                 </configuration>
             </plugin>
 
diff --git a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/FlikrReader.java b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/FlikrReader.java
index 309def1..47146aa 100644
--- a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/FlikrReader.java
+++ b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/FlikrReader.java
@@ -26,6 +26,7 @@
 import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory;
 
 /**
+ * Example of how EclipseLink MOXy can be used
  * 
  * @author rbarkhous
  * @since EclipseLink 2.4.2
@@ -34,7 +35,11 @@
 
     private DynamicJAXBContext context;
 
-    public FlikrReader() {
+    /**
+     * Initialize the MOXy context that will be used to unmarshal the Flikr
+     * results.
+     */
+    public FlikrReader(ClassLoader cl) throws JAXBException {
         ClassLoader loader = Thread.currentThread().getContextClassLoader();
 
         InputStream flickrBindings = loader.getResourceAsStream(FLICKR_BINDINGS);
@@ -44,60 +49,21 @@
 
         Map<String, Object> properties = new HashMap<String, Object>();
         properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, dataBindings);
-        try {
-            context = DynamicJAXBContextFactory.createContextFromOXM(loader, properties);
-        } catch (JAXBException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
 
+        context = DynamicJAXBContextFactory.createContextFromOXM(loader, properties);
     }
 
-    public Map<String, DynamicEntity> readFlickrResults(Map<String, DynamicEntity> redditMap) {
-        Map<String, DynamicEntity> results = new HashMap<String, DynamicEntity>();
-
-        for (String postUrl : redditMap.keySet()) {
-            DynamicEntity post = redditMap.get(postUrl);
-            DynamicEntity flickrResults = readFlickrResult(postUrl, post);
-
-
-            results.put(postUrl, flickrResults);
-
-            ArrayList<DynamicEntity> flickerItems = flickrResults.get("items");
-            if (flickerItems != null) {
-                int size = flickerItems.size();
-                if (size >= IMAGE_LIMIT) {
-                    size = IMAGE_LIMIT;
-                }
-                for (int i = 0; i < size; i++) {
-                    System.out.println("\t" + flickerItems.get(i).get("imageUrl"));
-                }
-            } else {
-                System.out.println("\tNo results found.");
-            }
-        }
-
-        return results;
-
-    }
-
-    public DynamicEntity readFlickrResult(String postUrl, DynamicEntity post) {
-
-        System.out.println("\nHeadline: [" + post.get("title") + "]");
-
-        String keywords = new KeywordExtractor().extractKeywords(post.get("title").toString());
-
+    public DynamicEntity readFlickrResult(String keywords) {
         String flickrUrlString = FLICKR_URL + keywords;
         System.out.print("Searching Flickr: [" + flickrUrlString + "]... ");
 
         InputStream flickrStream = null;
 
         try {
+            Unmarshaller u = context.createUnmarshaller();
+
             flickrStream = new URL(flickrUrlString).openConnection().getInputStream();
 
-            System.out.println("Done.");
-
-            Unmarshaller u = context.createUnmarshaller();
             return (DynamicEntity) u.unmarshal(flickrStream);
         } catch (IOException | JAXBException e) {
             throw new RuntimeException("FLIKR access failed", e);
@@ -112,10 +78,7 @@
 
     }
 
-    // ========================================================================
-
     // See http://www.flickr.com/services/feeds/
-    private final int IMAGE_LIMIT = 6;
     private final String FLICKR_URL = "http://api.flickr.com/services/feeds/photos_public.gne?safe_search=1&tags=";
     private final String FLICKR_BINDINGS = "META-INF/bindings-flickr.json";
 
diff --git a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/Main.java b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/Main.java
index c418f16..61a3e08 100644
--- a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/Main.java
+++ b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/Main.java
@@ -12,10 +12,18 @@
 
 import java.awt.Desktop;
 import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.xml.bind.JAXBException;
 
 import org.eclipse.persistence.dynamic.DynamicEntity;
 
+import eclipselink.example.moxy.socialbinding.util.KeywordExtractor;
+
 /**
  * Main example execution.
  * 
@@ -24,18 +32,43 @@
  */
 public class Main {
 
-    public static void main(String[] args) {
-        File file = create("technology", "target/classes/output.html", 5);
+    private static Logger logger = Logger.getLogger("eclipselink.example.moxy.socialbinding");
+
+    public static void main(String[] args) throws JAXBException {
+        File file = create("technology", "target/classes/output.html", 5, 5);
 
         launchSystemBrowser(file);
     }
 
-    public static File create(String topic, String targetFile, int maxResults) {
-        Map<String, DynamicEntity> redditResults = new RedditReader().readRedditPosts(topic);
-        Map<String, DynamicEntity> flickrResults = new FlikrReader().readFlickrResults(redditResults);
+    public static File create(String topic, String targetFile, int maxResults, int imageLimit) throws JAXBException {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
 
-        HTMLWriter writer = new HTMLWriter();
-        return writer.write(topic, targetFile, maxResults, redditResults, flickrResults);
+        Map<String, DynamicEntity> redditResults = new RedditReader(cl).readRedditPosts(topic);
+        Map<String, DynamicEntity> flickrResults = new HashMap<String, DynamicEntity>();
+        FlikrReader flikrReader = new FlikrReader(cl);
+
+        for (String postUrl : redditResults.keySet()) {
+            DynamicEntity post = redditResults.get(postUrl);
+
+            logger.log(Level.INFO, "\nHeadline: [" + post.get("title") + "]");
+
+            String keywords = KeywordExtractor.extractKeywords(post.get("title").toString());
+            DynamicEntity flickrResult = flikrReader.readFlickrResult(keywords);
+
+            flickrResults.put(postUrl, flickrResult);
+
+            ArrayList<DynamicEntity> flickerItems = flickrResult.get("items");
+            if (flickerItems != null) {
+                for (int i = 0; i < flickerItems.size() && i <= imageLimit; i++) {
+                    logger.log(Level.INFO, "\t" + flickerItems.get(i).get("imageUrl"));
+                }
+            } else {
+                logger.log(Level.WARNING, "\tNo results found.");
+            }
+
+        }
+
+        return new HTMLWriter().write(topic, targetFile, maxResults, redditResults, flickrResults);
     }
 
     public static void launchSystemBrowser(File file) {
diff --git a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/RedditReader.java b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/RedditReader.java
index ad19979..3d9e7a3 100644
--- a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/RedditReader.java
+++ b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/RedditReader.java
@@ -40,21 +40,16 @@
 
     private DynamicJAXBContext context;
 
-    public RedditReader() {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
-
-        InputStream redditBindings = loader.getResourceAsStream(REDDIT_BINDINGS);
+    public RedditReader(ClassLoader cl) throws JAXBException {
+        InputStream redditBindings = cl.getResourceAsStream(REDDIT_BINDINGS);
 
         ArrayList<InputStream> dataBindings = new ArrayList<InputStream>(3);
         dataBindings.add(redditBindings);
 
         Map<String, Object> properties = new HashMap<String, Object>();
         properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, dataBindings);
-        try {
-            context = DynamicJAXBContextFactory.createContextFromOXM(loader, properties);
-        } catch (JAXBException e) {
-            throw new RuntimeException("Context creation failed", e);
-        }
+
+        this.context = DynamicJAXBContextFactory.createContextFromOXM(cl, properties);
     }
 
     public Map<String, DynamicEntity> readRedditPosts(String topic) {
diff --git a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/KeywordExtractor.java b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/util/KeywordExtractor.java
similarity index 90%
rename from moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/KeywordExtractor.java
rename to moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/util/KeywordExtractor.java
index 2a7744d..a170cf2 100644
--- a/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/KeywordExtractor.java
+++ b/moxy/social-binding/src/main/java/eclipselink/example/moxy/socialbinding/util/KeywordExtractor.java
@@ -8,7 +8,7 @@
  * and the Eclipse Distribution License is available at
  * http://www.eclipse.org/org/documents/edl-v10.php.
  ******************************************************************************/
-package eclipselink.example.moxy.socialbinding;
+package eclipselink.example.moxy.socialbinding.util;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -24,7 +24,7 @@
  */
 public class KeywordExtractor {
 
-    public String extractKeywords(String postTitle) {
+    public static String extractKeywords(String postTitle) {
         StringTokenizer tokenizer = new StringTokenizer(postTitle, ",.!?()[]'\" \t\n\r\f/");
 
         ArrayList<String> words = new ArrayList<String>();
@@ -49,7 +49,7 @@
         return keywords;
     }
 
-    private class StringLengthComparator implements Comparator<String> {
+    private static class StringLengthComparator implements Comparator<String> {
         public int compare(String o1, String o2) {
             if (o1.length() > o2.length()) {
                 return -1;