Compare commits

..

93 commits

Author SHA1 Message Date
Patrick Gotthard
a4b8f35741 Updates version to 1.7.2-SNAPSHOT 2017-01-07 12:48:16 +01:00
Patrick Gotthard
a5436ba70e Updates version to 1.7.1 2017-01-07 12:47:55 +01:00
Patrick Gotthard
4c817f7ad1 Updates build config 2017-01-07 12:41:57 +01:00
Patrick Gotthard
a0efae5cde Updates SCM config 2017-01-07 12:27:29 +01:00
Patrick Gotthard
e7cab478b3 Fixes problem with space in properties path 2017-01-07 10:54:04 +01:00
Patrick Gotthard
700dd58514 Fixes typo in documentation 2017-01-07 09:12:07 +01:00
mishako
39c460c0c6 Fix osgi test for rome fetcher (#322)
The test is fragile, but there is no point in improving it since fetcher
is deprecated anyway.
2017-01-04 13:07:24 +01:00
Mark Hobson
9b27f0563d Set Atom feed icon when converting from SyndFeed (#321) 2017-01-04 13:05:28 +01:00
Sönke
998e2060eb Improved Atom Module to work with several links (#320)
* Improved AtomLink Module to work with several links.
* Added getLink & setLink for backwards compability
* Improved cloning of AtomLinkModule
2016-10-19 11:03:19 +02:00
Patrick Gotthard
e77ed9fd17 Merge pull request #319 from mishako/readme-cleanup
Readme cleanup
2016-10-11 08:31:09 +02:00
mishako
cca2fb9a42 Add code examples to readme 2016-10-10 23:00:27 +02:00
mishako
3f59e5c7eb Remove changelog from the readme
The project is hosted on github. There is a UI for releases where we
link to closed issues from each release.
2016-10-10 22:30:33 +02:00
mishako
13a5e407e5 Simplify module descriptions in readme 2016-10-10 22:26:41 +02:00
mishako
bc33fa68e8 List deprecated modules in readme
No need for detailed description of modules that are deprecated and
will be removed soon anyway.
2016-10-10 22:20:11 +02:00
mishako
c0a3a2cd16 Remove rome-utils from modules list in readme
Utils module is not intended to be used on it's own. This is not the kind of
information that should live in readme.
2016-10-10 22:16:53 +02:00
mishako
0bd157918b Remove rome-parent from modules list in readme
It's a common practice for maven projects to have a parent module and
is not important enough to include information about it in readme.
2016-10-10 22:08:16 +02:00
Michael Dandini
b87f3293fe Fixing extra whitespace in GeoRSS (#315)
I fixed issue where more than one space in "<georss:point>" elements
caused parsing to fail.

Although most implementations of GeoRSS use one space between the
coordinates, the specification technically allows for more than one
whitespace character. See http://www.georss.org/simple.html for details.
2016-09-24 09:43:07 +02:00
Patrick Gotthard
48cccfb5a9 [maven-release-plugin] prepare for next development iteration 2016-07-24 12:36:20 +02:00
Patrick Gotthard
63bd54f047 [maven-release-plugin] prepare release 1.7.0 2016-07-24 12:36:15 +02:00
Patrick Gotthard
b7a715d54a Adds developer entry to be able to publish to Maven Central 2016-07-24 10:40:24 +02:00
Patrick Gotthard
1606804f0f Merge pull request #312 from mishako/fix-cc-license-test
Fix license test in cc module
2016-07-19 11:03:39 +02:00
mishako
0656fa3ef4 Fix license test in cc module
There was a race condition in the test. The value passed to the
Random::nextInt method could sometimes be zero due to the other thread
not incrementing it in time.
2016-07-19 10:35:05 +02:00
Patrick Gotthard
1ddb67044b Merge pull request #311 from rometools/build-status-badge
Add build status badge to readme
2016-07-19 07:24:44 +02:00
mishako
511c6ffac8 Add build status badge to readme 2016-07-18 15:41:10 +02:00
Patrick Gotthard
761f2aa274 Merge pull request #306 from mishako/remove-developers-list
Remove developers list from pom.xml
2016-07-18 09:45:29 +02:00
Patrick Gotthard
0de36f1a02 Merge pull request #307 from mishako/no-java-beans
Stop using java.beans package
2016-07-18 09:44:44 +02:00
Patrick Gotthard
e3dc44cf97 Merge pull request #308 from mishako/travis-config
Add travis-ci config
2016-07-18 09:43:41 +02:00
Patrick Gotthard
acd0911c4d Merge pull request #309 from mishako/tostring-bean-threadlocal-cleanup
Clean up threadlocal after usage
2016-07-18 09:42:24 +02:00
Patrick Gotthard
74befdc358 Merge pull request #310 from mishako/deprecate-certiorem-propono
Deprecate all classes in certiorem and propono
2016-07-18 09:41:30 +02:00
mishako
1395794562 Deprecate all classes in certiorem and propono
Certiorem and Propono depend on rome-fetcher which is now deprecated and
will be removed in the next major version (see #276).
2016-07-16 19:33:04 +02:00
mishako
9199f0d66b Clean up threadlocal after usage
ThreadLocal is not guaranteed to be garbage collected if the thread
keeps running. This can lead to a memory leak in applications with
long-living threads.

Fixes #303
2016-07-15 22:18:29 +02:00
mishako
31eb82b386 Delete unit test accessing external resource
Unit tests should be reliable. Depending on external resource makes the
test fragile. The module will be deprecated, so there is no point in
rewriting the test.
2016-07-09 13:01:22 +02:00
mishako
d9d2bb9e32 Add travis-ci config 2016-07-09 12:53:20 +02:00
mishako
20e07a97e1 Stop using java.beans package
Some platforms don't include `java.beans` package in the runtime. To
support these platforms we have to stop using classes from this package.
Replaced `java.beans.PropertyDescriptor` with an implementation copied
from OpenBeans. Also removed some unnecessary code. Haven't made any
changes in rome-fetcher because it is deprecated and will be removed in
the next major version.

Fixes #155
2016-07-09 12:43:09 +02:00
mishako
970d91771a Remove developers list from pom.xml
This list is doomed to always be out of date. All the information can be
found in the version control system.
2016-06-24 19:10:14 +02:00
Patrick Gotthard
998bf4ac8e [maven-release-plugin] prepare for next development iteration 2016-06-20 20:39:55 +02:00
Patrick Gotthard
eaf6af2f9b [maven-release-plugin] prepare release 1.6.1 2016-06-20 20:39:51 +02:00
Patrick Gotthard
af93948e78 Merge pull request #304 from mishako/cleanup
Cleanup
2016-06-20 08:20:52 +02:00
mishako
29b992ba02 Combine all .gitignore files into a single one 2016-06-19 18:39:34 +02:00
mishako
d2cc166afa Delete readme files inside modules
They don't provide any additional information to what we already have in
the root readme file.
2016-06-19 18:39:33 +02:00
mishako
baa13b578e Remove license file inside modules
We already have a license file in the root.
2016-06-19 18:39:33 +02:00
mishako
f0b12ab41e Delete license header example file
License header can be copied from one of the existing files, no need
for a separate template file.
2016-06-19 18:39:33 +02:00
mishako
a6a20c3012 Remove commented out logger calls 2016-06-19 18:39:33 +02:00
mishako
ac7d9c83b5 Remove useless comments
Removed:
 * Empty comments
 * Empty @param and @return tags
 * Comments explaining how Java constructors work
 * Comments copy-pasted from parent classes
 * Comments begging to write documentation
2016-06-19 17:35:00 +02:00
mishako
c36bfd8f47 Remove @version and @author tags
Since we don't have any convention for how to use @version it's best to
avoid it completely. As for the @author tag, it is considered redundant
nowadays because this information is in the version control system.
2016-06-19 17:34:54 +02:00
mishako
6f6ff0ddd5 Remove LGPL license headers
Dual-licensing allows us to choose any of the licenses. Since the rest
of the project is licensed under the Apache license it makes sense to
remove LGPL altogether.

`CustomTagImpl.java` and `DurationTest.java` didn't have Apache license
header, but I assume they were supposed to, judging from Robert's email
from 5 Aug 2010 on the Rome dev mailing list: "Well, all those files are
things I moved from my other project. If the license headers weren't
changed, it was simply because of an oversight on my part".
2016-06-19 17:34:44 +02:00
mishako
0993a6a10c Remove license info from package.html files
We already have license headers in all java files, no need to include
it in package descriptions.
2016-06-19 17:34:19 +02:00
Patrick Gotthard
961a6407e1 Merge pull request #293 from mishako/try-catch-duration
Catch itunes duration parsing exceptions
2016-06-11 07:47:38 +02:00
mishako
943c0db298 Catch itunes duration parsing exceptions
Parsing of a malformed or empty duration resulted in an uncaught
exception that was breaking feed parsing completely. We already catch
exceptions when parsing other fields, e.g. href attribute of the image
tag. Also, it's more user-friendly to handle malformed data instead of
failing everything.
2016-06-10 21:00:01 +02:00
Patrick Gotthard
3c681bd4ae Merge pull request #300 from mishako/xml-parser-feature-fix
Do not set unsupported XML parser features
2016-05-01 12:42:11 +02:00
mishako
6920ff0fbe Do not set unsupported XML parser features
Fixes bug introduced in 2bc58a0. The call to `XMLReader::setFeature`
is used to check if the feature is supported and must happen before
`SAXBuilder::setFeature`. Otherwise XML parsing throws an exception.

The change is not tested, because it is exceptionally cumbersome to
test unsupported features. Possible ways to do it include using an
existing XML library that is known to not support features that the
code is trying to set, or implementing a mock XML parser that doesn't
support any features at all. It's hard to include an XML library
without interfering with other tests and it's hard to implement a mock
XML parser.

Fixes #294
2016-04-30 21:43:48 +02:00
mishako
63ce6584f4 Merge pull request #296 from rchakra3/NumberParserTests
Added tests for NumberParser
2016-04-27 22:27:06 +02:00
Rohan Chakravarthy
e13c27471e Added tests for NumberParser 2016-04-27 16:20:56 -04:00
Patrick Gotthard
f07562f94d Fixes Jenkinsfile
Updates Jenkinsfile to trigger SCM checkout and Maven build
2016-04-26 21:02:22 +02:00
Patrick Gotthard
eb2f5f1258 Add Jenkinsfile 2016-04-26 20:34:54 +02:00
Patrick Gotthard
d1456ace4a Merge pull request #297 from mishako/maven-site-cleanup
Maven site cleanup
2016-04-24 19:42:14 +02:00
mishako
0fed3b4bb6 Remove mentions of old versions from the site 2016-04-24 12:29:44 +02:00
mishako
eb917277b6 Remove mentions of Java 1.4 from the site 2016-04-23 23:28:55 +02:00
mishako
23a5e7990b Clean up site index page 2016-04-23 23:25:15 +02:00
mishako
70af49f938 Slightly improve layout of the site 2016-04-23 21:12:25 +02:00
mishako
e6732b88e1 Fix links to subprojects on site index page 2016-04-23 20:38:33 +02:00
mishako
083a5d32d5 Combine all maven sites into one 2016-04-10 17:38:37 +02:00
Patrick Gotthard
874a0c89a7 Merge pull request #290 from bibliolabs/master
Adds missing entry 'rights' to Atom 1.0 generator output
2016-04-09 08:25:43 +02:00
Patrick Gotthard
932f0546dc Merge pull request #292 from mishako/dc-date-test-rewrite
Rewrite dublin core date test
2016-04-09 08:25:12 +02:00
mishako
15a5f15ed0 Rewrite dublin core date test
Original code had a copyright notice and no license header. Completely
rewriting the code is one of the ways to make sure the code is licensed
under Apache license.
2016-03-31 22:11:23 +02:00
mishako
94861b0532 Merge pull request #291 from puntogil/master
fix license headers
2016-03-30 21:10:26 +02:00
gil
a090ed9b24 fix license headers 2016-03-30 01:43:42 +02:00
Michael Atwood
7bbcce50d1 Added missing entry 'rights' to Atom 1.0 generator output. 2016-03-29 09:48:32 -04:00
mishako
9aa69bf607 Merge pull request #283 from sagen/flexible_filesize
Parse units in filesizes in Media RSS
2016-03-28 23:00:04 +02:00
alesagen
9b45f200af Parse units in filesizes in Media RSS 2016-03-28 22:55:34 +02:00
Patrick Gotthard
e91a99ccea Merge pull request #284 from DevFactory/release/adding-private-constructor-fix-1
Utility classes should not have public constructors
2016-03-23 22:10:27 +01:00
ayman abdelghany
ce28559041 Utility classes should not have public constructors 2016-03-21 23:33:52 +02:00
Patrick Gotthard
a731362234 [maven-release-plugin] prepare for next development iteration 2016-03-11 14:50:53 +01:00
Patrick Gotthard
28fad6ad07 [maven-release-plugin] prepare release 1.6.0 2016-03-11 14:50:49 +01:00
Patrick Gotthard
b907f73a8e Disabled doclint 2016-03-11 14:39:26 +01:00
Patrick Gotthard
1fe72c7ad0 Updated format for tag names 2016-03-11 14:29:25 +01:00
mishako
0683b18cf4 Merge pull request #278 from rometools/release-config
POM configurations for next release to Maven Central
2016-03-09 21:45:42 +01:00
Patrick Gotthard
d4b8b14c88 Updating all windows line breaks (crlf) to unix line breaks (lf) 2016-03-06 08:51:57 +01:00
Patrick Gotthard
fe4fb3b4cd Fixed typo in description 2016-03-05 02:21:05 +01:00
Patrick Gotthard
30638903e9 POM configurations for next release to Maven Central 2016-03-05 02:12:27 +01:00
Patrick Gotthard
6f61c4f12e Added configuration for line endings 2016-03-05 02:00:13 +01:00
Patrick Gotthard
494cff6955 Added changelog for version 1.6.0 2016-03-04 23:56:45 +01:00
mishako
91da3003a1 Merge pull request #277 from rometools/ROME-276-fetcher-removal
#276 added deprecation notice to rome-fetcher
2016-03-04 23:29:51 +01:00
Patrick Gotthard
fdffe7d315 #276 added deprecation notice to rome-fetcher 2016-03-04 23:02:03 +01:00
mishako
b718922a53 Merge pull request #275 from rometools/ROME-234-fetcher-allowdoctypes
#234 Implemented possibility to allow doctype declarations using fetcher
2016-03-03 21:53:50 +01:00
Patrick Gotthard
a058deb267 Merge pull request #274 from mishako/rss-2-by-default
Use RSS2 parser as fallback when no version is set
2016-03-01 21:25:42 +01:00
mishako
deb781924e Use RSS v2 parser by default
Changed RSS v2 parser to match any feed that has "rss" as root element.
This makes Rome more lenient when handling feeds that don't adhere to
the RSS spec, namely have the "version" attribute missing.
2016-03-01 20:51:16 +01:00
Patrick Gotthard
a1995c4779 Merge pull request #273 from mishako/osgi-test
Add OSGi integration tests
2016-03-01 20:21:37 +01:00
mishako
7a2805c904 Add OSGi integration tests 2016-03-01 20:05:39 +01:00
Patrick Gotthard
f9dedf8200 #234 Implemented possibility to allow doctype declarations using fetcher 2016-03-01 20:04:53 +01:00
mishako
c94292698a Fix OSGi bundling configuration
It got mixed up during the mega-merge when we merged multiple
repositories into one. The mega-merge branch did not include the latest
commit from master. As a result, rebase applied that commit to the
wrong pom.xml file.
2016-02-27 00:43:50 +01:00
Patrick Gotthard
7debaa444e Merge pull request #272 from rometools/maven-central-badge
Add maven central badge to readme
2016-02-26 04:50:32 +01:00
mishako
d779068ed3 Add maven central badge to readme
The badge shows the latest version and links to it.
2016-02-23 00:04:27 +01:00
761 changed files with 5574 additions and 11595 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Set the default behavior, in case people don't have core.autocrlf set. See http://git-scm.com/docs/gitattributes
* text=auto

10
.gitignore vendored
View file

@ -1,3 +1,7 @@
/.settings
/.project
/target
target
.checkstyle
.project
.settings
.classpath
.idea
*.iml

5
.travis.yml Normal file
View file

@ -0,0 +1,5 @@
language: java
jdk:
- oraclejdk8
- oraclejdk7
script: mvn verify

10
Jenkinsfile vendored Normal file
View file

@ -0,0 +1,10 @@
node {
stage 'Checkout'
checkout scm
stage 'Build'
def mvnHome = tool 'Maven 3.3.9'
sh "${mvnHome}/bin/mvn clean install"
}

View file

@ -1,3 +1,4 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@ -178,7 +179,7 @@ Apache License
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
@ -186,7 +187,7 @@ Apache License
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View file

@ -1,36 +1,35 @@
# ROME
[![Build Status](https://travis-ci.org/rometools/rome.svg?branch=master)](https://travis-ci.org/rometools/rome)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.rometools/rome/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.rometools/rome)
ROME is a Java framework for RSS and Atom feeds. The framework consist of several modules:
| Module | Description |
| ------ | ----------- |
| rome-parent | is the parent project for all ROME modules and contains the common Maven configuration. |
| rome-utils | provides utility classes that are used in several ROME modules. |
| rome | is the main RSS and Atom library. It makes it easy to work with most syndication formats: RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0. |
| rome-modules| enables rome to handle several feed extensions like MediaRSS, GeoRSS and others. |
| rome-opml | contains [OPML](https://en.wikipedia.org/wiki/OPML) parsers and tools. |
| rome-fetcher | is a caching feed fetcher that supports retrieval of feeds via HTTP conditional GET. Supports ETags, GZip compression, and RFC3229 Delta encoding. |
| rome-certiorem | is a [PubSubHubub](https://en.wikipedia.org/wiki/PubSubHubbub) implementation based on rome. |
| rome-certiorem-webapp | is an example webapp for rome-certiorem |
| rome-propono | supports publishing protocols, specifically the Atom Publishing Protocol and the legacy MetaWeblog API. Propono includes an Atom client library, an Atom server framework and a Blog client that supports both Atom protocol and the MetaWeblog API. |
| `rome` | Library for generating and parsing RSS and Atom feeds. |
| `rome-modules` | Generators and parsers for extensions like MediaRSS, GeoRSS and others. |
| `rome-opml` | [OPML](https://en.wikipedia.org/wiki/OPML) parsers and tools. |
## Changelog
Deprecated modules: `rome-fetcher`, `rome-certiorem`, `rome-certiorem-webapp` and `rome-propono`.
### 1.5.1
## Examples
- solved an [XML bomb](https://en.wikipedia.org/wiki/Billion_laughs) vulnerability
Parse a feed:
Important note: due to the security fix ROME now forbids all Doctype declarations by default. This will break compatibility with RSS 0.91 Netscape
because it requires a Doctype declaration. When you experience problems you have to activate the property **allowDoctypes** on the SyndFeedInput object. You
should only use this possibility when the feeds that you process are absolutely trustful.
```java
String url = "http://stackoverflow.com/feeds/tag?tagnames=rome";
SyndFeed feed = new SyndFeedInput().build(new XmlReader(new URL(url)));
System.out.println(feed.getTitle());
```
### 1.5.0
Generate a feed:
- many (untracked) enhancements
- code cleanup
- renamed packages (was required to be able to push to Maven Central after years again)
- updated sourcecode to Java 1.6
### Prior to 1.5.0
- see [http://rometools.github.io/rome/ROMEReleases](http://rometools.github.io/rome/ROMEReleases)
```java
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
feed.setTitle("test-title");
feed.setDescription("test-description");
feed.setLink("https://example.org");
System.out.println(new SyndFeedOutput().outputString(feed));
```

193
pom.xml
View file

@ -3,15 +3,9 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>9</version>
</parent>
<groupId>com.rometools</groupId>
<artifactId>rome-parent</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
@ -21,6 +15,7 @@
<module>rome-fetcher</module>
<module>rome-modules</module>
<module>rome-opml</module>
<module>rome-osgi-test</module>
<module>rome-propono</module>
<module>rome-utils</module>
</modules>
@ -29,7 +24,7 @@
<description>Parent for all ROME projects</description>
<url>http://rometools.github.io/rome-parent/</url>
<url>http://rometools.com</url>
<licenses>
<license>
@ -40,20 +35,31 @@
</licenses>
<scm>
<connection>scm:git:ssh://github.com/rometools/rome-parent.git</connection>
<developerConnection>scm:git:ssh://git@github.com/rometools/rome-parent.git</developerConnection>
<url>https://github.com/rometools/rome-parent</url>
<connection>scm:git:https://github.com/rometools/rome.git</connection>
<developerConnection>scm:git:ssh://git@github.com/rometools/rome.git</developerConnection>
<url>https://github.com/rometools/rome</url>
</scm>
<developers>
<developer>
<name>Patrick Gotthard</name>
<email>patrick@patrick-gotthard.de</email>
<url>http://www.patrick-gotthard.de</url>
<timezone>+1</timezone>
<roles>
<role>Project lead</role>
</roles>
</developer>
</developers>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -65,7 +71,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<version>3.6.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
@ -73,13 +79,13 @@
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.8.1</version>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@ -89,40 +95,23 @@
<deployAtEnd>true</deployAtEnd>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.5</version>
<configuration>
<connectionType>developerConnection</connectionType>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>1.1</version>
</plugin>
<!-- The following plugin doesn't modify the build. It is only used to hide irrelevant warnings in Eclipse -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.1</version>
<version>3.2.0</version>
<executions>
<execution>
<id>bundle</id>
@ -133,47 +122,86 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<instructions>
<Export-Package>
com.rometools.rome.feed,
com.rometools.rome.feed.atom,
com.rometools.rome.feed.impl,
com.rometools.rome.feed.module,
com.rometools.rome.feed.rss,
com.rometools.rome.feed.synd,
com.rometools.rome.io,
</Export-Package>
<Import-Package>
org.jdom2,
org.jdom2.filter,
org.jdom2.input,
org.jdom2.input.sax,
org.jdom2.output,
org.slf4j,
org.w3c.dom,
org.xml.sax
</Import-Package>
<_exportcontents>com.rometools.utils</_exportcontents>
<Embed-Dependency>rome-utils</Embed-Dependency>
</instructions>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</reporting>
</build>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
@ -181,42 +209,42 @@
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-certiorem</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-certiorem-webapp</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-fetcher</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-modules</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-opml</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-propono</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome-utils</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</dependency>
<!-- JDOM -->
<dependency>
@ -245,8 +273,7 @@
<dependency>
<groupId>xmlunit</groupId>
<artifactId>xmlunit</artifactId>
<version>1.5</version>
<scope>test</scope>
<version>1.6</version>
</dependency>
<!-- Hamcrest -->
<dependency>

View file

@ -1,4 +0,0 @@
/.classpath
/.project
/.settings
/target

View file

@ -1,3 +0,0 @@
# ROME Certiorem WebApp
An example webapp for rome-certiorem

View file

@ -1,12 +1,11 @@
<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">
<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>
<parent>
<groupId>com.rometools</groupId>
<artifactId>rome-parent</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</parent>
<artifactId>rome-certiorem-webapp</artifactId>
@ -14,32 +13,19 @@
<name>rome-certiorem-webapp</name>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<description>A simple webapp that uses rome-certiorem</description>
<scm>
<connection>scm:git:git@github.com:rometools/rome-certiorem-webapp.git</connection>
<developerConnection>scm:git:git@github.com:rometools/rome-certiorem-webapp.git</developerConnection>
<url>https://github.com/rometools/rome-certiorem-webapp/</url>
</scm>
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -13,7 +26,9 @@ import com.rometools.certiorem.web.AbstractHubServlet;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
@Singleton
public class HubServlet extends AbstractHubServlet {

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -20,7 +33,9 @@ import com.rometools.certiorem.pub.Publisher;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
@Singleton
public class NotifyTest extends HttpServlet {

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -28,7 +41,9 @@ import com.rometools.fetcher.impl.HttpURLFeedFetcher;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class ServerModule extends GuiceServletContextListener {
private static final Logger LOG = LoggerFactory.getLogger(ServerModule.class);

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -13,7 +26,9 @@ import com.rometools.certiorem.web.AbstractSubServlet;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
@Singleton
public class SubServlet extends AbstractSubServlet {

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -22,7 +35,9 @@ import com.rometools.fetcher.impl.SyndFeedInfo;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
@Singleton
public class SubTest extends HttpServlet {

View file

@ -1,4 +0,0 @@
/.classpath
/.project
/.settings
/target

View file

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed 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.

View file

@ -1,3 +0,0 @@
# ROME Certiorem
[PubSubHubub](https://en.wikipedia.org/wiki/PubSubHubbub) implementation based on ROME

View file

@ -1,12 +1,11 @@
<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">
<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>
<parent>
<groupId>com.rometools</groupId>
<artifactId>rome-parent</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</parent>
<artifactId>rome-certiorem</artifactId>
@ -16,59 +15,6 @@
<description>A PubSubHubub implementation for Java based on ROME</description>
<scm>
<connection>scm:git:ssh://github.com/rometools/rome-certiorem.git</connection>
<developerConnection>scm:git:ssh://git@github.com/rometools/rome-certiorem.git</developerConnection>
<url>https://github.com/rometools/rome-certiorem</url>
</scm>
<developers>
<developer>
<name>Robert Cooper</name>
<email>kebernet@gmail.comM</email>
<url>http://www.kebernet.net</url>
</developer>
<developer>
<name>Farrukh Najmi</name>
<url>http://wellfleetsoftware.com</url>
</developer>
</developers>
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<port>9000</port>
<tempWebappDirectory>${basedir}/target/site/tempdir</tempWebappDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<scmBranch>gh-pages</scmBranch>
<pubScmUrl>${project.scm.developerConnection}</pubScmUrl>
<content>${project.build.directory}/site</content>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.rometools</groupId>

View file

@ -21,7 +21,9 @@ package com.rometools.certiorem;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class HttpStatusCodeException extends RuntimeException {
private static final long serialVersionUID = 1L;

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -15,7 +28,9 @@ import com.rometools.fetcher.impl.SyndFeedInfo;
* changes to entries in the underlying feed.
*
* @author najmi
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class DeltaFeedInfoCache implements FeedFetcherCache {
FeedFetcherCache backingCache;

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -22,7 +35,9 @@ import com.rometools.rome.feed.synd.SyndFeed;
* fetch.
*
* @author najmi
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class DeltaSyndFeedInfo extends SyndFeedInfo {
/**

View file

@ -43,7 +43,9 @@ import com.rometools.rome.feed.synd.SyndFeed;
* a very thin servlet wrapper, or other, non-HTTP notification methods you might want to use.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class Hub {
private static final Logger LOG = LoggerFactory.getLogger(Hub.class);

View file

@ -27,7 +27,9 @@ import com.rometools.rome.feed.synd.SyndFeed;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public interface Notifier {
/**
* Instructs the notifier to begin sending notifications to the list of subscribers

View file

@ -24,7 +24,9 @@ import com.rometools.certiorem.hub.data.Subscriber;
* A strategy interface for verification of subscriptions.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public interface Verifier {
/**

View file

@ -23,7 +23,9 @@ import java.util.List;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public interface HubDAO {
public List<? extends Subscriber> subscribersForTopic(String topic);

View file

@ -23,7 +23,9 @@ import java.io.Serializable;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class Subscriber implements Serializable {
/**
*

View file

@ -23,7 +23,9 @@ import java.io.Serializable;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class SubscriptionSummary implements Serializable {
/**
*

View file

@ -35,7 +35,9 @@ import com.rometools.certiorem.hub.data.SubscriptionSummary;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class JPADAO implements HubDAO {
private final EntityManagerFactory factory;

View file

@ -33,7 +33,9 @@ import com.rometools.certiorem.hub.data.Subscriber;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
@Entity
@NamedQueries({ @NamedQuery(name = "Subcriber.forTopic", query = "SELECT o FROM JPASubscriber o WHERE o.topic = :topic AND o.expired = false ORDER BY o.subscribedAt") })
public class JPASubscriber extends Subscriber implements Serializable {

View file

@ -32,7 +32,9 @@ import com.rometools.certiorem.hub.data.SubscriptionSummary;
* A Simple In-Memory HubDAO for subscribers.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class InMemoryHubDAO implements HubDAO {
private final ConcurrentHashMap<String, List<Subscriber>> subscribers = new ConcurrentHashMap<String, List<Subscriber>>();
private final ConcurrentHashMap<String, ConcurrentHashMap<String, SubscriptionSummary>> summaries = new ConcurrentHashMap<String, ConcurrentHashMap<String, SubscriptionSummary>>();

View file

@ -40,7 +40,9 @@ import com.rometools.rome.io.SyndFeedOutput;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public abstract class AbstractNotifier implements Notifier {
private static final Logger LOG = LoggerFactory.getLogger(AbstractNotifier.class);

View file

@ -24,7 +24,9 @@ import com.rometools.certiorem.hub.data.Subscriber;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class Notification {
int retryCount = 0;

View file

@ -31,7 +31,9 @@ import com.rometools.certiorem.hub.data.SubscriptionSummary;
* A notifier implementation that uses a thread pool to deliver notifications to subscribers
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class ThreadPoolNotifier extends AbstractNotifier {
private static final long TWO_MINUTES = 2 * 60 * 1000;
protected final ThreadPoolExecutor exeuctor;

View file

@ -24,7 +24,9 @@ import com.rometools.certiorem.hub.data.SubscriptionSummary;
* A notifier that does not use threads. All calls are blocking and synchronous.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class UnthreadedNotifier extends AbstractNotifier {
/**

View file

@ -39,7 +39,9 @@ import com.rometools.certiorem.hub.data.Subscriber;
* operations, and expects a child class to do Async ops.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public abstract class AbstractVerifier implements Verifier {
private static final Logger LOG = LoggerFactory.getLogger(AbstractVerifier.class);

View file

@ -28,7 +28,9 @@ import com.rometools.certiorem.hub.data.Subscriber;
* Uses a ThreadPoolExecutor to do async verifications.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class ThreadPoolVerifier extends AbstractVerifier {
protected final ThreadPoolExecutor exeuctor;

View file

@ -23,7 +23,9 @@ import java.util.concurrent.ThreadPoolExecutor;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class ThreadpoolVerifierAdvanced extends ThreadPoolVerifier {
public ThreadpoolVerifierAdvanced(final ThreadPoolExecutor executor) {

View file

@ -24,7 +24,9 @@ import com.rometools.certiorem.hub.data.Subscriber;
* A verifier that does not use threads. Suitable for Google App Engine.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class UnthreadedVerifier extends AbstractVerifier {
@Override

View file

@ -21,7 +21,9 @@ package com.rometools.certiorem.pub;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class NotificationException extends Exception {
/**

View file

@ -36,7 +36,9 @@ import com.rometools.rome.feed.synd.SyndLink;
* A class for sending update notifications to a hub.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class Publisher {
private static final Logger LOG = LoggerFactory.getLogger(Publisher.class);

View file

@ -23,7 +23,9 @@ import com.rometools.certiorem.sub.data.Subscription;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public interface Requester {
public void sendSubscribeRequest(String hubUrl, Subscription subscription, String verifySync, long leaseSeconds, String secret, String callbackUrl,
RequestCallback callback);

View file

@ -47,7 +47,9 @@ import com.rometools.rome.io.SyndFeedInput;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class Subscriptions {
private static final Logger LOG = LoggerFactory.getLogger(Subscriptions.class);

View file

@ -21,7 +21,9 @@ package com.rometools.certiorem.sub.data;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public interface SubDAO {
public Subscription findById(String id);

View file

@ -23,7 +23,9 @@ import java.io.Serializable;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class Subscription implements Serializable {
/**
*

View file

@ -1,4 +1,17 @@
/*
*
* Licensed 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.
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@ -10,7 +23,9 @@ import com.rometools.fetcher.impl.SyndFeedInfo;
/**
*
* @author najmi
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public interface SubscriptionCallback {
void onNotify(Subscription subscribed, SyndFeedInfo feedInfo);

View file

@ -35,7 +35,9 @@ import com.rometools.certiorem.sub.data.Subscription;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class InMemorySubDAO implements SubDAO {
private static final Logger LOG = LoggerFactory.getLogger(InMemorySubDAO.class);

View file

@ -29,7 +29,9 @@ import com.rometools.certiorem.sub.data.Subscription;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public abstract class AbstractRequester implements Requester {
protected boolean sendRequest(final String hubUrl, final String mode, final Subscription subscription, final String verifySync, final long leaseSeconds,

View file

@ -29,7 +29,9 @@ import com.rometools.certiorem.sub.data.Subscription;
* A simple requester implementation that always makes requests as Async.
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class AsyncRequester extends AbstractRequester {
private static final Logger LOG = LoggerFactory.getLogger(AsyncRequester.class);

View file

@ -33,7 +33,9 @@ import com.rometools.certiorem.sub.data.Subscription;
* A simple requester implementation that always makes requests as Async.
*
* @author Farrukh Najmi
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public class SyncRequester extends AbstractRequester {
private static final Logger LOG = LoggerFactory.getLogger(SyncRequester.class);

View file

@ -32,7 +32,9 @@ import com.rometools.certiorem.hub.Hub;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public abstract class AbstractHubServlet extends HttpServlet {
/**
*

View file

@ -32,7 +32,9 @@ import com.rometools.certiorem.sub.Subscriptions;
/**
*
* @author robert.cooper
* @deprecated Certiorem will be removed in Rome 2.
*/
@Deprecated
public abstract class AbstractSubServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

View file

@ -1,8 +0,0 @@
h1 {
padding: 4px 4px 4px 6px;
border: 1px solid #999;
color: #900;
background-color: #ddd;
font-weight:900;
font-size: x-large;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/DECORATION/1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
name="ROME Certiorem">
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.3.0</version>
</skin>
<custom>
<fluidoSkin>
<gitHub>
<projectId>rometools/rome-certiorem</projectId>
<ribbonOrientation>right</ribbonOrientation>
<ribbonColor>gray</ribbonColor>
</gitHub>
</fluidoSkin>
</custom>
<bannerLeft>
<name>ROME</name>
<src>images/romelogo.png</src>
<href>http://github.com/rometools/</href>
</bannerLeft>
<publishDate position="right" />
<version position="left" />
<body>
<menu name="ROME Certiorem">
<item name="Overview" href="index.html" />
<item name="Tutorial" href="CertioremTutorial.html" />
<item name="Example project" href="http://github.com/rometools/rome-certiorem-webapp/"/>
</menu>
<menu ref="reports" />
</body>
</project>

View file

@ -1,41 +0,0 @@
/*
* To change this template, choose Tools | Templates and open the template in the editor.
*/
package com.rometools.certiorem.hub;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.net.URL;
import java.util.List;
import org.junit.Test;
import com.rometools.fetcher.impl.HashMapFeedInfoCache;
import com.rometools.fetcher.impl.HttpURLFeedFetcher;
import com.rometools.rome.feed.synd.SyndEntry;
import com.rometools.rome.feed.synd.SyndFeed;
public class DeltaSyndFeedInfoTest {
@Test
public void testGetSyndFeed() throws Exception {
final URL url = new URL("https://news.google.com/news?pz=1&cf=all&ned=us&hl=en&output=rss");
final DeltaFeedInfoCache feedInfoCache = new DeltaFeedInfoCache(new HashMapFeedInfoCache());
final HttpURLFeedFetcher feedFetcher = new HttpURLFeedFetcher(feedInfoCache);
// the first time the feed should not be empty
final SyndFeed firstFeed = feedFetcher.retrieveFeed(url);
final List<SyndEntry> firstEntries = firstFeed.getEntries();
assertFalse(firstEntries.isEmpty());
// fetch once again and this time the entries should be empty because nothing has changed
final SyndFeed secondFeed = feedFetcher.retrieveFeed(url);
final List<SyndEntry> secondEntries = secondFeed.getEntries();
assertTrue(secondEntries.isEmpty());
}
}

View file

@ -1,7 +0,0 @@
.classpath
.project
.settings
target
.idea
*.iml
atlassian-ide-plugin.xml

View file

@ -1,14 +0,0 @@
Copyright 2004 Sun Microsystems, Inc.
Licensed 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.

View file

@ -1,3 +0,0 @@
# ROME Fetcher
is a caching feed fetcher that supports retrieval of feeds via HTTP conditional GET. Supports ETags, GZip compression, and RFC3229 Delta encoding.

View file

@ -1,65 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.rometools</groupId>
<artifactId>rome-parent</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</parent>
<artifactId>rome-fetcher</artifactId>
<packaging>jar</packaging>
<name>rome-fetcher</name>
<description>A well behaved feed fetcher API for ROME</description>
<url>http://rometools.github.io/rome-fetcher/</url>
<scm>
<connection>scm:git:ssh://github.com/rometools/rome-fetcher.git</connection>
<developerConnection>scm:git:ssh://git@github.com/rometools/rome-fetcher.git</developerConnection>
<url>https://github.com/rometools/rome-fetcher</url>
</scm>
<developers>
<developer>
<name>Nick Lothian</name>
<url>http://nicklothian.com</url>
</developer>
<developer>
<name>Robert Cooper</name>
<email>kebernet@gmail.comM</email>
</developer>
</developers>
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<scmBranch>gh-pages</scmBranch>
<pubScmUrl>${project.scm.developerConnection}</pubScmUrl>
<content>${project.build.directory}/site</content>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>

View file

@ -22,6 +22,11 @@ import java.net.URL;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.FeedException;
/**
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public interface FeedFetcher {
/**
* <p>
@ -117,4 +122,15 @@ public interface FeedFetcher {
* corresponding wireEntry property set.
*/
void setPreserveWireFeed(boolean preserveWireFeed);
/**
* In ROME 1.5.1 we fixed a security vulnerability by disallowing Doctype declarations by default.
* This change breaks the compatibility with at least RSS 0.91N because it requires a Doctype declaration.
* You are able to allow Doctype declarations again with this property. You should only activate it
* when the feeds that you process are absolutely trustful.
*
* @param allowDoctypes true when Doctype declarations should be allowed again, false otherwise
*/
void setAllowDoctypes(boolean allowDoctypes);
}

View file

@ -1,3 +1,18 @@
/*
*
* Licensed 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 com.rometools.fetcher;
import java.util.EventObject;
@ -10,7 +25,11 @@ import com.rometools.rome.feed.synd.SyndFeed;
* fields final.
*
* @author nl
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class FetcherEvent extends EventObject {
private static final long serialVersionUID = 1L;

View file

@ -19,7 +19,10 @@ package com.rometools.fetcher;
/**
* @author Nick Lothian
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class FetcherException extends Exception {
private static final long serialVersionUID = 1L;

View file

@ -1,7 +1,27 @@
/*
*
* Licensed 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 com.rometools.fetcher;
import java.util.EventListener;
/**
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public interface FetcherListener extends EventListener {
/**

View file

@ -34,6 +34,11 @@ import com.rometools.fetcher.FetcherException;
import com.rometools.fetcher.FetcherListener;
import com.rometools.rome.feed.synd.SyndFeed;
/**
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public abstract class AbstractFeedFetcher implements FeedFetcher {
private static final Logger LOG = LoggerFactory.getLogger(AbstractFeedFetcher.class);
@ -42,6 +47,7 @@ public abstract class AbstractFeedFetcher implements FeedFetcher {
private String userAgent;
private boolean usingDeltaEncoding;
private boolean preserveWireFeed;
private boolean allowDoctypes = false;
public AbstractFeedFetcher() {
@ -222,4 +228,13 @@ public abstract class AbstractFeedFetcher implements FeedFetcher {
this.preserveWireFeed = preserveWireFeed;
}
public boolean isAllowDoctypes() {
return allowDoctypes;
}
@Override
public void setAllowDoctypes(boolean allowDoctypes) {
this.allowDoctypes = allowDoctypes;
}
}

View file

@ -1,3 +1,18 @@
/*
*
* Licensed 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 com.rometools.fetcher.impl;
import java.beans.EventSetDescriptor;
@ -7,6 +22,11 @@ import java.lang.reflect.Method;
import com.rometools.fetcher.FetcherEvent;
import com.rometools.fetcher.FetcherListener;
/**
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class AbstractFeedFetcherBeanInfo extends SimpleBeanInfo {
@Override

View file

@ -28,7 +28,11 @@ import com.rometools.utils.IO;
/**
* Disk based feed cache.
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class DiskFeedInfoCache implements FeedFetcherCache {
protected String cachePath = null;

View file

@ -26,7 +26,10 @@ import java.net.URL;
*
* @author Nick Lothian
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public interface FeedFetcherCache {
/**

View file

@ -36,7 +36,10 @@ import java.util.Map;
*
* @author Nick Lothian
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class HashMapFeedInfoCache implements FeedFetcherCache, Serializable {
private static final long serialVersionUID = 1L;

View file

@ -46,7 +46,11 @@ import com.rometools.utils.IO;
/**
* @author Nick Lothian
*
* @deprecated HttpClient v3 is known to have some security vulnerabilities! In addition ROME Fetcher will be dropped in the next major version of ROME (version 2).
* For more information and some migration hints, please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class HttpClientFeedFetcher extends AbstractFeedFetcher {
private CredentialSupplier credentialSupplier;
@ -275,6 +279,7 @@ public class HttpClientFeedFetcher extends AbstractFeedFetcher {
final SyndFeedInput syndFeedInput = new SyndFeedInput();
syndFeedInput.setPreserveWireFeed(isPreserveWireFeed());
syndFeedInput.setAllowDoctypes(isAllowDoctypes());
return syndFeedInput.build(reader);

View file

@ -68,7 +68,11 @@ import com.rometools.utils.IO;
* @see <a
* href="http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html">http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html</a>
* @author Nick Lothian
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class HttpURLFeedFetcher extends AbstractFeedFetcher {
private volatile int connectTimeout = -1;
@ -280,11 +284,6 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher {
is = new BufferedInputStream(inputStream);
}
// InputStreamReader reader = new InputStreamReader(is,
// ResponseHandler.getCharacterEncoding(connection));
// SyndFeedInput input = new SyndFeedInput();
final XmlReader reader;
if (connection.getHeaderField("Content-Type") != null) {
reader = new XmlReader(is, connection.getHeaderField("Content-Type"), true);
@ -294,6 +293,7 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher {
final SyndFeedInput syndFeedInput = new SyndFeedInput();
syndFeedInput.setPreserveWireFeed(isPreserveWireFeed());
syndFeedInput.setAllowDoctypes(isAllowDoctypes());
return syndFeedInput.build(reader);

View file

@ -1,3 +1,18 @@
/*
*
* Licensed 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 com.rometools.fetcher.impl;
import java.util.Collections;
@ -16,7 +31,10 @@ import java.util.Map;
* @author Javier Kohen
* @author Nick Lothian
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class LinkedHashMapFeedInfoCache extends HashMapFeedInfoCache {
private final class CacheImpl extends LinkedHashMap<String, SyndFeedInfo> {

View file

@ -22,13 +22,19 @@ import java.util.regex.Pattern;
/**
* Utility class to help deal with HTTP responses
*
* *
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class ResponseHandler {
public static final String defaultCharacterEncoding = "ISO-8859-1";
private final static Pattern characterEncodingPattern = Pattern.compile("charset=([.[^; ]]*)");
private ResponseHandler() {
}
public static String getCharacterEncoding(final URLConnection connection) {
return getCharacterEncoding(connection.getContentType());
}

View file

@ -33,7 +33,11 @@ import com.rometools.rome.feed.synd.SyndFeed;
* </p>
*
* @author Nick Lothian
*
* @deprecated ROME Fetcher will be dropped in the next major version of ROME (version 2). For more information and some migration hints,
* please have a look at our <a href="https://github.com/rometools/rome/issues/276">detailed explanation</a>.
*/
@Deprecated
public class SyndFeedInfo implements Cloneable, Serializable {
private static final long serialVersionUID = 1L;

View file

@ -1,8 +0,0 @@
h1 {
padding: 4px 4px 4px 6px;
border: 1px solid #999;
color: #900;
background-color: #ddd;
font-weight:900;
font-size: x-large;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/DECORATION/1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
name="ROME fetcher">
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.3.0</version>
</skin>
<bannerLeft>
<name>ROME fetcher</name>
<src>images/romelogo.png</src>
<href>http://github.com/rometools/</href>
</bannerLeft>
<publishDate position="right" />
<version position="right" />
<body>
<menu name="ROME Fetcher">
<item name="Overview" href="index.html" />
<item name="Dependencies" href="Dependencies/index.html" />
</menu>
<menu name="Releases">
<item name="1.0" href="Releases/ROMEFetcher1.0.html" />
<item name="1.0RC2" href="Releases/ROMEFetcher1.0RC2.html" />
<item name="0.9" href="Releases/ROMEFetcher0.9.html" />
<item name="0.7" href="Releases/ROMEFetcher0.7.html" />
<item name="0.6" href="Releases/ROMEFetcher0.6.html" />
<item name="0.5" href="Releases/RomeFetcher0.5.html" />
<item name="0.4" href="Releases/RomeFetcher0.4.html" />
<item name="0.3" href="Releases/RomeFetcher0.3.html" />
</menu>
<menu ref="reports" />
</body>
</project>

View file

@ -175,29 +175,29 @@ public abstract class AbstractJettyTest extends TestCase {
try {
setupServer();
final URL url = this.getClass().getClassLoader().getResource("testuser.properties");
final UserRealm userRealm = new HashUserRealm("test", url.toString());
final BasicAuthenticator basicauthenticator = new BasicAuthenticator();
final SecurityHandler securityHandler = new SecurityHandler();
final SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setName("test");
securityConstraint.addRole("*");
securityConstraint.setAuthenticate(true);
final ServletHandler servletHandler = createServletHandler();
final HttpContext context = createContext();
final URL url = this.getClass().getResource("/testuser.properties");
final UserRealm ur = new HashUserRealm("test", url.getFile());
context.setRealm(ur);
final BasicAuthenticator ba = new BasicAuthenticator();
context.setAuthenticator(ba);
final SecurityHandler sh = new SecurityHandler();
context.addHandler(sh);
final SecurityConstraint sc = new SecurityConstraint();
sc.setName("test");
sc.addRole("*");
sc.setAuthenticate(true);
context.addSecurityConstraint("/", sc);
final ServletHandler servlets = createServletHandler();
context.addHandler(servlets);
context.setRealm(userRealm);
context.setAuthenticator(basicauthenticator);
context.addHandler(securityHandler);
context.addSecurityConstraint("/", securityConstraint);
context.addHandler(servletHandler);
server.addContext(context);
server.start();
final FeedFetcher feedFetcher = getAuthenticatedFeedFetcher();

View file

@ -1,3 +1,18 @@
/*
*
* Licensed 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 com.rometools.fetcher.impl;
import java.io.File;

View file

@ -1,3 +1,18 @@
/*
*
* Licensed 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 com.rometools.fetcher.impl;
import java.net.URL;

View file

@ -46,6 +46,9 @@ import com.rometools.rome.io.SyndFeedOutput;
*/
public class FeedAggregator {
private FeedAggregator() {
}
public static void main(final String[] args) {
boolean ok = false;

View file

@ -37,6 +37,9 @@ import com.rometools.rome.feed.synd.SyndFeed;
*/
public class FeedReader {
private FeedReader() {
}
public static void main(final String[] args) {
boolean ok = false;

View file

@ -1,5 +0,0 @@
/.classpath
/.project
/.settings
/target
/.checkstyle

View file

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed 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.

View file

@ -1,3 +0,0 @@
# ROME Modules
This module contains extensions that enable ROME to handle several feed extensions like MediaRSS, GeoRSS and others

View file

@ -1,12 +1,11 @@
<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">
<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>
<parent>
<groupId>com.rometools</groupId>
<artifactId>rome-parent</artifactId>
<version>1.6.0-SNAPSHOT</version>
<version>1.7.2-SNAPSHOT</version>
</parent>
<artifactId>rome-modules</artifactId>
@ -16,46 +15,8 @@
<description>Plugin collection for the ROME RSS and Atom Utilities</description>
<url>http://rometools.github.io/rome-modules/</url>
<scm>
<connection>scm:git:ssh://github.com/rometools/rome-modules.git</connection>
<developerConnection>scm:git:ssh://git@github.com/rometools/rome-modules.git</developerConnection>
<url>https://github.com/rometools/rome-modules</url>
</scm>
<developers>
<developer>
<id>kebernet</id>
<email>kebernet@gmail.com</email>
<name>Robert Cooper</name>
</developer>
</developers>
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<scmBranch>gh-pages</scmBranch>
<pubScmUrl>${project.scm.developerConnection}</pubScmUrl>
<content>${project.build.directory}/site</content>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
@ -112,11 +73,6 @@
<artifactId>hamcrest-library</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>xmlunit</groupId>
<artifactId>xmlunit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View file

@ -1,17 +0,0 @@
/*
* Copyright (C) The ROME Team ${year}
*
*
* Licensed 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.
*
*/

View file

@ -21,10 +21,6 @@ import com.rometools.modules.activitystreams.types.ActivityObject;
import com.rometools.modules.activitystreams.types.Mood;
import com.rometools.modules.activitystreams.types.Verb;
/**
*
* @author robert.cooper
*/
public interface ActivityStreamModule {
public Verb getVerb();

View file

@ -20,10 +20,6 @@ import com.rometools.modules.activitystreams.types.ActivityObject;
import com.rometools.modules.activitystreams.types.Mood;
import com.rometools.modules.activitystreams.types.Verb;
/**
*
* @author robert.cooper
*/
public class ActivityStreamModuleImpl implements ActivityStreamModule {
private ActivityObject object;
private Verb verb;

View file

@ -21,15 +21,8 @@ import com.rometools.modules.georss.GeoRSSModule;
import com.rometools.modules.portablecontacts.ContactModule;
import com.rometools.rome.feed.atom.Entry;
/**
*
* @author robert.cooper
*/
public abstract class ActivityObject extends Entry implements HasLocation {
/**
*
*/
private static final long serialVersionUID = 1L;
public abstract String getTypeIRI();

View file

@ -44,13 +44,8 @@ package com.rometools.modules.activitystreams.types;
* content.</dd>
* </dl>
* </blockquote>
*
* @author robert.cooper
*/
public class Article extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override

View file

@ -40,13 +40,9 @@ package com.rometools.modules.activitystreams.types;
* for the audio stream. Represented in JSON as a property called <tt>embedCode</tt> whose value is
* a JSON string containing the fragment of HTML.</dd>
* </dl>
*
* @author robert.cooper
*/
public class Audio extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
private String embedCode;
private String streamLink;

View file

@ -70,14 +70,9 @@ import com.rometools.rome.feed.atom.Link;
* inappropriate size for their user interface.</dd>
* </dl>
* </blockquote>
*
* @author robert.cooper
*/
public class Bookmark extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override

View file

@ -49,14 +49,9 @@ package com.rometools.modules.activitystreams.types;
* all HTML markup and consider the comment to be plain text.</dd>
* </dl>
* </blockquote>
*
* @author robert.cooper
*/
public class Comment extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override

View file

@ -43,14 +43,9 @@ package com.rometools.modules.activitystreams.types;
* W3CDTF spec.] [TODO: Include prose describing how to represent just a date vs. a date and time.]</dd>
* </dl>
* </blockquote>
*
* @author robert.cooper
*/
public class Event extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override

View file

@ -45,14 +45,9 @@ package com.rometools.modules.activitystreams.types;
* property called <tt>mimeType</tt> whose value is a JSON string containing the MIME type.</dd>
* </dl>
* </blockquote>
*
* @author robert.cooper
*/
public class File extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override

View file

@ -39,14 +39,9 @@ package com.rometools.modules.activitystreams.types;
* Processors MAY ignore thumbnails that are of an inappropriate size for their user interface.</dd>
* </dl>
* </blockquote>
*
* @author robert.cooper
*/
public class Folder extends ActivityObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override

View file

@ -28,8 +28,6 @@ package com.rometools.modules.activitystreams.types;
* </p>
* <p>
* A group has no additional components.
*
* @author robert.cooper
*/
public class Group {

Some files were not shown because too many files have changed in this diff Show more