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;