From b6724d54c895f42a1ff1e5a3857ab4d3d479f74e Mon Sep 17 00:00:00 2001 From: Fernanda Bernardo Date: Mon, 9 Dec 2013 13:49:09 -0200 Subject: [PATCH 1/4] adicionando xml dos exemplos de rss --- src/test/resources/rss-infoq-example.xml | 32 +++++++++++++++++++ ...mple.xml => rss-ondetrabalhar-example.xml} | 0 2 files changed, 32 insertions(+) create mode 100644 src/test/resources/rss-infoq-example.xml rename src/test/resources/{rss-example.xml => rss-ondetrabalhar-example.xml} (100%) diff --git a/src/test/resources/rss-infoq-example.xml b/src/test/resources/rss-infoq-example.xml new file mode 100644 index 000000000..f483f9c12 --- /dev/null +++ b/src/test/resources/rss-infoq-example.xml @@ -0,0 +1,32 @@ + + + InfoQ Personalized Feed for Unregistered User - Register to upgrade! + http://www.infoq.com + This RSS feed is a personalized feed, unique to your account on InfoQ.com. + + Article: Applying Lean Thinking to Software Development + http://www.infoq.com/articles/applying-lean-thinking-to-software-development + + Ben Johnson discusses the Raft protocol and how it works. Raft is a consensus distributed protocol. + By Ben Johnson + + Scrum + Lean + Quality + Kanban + Removing Waste + WIP + Process Practices + Enterprise Architecture + Requirements Management + content.articles.category + Thu, 05 Dec 2013 12:22:00 GMT + http://www.infoq.com/articles/applying-lean-thinking-to-software-development + Steven Peeters + 2013-12-05T12:22:00Z + /articles/applying-lean-thinking-to-software-development + + + \ No newline at end of file diff --git a/src/test/resources/rss-example.xml b/src/test/resources/rss-ondetrabalhar-example.xml similarity index 100% rename from src/test/resources/rss-example.xml rename to src/test/resources/rss-ondetrabalhar-example.xml From 34d8d0ac2619cd0366ed94959a230961b90c0a86 Mon Sep 17 00:00:00 2001 From: Fernanda Bernardo Date: Mon, 9 Dec 2013 13:53:03 -0200 Subject: [PATCH 2/4] adicionando rss do infoq e arrumando o do ondetrabalhar --- .../com/caelum/brutal/infra/rss/RSSType.java | 41 ++++++++++++++++ .../infra/rss/converter/InfoQRSSJob.java | 35 +++++++++++++ .../rss/converter/OndeTrabalharRSSJob.java | 3 +- .../rss/converter/RSSDateTimeConverter.java | 27 ++++------ .../brutal/infra/rss/read/FeedConverter.java | 12 ++--- .../brutal/infra/rss/read/FeedReader.java | 11 +++-- .../brutal/infra/rss/read/FeedsMap.java | 5 +- .../brutal/infra/rss/read/RSSChannel.java | 6 +-- .../caelum/brutal/infra/rss/read/RSSItem.java | 49 +++++++++++++++++-- 9 files changed, 149 insertions(+), 40 deletions(-) create mode 100644 src/main/java/br/com/caelum/brutal/infra/rss/RSSType.java create mode 100644 src/main/java/br/com/caelum/brutal/infra/rss/converter/InfoQRSSJob.java diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/RSSType.java b/src/main/java/br/com/caelum/brutal/infra/rss/RSSType.java new file mode 100644 index 000000000..7b7c6a3b7 --- /dev/null +++ b/src/main/java/br/com/caelum/brutal/infra/rss/RSSType.java @@ -0,0 +1,41 @@ +package br.com.caelum.brutal.infra.rss; + +import java.util.Locale; + +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.DateTimeFormatterBuilder; + +public enum RSSType { + ONDE_TRABALHAR { + @Override + public DateTimeFormatter getDateFormat() { + return new DateTimeFormatterBuilder() + .appendDayOfWeekShortText().appendLiteral(", ") + .appendDayOfMonth(2).appendLiteral(" ") + .appendMonthOfYearShortText().appendLiteral(" ") + .appendYear(4,4).appendLiteral(" ") + .appendHourOfDay(2).appendLiteral(":") + .appendMinuteOfHour(2).appendLiteral(":") + .appendSecondOfMinute(2).appendLiteral(" ") + .appendTimeZoneOffset("0", false, 2, 2) + .toFormatter().withLocale(Locale.US); + } + }, + INFO_Q { + @Override + public DateTimeFormatter getDateFormat() { + return new DateTimeFormatterBuilder() + .appendDayOfWeekShortText().appendLiteral(", ") + .appendDayOfMonth(2).appendLiteral(" ") + .appendMonthOfYearShortText().appendLiteral(" ") + .appendYear(4,4).appendLiteral(" ") + .appendHourOfDay(2).appendLiteral(":") + .appendMinuteOfHour(2).appendLiteral(":") + .appendSecondOfMinute(2).appendLiteral(" ") + .appendTimeZoneId() + .toFormatter().withLocale(Locale.US); + } + }; + + public abstract DateTimeFormatter getDateFormat(); +} diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/converter/InfoQRSSJob.java b/src/main/java/br/com/caelum/brutal/infra/rss/converter/InfoQRSSJob.java new file mode 100644 index 000000000..8c624312e --- /dev/null +++ b/src/main/java/br/com/caelum/brutal/infra/rss/converter/InfoQRSSJob.java @@ -0,0 +1,35 @@ +package br.com.caelum.brutal.infra.rss.converter; + +import javax.inject.Inject; + +import org.apache.log4j.Logger; + +import br.com.caelum.brutal.infra.rss.RSSType; +import br.com.caelum.brutal.infra.rss.read.FeedsMap; +import br.com.caelum.vraptor.Controller; +import br.com.caelum.vraptor.Path; +import br.com.caelum.vraptor.Result; +import br.com.caelum.vraptor.quartzjob.CronTask; + +@Controller +public class InfoQRSSJob implements CronTask{ + private static final String INFOQ_BASE_KEY = "infoq"; + private static final Logger LOG = Logger.getLogger(InfoQRSSJob.class); + @Inject private Result result; + @Inject private FeedsMap feedsMap; + + + @Override + @Path("/jdnakfh3nfis39103f1") + public void execute() { + LOG.debug("executing " + getClass().getSimpleName()); + feedsMap.putOrUpdate(INFOQ_BASE_KEY, RSSType.INFO_Q); + LOG.debug(feedsMap.get(INFOQ_BASE_KEY)); + result.nothing(); + } + + @Override + public String frequency() { + return "0 0/15 * * * ?";//fire every hour + } +} diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/converter/OndeTrabalharRSSJob.java b/src/main/java/br/com/caelum/brutal/infra/rss/converter/OndeTrabalharRSSJob.java index 94cf3ac0a..8cddba53c 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/converter/OndeTrabalharRSSJob.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/converter/OndeTrabalharRSSJob.java @@ -4,6 +4,7 @@ import org.apache.log4j.Logger; +import br.com.caelum.brutal.infra.rss.RSSType; import br.com.caelum.brutal.infra.rss.read.FeedsMap; import br.com.caelum.vraptor.Controller; import br.com.caelum.vraptor.Path; @@ -22,7 +23,7 @@ public class OndeTrabalharRSSJob implements CronTask{ @Path("/asjkfnaowo21jkhwe12341") public void execute() { LOG.debug("executing " + getClass().getSimpleName()); - feedsMap.putOrUpdate(JOBS_BASE_KEY); + feedsMap.putOrUpdate(JOBS_BASE_KEY, RSSType.ONDE_TRABALHAR); LOG.debug(feedsMap.get(JOBS_BASE_KEY)); result.nothing(); } diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/converter/RSSDateTimeConverter.java b/src/main/java/br/com/caelum/brutal/infra/rss/converter/RSSDateTimeConverter.java index 5c5f72d5a..5d28e6f86 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/converter/RSSDateTimeConverter.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/converter/RSSDateTimeConverter.java @@ -1,10 +1,8 @@ package br.com.caelum.brutal.infra.rss.converter; -import java.util.Locale; - import org.joda.time.DateTime; +import org.joda.time.LocalDateTime; import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.DateTimeFormatterBuilder; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; @@ -13,33 +11,28 @@ import com.thoughtworks.xstream.io.HierarchicalStreamWriter; public class RSSDateTimeConverter implements Converter { + + private DateTimeFormatter rssPattern; - private static final DateTimeFormatter RSS_PATTERN = new DateTimeFormatterBuilder() - .appendDayOfWeekShortText().appendLiteral(", ") - .appendDayOfMonth(2).appendLiteral(" ") - .appendMonthOfYearShortText().appendLiteral(" ") - .appendYear(4,4).appendLiteral(" ") - .appendHourOfDay(2).appendLiteral(":") - .appendMinuteOfHour(2).appendLiteral(":") - .appendSecondOfMinute(2).appendLiteral(" ") - .appendTimeZoneOffset("0", false, 2, 2) - .toFormatter().withLocale(Locale.US); - + public RSSDateTimeConverter(DateTimeFormatter rssPattern) { + this.rssPattern = rssPattern; + } + @Override public boolean canConvert(@SuppressWarnings("rawtypes") Class type) { - return DateTime.class.isAssignableFrom(type); + return LocalDateTime.class.isAssignableFrom(type); } @Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { - writer.setValue(RSS_PATTERN.print((DateTime) source)); + writer.setValue(rssPattern.print((DateTime) source)); } @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { - return RSS_PATTERN.parseDateTime(reader.getValue()); + return rssPattern.parseLocalDateTime(reader.getValue()); } } diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedConverter.java b/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedConverter.java index 6ab1ed19b..611864f59 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedConverter.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedConverter.java @@ -1,25 +1,23 @@ package br.com.caelum.brutal.infra.rss.read; -import java.io.InputStream; - -import javax.enterprise.context.ApplicationScoped; - +import br.com.caelum.brutal.infra.rss.RSSType; import br.com.caelum.brutal.infra.rss.converter.RSSDateTimeConverter; import com.thoughtworks.xstream.XStream; -@ApplicationScoped public class FeedConverter { private XStream xStream; - public FeedConverter() { + public FeedConverter(RSSType rss) { xStream = new XStream(); xStream.alias("rss", RSSFeed.class); xStream.alias("channel", RSSChannel.class); xStream.alias("image", RSSImage.class); xStream.alias("item", RSSItem.class); xStream.addImplicitCollection(RSSChannel.class, "items"); - xStream.registerConverter(new RSSDateTimeConverter()); + xStream.addImplicitCollection(RSSItem.class, "category", String.class); + xStream.processAnnotations(RSSItem.class); + xStream.registerConverter(new RSSDateTimeConverter(rss.getDateFormat())); } public RSSFeed convert(String content){ diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedReader.java b/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedReader.java index 52f1162eb..87cf642db 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedReader.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedReader.java @@ -3,9 +3,6 @@ import java.io.IOException; import java.io.InputStream; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; @@ -14,13 +11,17 @@ import org.apache.http.impl.client.DefaultHttpClient; import org.apache.log4j.Logger; +import br.com.caelum.brutal.infra.rss.RSSType; -@ApplicationScoped public class FeedReader { - @Inject private FeedConverter converter; + private FeedConverter converter; private static final Logger LOG = Logger.getLogger(FeedReader.class); + public FeedReader(RSSType rss) { + converter = new FeedConverter(rss); + } + public RSSFeed read(String uri, Integer numberOfItems) { String rssXml = getXmlFrom(uri); return limitItems(converter.convert(rssXml), numberOfItems); diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedsMap.java b/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedsMap.java index 81f28edf3..9258d7a48 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedsMap.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/read/FeedsMap.java @@ -10,19 +10,20 @@ import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; +import br.com.caelum.brutal.infra.rss.RSSType; import br.com.caelum.vraptor.environment.Environment; @ApplicationScoped public class FeedsMap { private Map hashMap = new HashMap(); - @Inject private FeedReader feedReader; @Inject private Environment env; - public void putOrUpdate(String feedBaseKey){ + public void putOrUpdate(String feedBaseKey, RSSType type){ hashMap.remove(feedBaseKey); String uri = env.get(feedBaseKey+".url"); Integer numberOfItems = valueOf(env.get(feedBaseKey+".items")); + FeedReader feedReader = new FeedReader(type); RSSFeed feed = feedReader.read(uri, numberOfItems); hashMap.put(feedBaseKey, feed); } diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSChannel.java b/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSChannel.java index a016945a7..a05d9e585 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSChannel.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSChannel.java @@ -2,7 +2,7 @@ import java.util.List; -import org.joda.time.DateTime; +import org.joda.time.LocalDateTime; public class RSSChannel { private String title; @@ -14,7 +14,7 @@ public class RSSChannel { private String docs; private String ttl; private RSSImage image; - private DateTime pubDate; + private LocalDateTime pubDate; private String link; private List items; @@ -54,7 +54,7 @@ public RSSImage getImage() { return image; } - public DateTime getPubDate() { + public LocalDateTime getPubDate() { return pubDate; } diff --git a/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSItem.java b/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSItem.java index 63f3e5688..00fac413a 100644 --- a/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSItem.java +++ b/src/main/java/br/com/caelum/brutal/infra/rss/read/RSSItem.java @@ -1,20 +1,57 @@ package br.com.caelum.brutal.infra.rss.read; -import org.joda.time.DateTime; +import java.util.List; + +import org.joda.time.LocalDateTime; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamImplicit; public class RSSItem { private String title; - private DateTime pubDate; + private LocalDateTime pubDate; private String guid; private String link; private String description; + + private List category; + @XStreamAlias("dc:creator") + private String creator; + @XStreamAlias("dc:date") + private String date; + @XStreamAlias("dc:identifier") + private String identifier; + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } public String getTitle() { return title; } - public DateTime getPubDate() { + public LocalDateTime getPubDate() { return pubDate; } @@ -36,6 +73,8 @@ public String toString() { + guid + ", link=" + link + ", description=" + description + "]"; } - - + + public List getCategory() { + return category; + } } From c3f15fc2e8e6b9cedc9d05ae2c3dfcd07b0fa678 Mon Sep 17 00:00:00 2001 From: Fernanda Bernardo Date: Mon, 9 Dec 2013 13:53:48 -0200 Subject: [PATCH 3/4] adicionando e arrumando testes do rss --- .../caelum/brutal/feed/FeedConverterTest.java | 55 ++++++++++++++----- .../caelum/brutal/infra/rss/RSSTypeTest.java | 35 ++++++++++++ 2 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 src/test/java/br/com/caelum/brutal/infra/rss/RSSTypeTest.java diff --git a/src/test/java/br/com/caelum/brutal/feed/FeedConverterTest.java b/src/test/java/br/com/caelum/brutal/feed/FeedConverterTest.java index 79ce38576..fab13294e 100644 --- a/src/test/java/br/com/caelum/brutal/feed/FeedConverterTest.java +++ b/src/test/java/br/com/caelum/brutal/feed/FeedConverterTest.java @@ -8,8 +8,10 @@ import org.apache.commons.io.IOUtils; import org.apache.http.client.ClientProtocolException; import org.joda.time.DateTime; +import org.junit.BeforeClass; import org.junit.Test; +import br.com.caelum.brutal.infra.rss.RSSType; import br.com.caelum.brutal.infra.rss.read.FeedConverter; import br.com.caelum.brutal.infra.rss.read.RSSChannel; import br.com.caelum.brutal.infra.rss.read.RSSFeed; @@ -17,11 +19,20 @@ import br.com.caelum.brutal.infra.rss.read.RSSItem; public class FeedConverterTest { + + private static String rssOndeTrabalhar; + private static String rssInfoQ; + + @BeforeClass + public static void setup() throws IOException { + rssOndeTrabalhar = IOUtils.toString(FeedConverterTest.class.getResourceAsStream("/rss-ondetrabalhar-example.xml")); + rssInfoQ = IOUtils.toString(FeedConverterTest.class.getResourceAsStream("/rss-infoq-example.xml")); + } @Test - public void should_convert_channel_correctly() throws ClientProtocolException, IOException { - FeedConverter feedConverter = new FeedConverter(); - RSSFeed feed = feedConverter.convert(getRss()); + public void should_convert_channel_correctly_onde_trabalhar() throws ClientProtocolException, IOException { + FeedConverter feedConverter = new FeedConverter(RSSType.ONDE_TRABALHAR); + RSSFeed feed = feedConverter.convert(rssOndeTrabalhar); RSSChannel channel = feed.getChannel(); assertEquals("OndeTrabalhar.com", channel.getTitle()); @@ -37,13 +48,12 @@ public void should_convert_channel_correctly() throws ClientProtocolException, I assertEquals(rssDay.getMonthOfYear(), channel.getPubDate().getMonthOfYear()); assertEquals(rssDay.getYear(), channel.getPubDate().getYear()); assertEquals(rssDay.getDayOfMonth(), channel.getPubDate().getDayOfMonth()); - } @Test - public void should_convert_image_correctly() throws ClientProtocolException, IOException { - FeedConverter feedConverter = new FeedConverter(); - RSSFeed feed = feedConverter.convert(getRss()); + public void should_convert_image_correct_onde_trabalharly() throws ClientProtocolException, IOException { + FeedConverter feedConverter = new FeedConverter(RSSType.ONDE_TRABALHAR); + RSSFeed feed = feedConverter.convert(rssOndeTrabalhar); RSSImage image = feed.getChannel().getImage(); assertEquals("http://ondetralhar.com/images/logo-box.png?1247568237", image.getUrl()); @@ -53,9 +63,9 @@ public void should_convert_image_correctly() throws ClientProtocolException, IOE } @Test - public void should_convert_item_correctly() throws ClientProtocolException, IOException { - FeedConverter feedConverter = new FeedConverter(); - RSSFeed feed = feedConverter.convert(getRss()); + public void should_convert_item_correctly_onde_trabalhar() throws ClientProtocolException, IOException { + FeedConverter feedConverter = new FeedConverter(RSSType.ONDE_TRABALHAR); + RSSFeed feed = feedConverter.convert(rssOndeTrabalhar); RSSItem item = feed.getChannel().getItems().get(0); assertEquals("Senior Tech Leader", item.getTitle()); @@ -66,11 +76,26 @@ public void should_convert_item_correctly() throws ClientProtocolException, IOEx assertEquals(rssDay.getMonthOfYear(), item.getPubDate().getMonthOfYear()); assertEquals(rssDay.getYear(), item.getPubDate().getYear()); assertEquals("http://ondetrabalhar.com/vagas/3649/senior-tech-leader", item.getGuid()); - } - - private String getRss() throws IOException { - return IOUtils.toString(FeedConverterTest.class.getResourceAsStream("/rss-example.xml")); + + @Test + public void should_convert_channel_correctly_info_q() throws ClientProtocolException, IOException { + FeedConverter feedConverter = new FeedConverter(RSSType.INFO_Q); + RSSFeed feed = feedConverter.convert(rssInfoQ); + RSSChannel channel = feed.getChannel(); + + assertEquals("InfoQ Personalized Feed for Unregistered User - Register to upgrade!", channel.getTitle()); + assertEquals("http://www.infoq.com", channel.getLink()); + assertEquals("This RSS feed is a personalized feed, unique to your account on InfoQ.com.", channel.getDescription()); + RSSItem item = channel.getItems().get(0); + assertEquals("Article: Applying Lean Thinking to Software Development", item.getTitle()); + assertEquals("http://www.infoq.com/articles/applying-lean-thinking-to-software-development", item.getLink()); + assertEquals("Scrum", item.getCategory().get(0)); + assertEquals("Lean", item.getCategory().get(1)); + + DateTime rssDay = new DateTime().withDate(2013, 12, 5); + assertEquals(rssDay.getMonthOfYear(), item.getPubDate().getMonthOfYear()); + assertEquals(rssDay.getYear(), item.getPubDate().getYear()); + assertEquals(rssDay.getDayOfMonth(), item.getPubDate().getDayOfMonth()); } - } diff --git a/src/test/java/br/com/caelum/brutal/infra/rss/RSSTypeTest.java b/src/test/java/br/com/caelum/brutal/infra/rss/RSSTypeTest.java new file mode 100644 index 000000000..966e62140 --- /dev/null +++ b/src/test/java/br/com/caelum/brutal/infra/rss/RSSTypeTest.java @@ -0,0 +1,35 @@ +package br.com.caelum.brutal.infra.rss; + +import static org.junit.Assert.assertEquals; + +import org.joda.time.DateTimeConstants; +import org.joda.time.LocalDateTime; +import org.joda.time.format.DateTimeFormatter; +import org.junit.Test; + +public class RSSTypeTest { + + @Test + public void should_verify_date_format_onde_trabalhar() { + DateTimeFormatter dateFormat = RSSType.ONDE_TRABALHAR.getDateFormat(); + LocalDateTime time = dateFormat.parseLocalDateTime("Wed, 27 Nov 2013 11:56:05 +0000"); + time(time); + } + + @Test + public void should_verify_date_format_info_q() { + DateTimeFormatter dateFormat = RSSType.INFO_Q.getDateFormat(); + LocalDateTime time = dateFormat.parseLocalDateTime("Wed, 27 Nov 2013 11:56:05 GMT"); + time(time); + } + + private void time(LocalDateTime time) { + assertEquals(DateTimeConstants.WEDNESDAY, time.getDayOfWeek()); + assertEquals(27,time.getDayOfMonth()); + assertEquals(DateTimeConstants.NOVEMBER, time.getMonthOfYear()); + assertEquals(2013, time.getYear()); + assertEquals(11, time.getHourOfDay()); + assertEquals(56, time.getMinuteOfHour()); + assertEquals(5, time.getSecondOfMinute()); + } +} From 276e61e4093510c3ee218257b9903d905c68dab2 Mon Sep 17 00:00:00 2001 From: Fernanda Bernardo Date: Mon, 9 Dec 2013 13:54:14 -0200 Subject: [PATCH 4/4] arrumando html e css do rss --- src/main/resources/messages.properties | 4 ++++ src/main/webapp/WEB-INF/tags/feed.tag | 7 ++++--- src/main/webapp/WEB-INF/tags/sideBar.tag | 3 ++- src/main/webapp/css/brutal.css | 1 + 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index f229d41df..7f9137ad4 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -662,8 +662,12 @@ questions.rss.title = GUJ respostas questions.rss.description = Últimas perguntas do GUJ respostas news.rss.title = Notícias do GUJ news.rss.description = Últimas notícias do GUJ +jobs.rss.url = http://www.ondetrabalhar.com/ jobs.rss.title = Ofertas de Empregos jobs.rss.more = Mais empregos... +infoq.rss.url = http://www.infoq.com/br/news +infoq.rss.title = Notícias InfoQ +infoq.rss.more = Mais notícias... #Input overflow error error.input_overflow = Você precisa esperar mais {0} segundos antes de inserir um novo post. diff --git a/src/main/webapp/WEB-INF/tags/feed.tag b/src/main/webapp/WEB-INF/tags/feed.tag index 106f3da27..cfc55d1f3 100644 --- a/src/main/webapp/WEB-INF/tags/feed.tag +++ b/src/main/webapp/WEB-INF/tags/feed.tag @@ -4,10 +4,11 @@ <%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> <%@attribute name="rssFeed" type="br.com.caelum.brutal.infra.rss.read.RSSFeed" required="true" %> <%@attribute name="rssUrl" type="java.lang.String" required="true" %> +<%@attribute name="rssType" type="java.lang.String" required="true" %>

- +

@@ -16,7 +17,7 @@
  • - + ">
    diff --git a/src/main/webapp/WEB-INF/tags/sideBar.tag b/src/main/webapp/WEB-INF/tags/sideBar.tag index 21073adbb..914cdab58 100644 --- a/src/main/webapp/WEB-INF/tags/sideBar.tag +++ b/src/main/webapp/WEB-INF/tags/sideBar.tag @@ -9,7 +9,8 @@
    - + + diff --git a/src/main/webapp/css/brutal.css b/src/main/webapp/css/brutal.css index 26d22436c..2315b6677 100644 --- a/src/main/webapp/css/brutal.css +++ b/src/main/webapp/css/brutal.css @@ -1093,6 +1093,7 @@ a.button.ask-a-question:hover { margin-bottom: 0; font-size: 1em; display: inline; + line-height: 1.2em; } .more-items {