OBSOLETE

⚠️ The project is abandoned, see #25 for the details ⚠️

This is a temporary repository for initial discussions and development of the new version of Rome. It will be merged into the main repository once we're ready to ship an alpha version.

Why exactly are we doing this?

See rometools/rome#353 for the explanation and a rough plan.

Progress

Discussions

  • Java 8 (#2, decided: support both 8 and 7/android)
  • Support of old standards (#3, decided: 👍)
  • Single artifact (#4, decided: 👍)
  • Zero dependencies (#5, decided: 👍 except JSON)
  • Suggested API (#6, decided: 👍)
  • Feed fetching (#7, decided: 👎)
  • Code generation (#8, decided: 👍)
  • Absolute leniency (#9, decided: 👍)

Prototype

See https://github.com/rometools/rome2-experiment/projects/1

  • Initial suggestion (#10)
  • Code generation for main entities (#12)
  • Code generation for XML parser (#13)
  • Json Feed parser (#14)
  • More fields of different types (#15)
  • RSS writer (#16)
  • Json Feed writer (#17)
  • Support parsing one of older versions (#18)
  • Extensions (#19)
  • Features (#20)
  • Rome 1 converter (#21)
  • Separate artifact for Android (#22)
  • Atom parser (#24)

Try it out

See RomeTest.java for general overview of the functionality implemented so far.

Install locally:

git clone git@github.com:rometools/rome2.git
cd rome2/throwaway-prototype
mvn install

Add the dependency to your project:

<dependency>
  <groupId>com.rometools.rome2.prototype</groupId>
  <artifactId>core</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</dependency>

Use it:

byte[] source = ...
Feed feed = Rome.minimal().read(source);
System.out.println(feed.getTitle());