私はそれが応答に少し遅れていることは知っていますが、誰かがこれを後で使用するかもしれません。 私はローマ1.0でそれをしました。
独自のコンバータとジェネレータを定義できます。
私の必要性は、項目にソースフィールドを含むRSS 2.0フィードでした。だからコンバータとジェネレータの両方私はRSS 2.0の実装をローマで拡張します。
まずはコンバータが必要です。ソースを埋める人です。
/**
* This is a convertor for RSS 2.0 setting source on output items
*/
public class ConverterForRSS20WithSource extends ConverterForRSS20 {
/**
* Default Constructor
*/
public ConverterForRSS20WithSource() {
this("rss_2.0_withSource");
}
/**
* Constructor with type
* @param type
*/
protected ConverterForRSS20WithSource(String type) {
super(type);
}
/**
* @see com.sun.syndication.feed.synd.impl.ConverterForRSS094#createRSSItem(com.sun.syndication.feed.synd.SyndEntry)
*/
@Override
protected Item createRSSItem(SyndEntry sEntry) {
Item item = super.createRSSItem(sEntry);
if(sEntry.getSource() != null
&& StringUtils.isNotBlank(sEntry.getSource().getUri())) {
Source s = new Source();
s.setUrl(sEntry.getSource().getUri());
s.setValue(sEntry.getSource().getTitle());
item.setSource(s);
}
return item;
}
}
次に、ジェネレーターが必要です。それは特別なことは何もありません。ちょうど
/**
* Rss 2.0 Generator with source field
*/
public class RSS020GeneratorWithSource extends RSS20Generator {
/**
*
*/
public RSS020GeneratorWithSource() {
super("rss_2.0_withSource","2.0");
}
}
私たちのクラスをromeに宣言する必要があります。そのためには、単にリソースのルートにrome.propertiesを置いてください。 があなたのrss.itemsにダブリンコアを追加することを忘れないでください...そのファイルで はちょうど
Converter.classes=my.package.ConverterForRSS20WithSource
WireFeedGenerator.classes=my.package.RSS020GeneratorWithSource
# Parsers for RSS 2.0 with source item modules
#
rss_2.0_withSource.item.ModuleParser.classes=com.sun.syndication.io.impl.DCModuleParser
# Generators for RSS_2.0 entry modules
#
rss_2.0_withSource.item.ModuleGenerator.classes=com.sun.syndication.io.impl.DCModuleGenerator
を入れて、それがすべてです。