diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/Main.java b/vipra-cmd/src/main/java/de/vipra/cmd/Main.java index 7599e053417ef0a66c104d46142dbd3515dca748..21ff41afd34c739464a2235d3ea1993d09a82e29 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/Main.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/Main.java @@ -1,6 +1,12 @@ package de.vipra.cmd; -import static de.vipra.cmd.CmdOptions.*; +import static de.vipra.cmd.CmdOptions.OPT_CLEAR; +import static de.vipra.cmd.CmdOptions.OPT_DEFAULTS; +import static de.vipra.cmd.CmdOptions.OPT_DELETE; +import static de.vipra.cmd.CmdOptions.OPT_HELP; +import static de.vipra.cmd.CmdOptions.OPT_IMPORT; +import static de.vipra.cmd.CmdOptions.OPT_SHELL; +import static de.vipra.cmd.CmdOptions.OPT_STATS; import java.util.ArrayList; import java.util.List; @@ -19,9 +25,9 @@ import de.vipra.cmd.option.DeleteCommand; import de.vipra.cmd.option.ImportCommand; import de.vipra.cmd.option.StatsCommand; import de.vipra.util.ConsoleUtils; +import de.vipra.util.ConsoleUtils.Choice; import de.vipra.util.StringUtils; import de.vipra.util.Timer; -import de.vipra.util.ConsoleUtils.Choice; public class Main { diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java index 2ea001f7a6e7ffeee8c2f3f5ee8a1d27d0496f87..5f05e98a856994ebd3015753e67beb5af51f4d33 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java @@ -7,8 +7,8 @@ import java.io.IOException; import de.vipra.cmd.ex.FilebaseException; import de.vipra.cmd.model.Article; import de.vipra.util.Config; -import de.vipra.util.Constants; import de.vipra.util.Config.Key; +import de.vipra.util.Constants; import de.vipra.util.ex.ConfigException; public abstract class Filebase implements Closeable { diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/lda/LDAAnalyzer.java b/vipra-cmd/src/main/java/de/vipra/cmd/lda/LDAAnalyzer.java index 8cef4fe5b50f15bcfc59f756b976061035b948f4..90d93345041007a489caeaf277153a898645cb62 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/lda/LDAAnalyzer.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/lda/LDAAnalyzer.java @@ -4,11 +4,11 @@ import java.util.List; import de.vipra.cmd.ex.LDAAnalyzerException; import de.vipra.util.Config; +import de.vipra.util.Config.Key; import de.vipra.util.Constants; import de.vipra.util.ConvertStream; import de.vipra.util.model.Topic; import de.vipra.util.model.TopicCount; -import de.vipra.util.Config.Key; public abstract class LDAAnalyzer { diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java index f95a3b559a8aa37cb93876ed7a01cdfa072e76f9..07d1dea32963cc1e64dea6910b503a3fc984716a 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java @@ -25,8 +25,8 @@ import de.vipra.cmd.file.Filebase; import de.vipra.cmd.file.FilebaseIndex; import de.vipra.cmd.lda.LDAAnalyzer; import de.vipra.cmd.model.Article; -import de.vipra.cmd.text.Processor; import de.vipra.cmd.text.ProcessedText; +import de.vipra.cmd.text.Processor; import de.vipra.util.Config; import de.vipra.util.Constants; import de.vipra.util.ConvertStream; diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java index a9c4ed1380b19ab3fb7ebd148725f38b6d48961c..8dfd50aa161ce9151610269579d6e096c9eb24af 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java @@ -5,8 +5,8 @@ import java.util.List; import de.vipra.cmd.ex.PreprocessorException; import de.vipra.util.Config; -import de.vipra.util.Constants; import de.vipra.util.Config.Key; +import de.vipra.util.Constants; public abstract class Processor { diff --git a/vipra-rest/src/main/java/de/vipra/rest/model/Article.java b/vipra-rest/src/main/java/de/vipra/rest/model/Article.java deleted file mode 100644 index c14c71a640b6be25b5e794f5b86880783abc5e21..0000000000000000000000000000000000000000 --- a/vipra-rest/src/main/java/de/vipra/rest/model/Article.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.vipra.rest.model; - -import java.net.URI; -import java.util.HashMap; -import java.util.Map; - -public class Article extends de.vipra.util.model.Article implements Linked { - - private Map<String, String> links; - - public Map<String, String> getLinks() { - return links; - } - - public void setLinks(Map<String, String> links) { - this.links = links; - } - - public void addLink(String name, String link) { - if (getLinks() == null) { - setLinks(new HashMap<String, String>()); - } - links.put(name, link); - } - - public void setBase(URI base) { - URI self = uri(base); - if (self != null) { - addLink("self", self.toString()); - } - } - -} diff --git a/vipra-rest/src/main/java/de/vipra/rest/model/Linked.java b/vipra-rest/src/main/java/de/vipra/rest/model/Linked.java deleted file mode 100644 index b3033930223dc97940ce5b09c6bc6fef42effada..0000000000000000000000000000000000000000 --- a/vipra-rest/src/main/java/de/vipra/rest/model/Linked.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.vipra.rest.model; - -import java.net.URI; -import java.util.Map; - -public interface Linked { - - public abstract Map<String, String> getLinks(); - - public abstract void setLinks(Map<String, String> links); - - public abstract void addLink(String name, String link); - - public abstract void setBase(URI base); - -} diff --git a/vipra-rest/src/main/java/de/vipra/rest/model/Topic.java b/vipra-rest/src/main/java/de/vipra/rest/model/Topic.java deleted file mode 100644 index 58856e7f2b2098769d4356199c2d74f791f0af9a..0000000000000000000000000000000000000000 --- a/vipra-rest/src/main/java/de/vipra/rest/model/Topic.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.vipra.rest.model; - -import java.net.URI; -import java.util.HashMap; -import java.util.Map; - -public class Topic extends de.vipra.util.model.Topic implements Linked { - - private Map<String, String> links; - - public Map<String, String> getLinks() { - return links; - } - - public void setLinks(Map<String, String> links) { - this.links = links; - } - - public void addLink(String name, String link) { - if (getLinks() == null) { - setLinks(new HashMap<String, String>()); - } - links.put(name, link); - } - - public void setBase(URI base) { - URI self = uri(base); - if (self != null) { - addLink("self", self.toString()); - } - } - -} diff --git a/vipra-rest/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java b/vipra-rest/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java index 512a18eae4561263ef13051b888181673b8754ad..b8cc2188dca150d22fb5a6627d080160de53b900 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java +++ b/vipra-rest/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java @@ -13,13 +13,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; -import de.vipra.rest.model.Article; -import de.vipra.rest.model.Topic; import de.vipra.rest.serializer.ArticleDeserializer; import de.vipra.rest.serializer.ArticleSerializer; import de.vipra.rest.serializer.TopicDeserializer; import de.vipra.rest.serializer.TopicSerializer; import de.vipra.util.Constants; +import de.vipra.util.model.Article; +import de.vipra.util.model.Topic; @Provider public class ObjectMapperProvider implements ContextResolver<ObjectMapper> { diff --git a/vipra-rest/src/main/java/de/vipra/rest/resource/ArticleResource.java b/vipra-rest/src/main/java/de/vipra/rest/resource/ArticleResource.java index 62aca81e98c4a915b1bb4d559bd94aa6f179f435..4e0b483dce84e4df8524febca574b6679c5855f4 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/resource/ArticleResource.java +++ b/vipra-rest/src/main/java/de/vipra/rest/resource/ArticleResource.java @@ -21,13 +21,13 @@ import javax.ws.rs.core.UriInfo; import de.vipra.rest.APIMediaType; import de.vipra.rest.Messages; import de.vipra.rest.model.APIError; -import de.vipra.rest.model.Article; import de.vipra.rest.model.ResponseWrapper; import de.vipra.rest.service.ArticleService; import de.vipra.util.Config; import de.vipra.util.Mongo; import de.vipra.util.ex.ConfigException; import de.vipra.util.ex.DatabaseException; +import de.vipra.util.model.Article; @Path("articles") public class ArticleResource { @@ -65,7 +65,7 @@ public class ArticleResource { String.format(Messages.BAD_REQUEST, "id cannot be empty"))); return Response.status(Response.Status.BAD_REQUEST).entity(res).build(); } - Article article = service.getSingle(uri.getAbsolutePath(), id); + Article article = service.getSingle(id); if (article != null) { res.setData(article); return Response.ok().entity(res).build(); @@ -82,7 +82,7 @@ public class ArticleResource { public Response createArticle(Article article) { ResponseWrapper<Article> res; try { - article = service.createSingle(uri.getAbsolutePath(), article); + article = service.createSingle(article); res = new ResponseWrapper<>(article); return Response.created(article.uri(uri.getAbsolutePath())).entity(res).build(); } catch (DatabaseException e) { @@ -124,7 +124,7 @@ public class ArticleResource { public Response updateArticle(@PathParam("id") String id, Article article) { ResponseWrapper<Article> res = new ResponseWrapper<>(); try { - long updated = service.updateSingle(uri.getAbsolutePath(), article); + long updated = service.updateSingle(article); int updatedInt = updated > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) updated; switch (updatedInt) { case 0: diff --git a/vipra-rest/src/main/java/de/vipra/rest/resource/TopicResource.java b/vipra-rest/src/main/java/de/vipra/rest/resource/TopicResource.java index 68b222461ba24916f6ebde77b4b917d699012306..c3c09269d48cb131b18976e965a6e3a8546ea45f 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/resource/TopicResource.java +++ b/vipra-rest/src/main/java/de/vipra/rest/resource/TopicResource.java @@ -20,12 +20,12 @@ import de.vipra.rest.APIMediaType; import de.vipra.rest.Messages; import de.vipra.rest.model.APIError; import de.vipra.rest.model.ResponseWrapper; -import de.vipra.rest.model.Topic; import de.vipra.rest.service.TopicService; import de.vipra.util.Config; import de.vipra.util.Mongo; import de.vipra.util.ex.ConfigException; import de.vipra.util.ex.DatabaseException; +import de.vipra.util.model.Topic; @Path("topics") public class TopicResource { @@ -62,7 +62,7 @@ public class TopicResource { String.format(Messages.BAD_REQUEST, "id cannot be empty"))); return Response.status(Response.Status.BAD_REQUEST).entity(res).build(); } - Topic topic = service.getSingle(uri.getAbsolutePath(), id); + Topic topic = service.getSingle(id); if (topic != null) { res.setData(topic); return Response.ok().entity(res).build(); diff --git a/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleDeserializer.java b/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleDeserializer.java index 8324f7c23c670bc876496a8da0380e902f151b59..4f4fddf584fd7298958d3574079bf04038593d25 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleDeserializer.java +++ b/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleDeserializer.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; -import de.vipra.rest.model.Article; +import de.vipra.util.model.Article; public class ArticleDeserializer extends JsonDeserializer<Article> { diff --git a/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleSerializer.java b/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleSerializer.java index daac45fc1af228e49c31a75aa9b41affc2c756a0..f754208511a0118fffa255b64ab4b7c95d4c0f9e 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleSerializer.java +++ b/vipra-rest/src/main/java/de/vipra/rest/serializer/ArticleSerializer.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; -import de.vipra.rest.model.Article; +import de.vipra.util.model.Article; public class ArticleSerializer extends JsonSerializer<Article> { @@ -20,9 +20,6 @@ public class ArticleSerializer extends JsonSerializer<Article> { gen.writeStringField("id", value.getId()); gen.writeStringField("type", "article"); - if (value.getLinks() != null) - gen.writeObjectField("links", value.getLinks()); - gen.writeObjectFieldStart("attributes"); if (value.getTitle() != null) gen.writeStringField("title", value.getTitle()); diff --git a/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicDeserializer.java b/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicDeserializer.java index 8fcf38b63194365f2d05bde86ff6c17f2876746c..3e01e6ac61bca23f9a2e5956b24642db67a925d3 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicDeserializer.java +++ b/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicDeserializer.java @@ -1,7 +1,7 @@ package de.vipra.rest.serializer; -import static de.vipra.rest.serializer.JsonHelper.getString; import static de.vipra.rest.serializer.JsonHelper.getInt; +import static de.vipra.rest.serializer.JsonHelper.getString; import java.io.IOException; @@ -11,7 +11,7 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; -import de.vipra.rest.model.Topic; +import de.vipra.util.model.Topic; public class TopicDeserializer extends JsonDeserializer<Topic> { diff --git a/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicSerializer.java b/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicSerializer.java index 38ef064de549cb44771a0ee5cccf6bd4c30e957d..6d25b1ab1acd2183d9d7f380c6f91927c9efb05c 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicSerializer.java +++ b/vipra-rest/src/main/java/de/vipra/rest/serializer/TopicSerializer.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; -import de.vipra.rest.model.Topic; +import de.vipra.util.model.Topic; public class TopicSerializer extends JsonSerializer<Topic> { @@ -18,9 +18,6 @@ public class TopicSerializer extends JsonSerializer<Topic> { gen.writeStringField("id", value.getId()); gen.writeStringField("type", "topic"); - if (value.getLinks() != null) - gen.writeObjectField("links", value.getLinks()); - gen.writeObjectFieldStart("attributes"); gen.writeNumberField("index", value.getIndex()); if (value.getName() != null) diff --git a/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java b/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java index 8af13aabb7fdd400b05495273177e44e0a07f8a0..e071fa0b69a7965faf796a06433b86ef72217ad0 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java +++ b/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java @@ -3,9 +3,10 @@ package de.vipra.rest.service; import java.net.URI; import java.util.List; -import de.vipra.rest.model.Article; import de.vipra.util.Constants; import de.vipra.util.Mongo; +import de.vipra.util.model.Article; +import de.vipra.util.service.DatabaseService; public class ArticleService extends DatabaseService<Article> { diff --git a/vipra-rest/src/main/java/de/vipra/rest/service/DatabaseService.java b/vipra-rest/src/main/java/de/vipra/rest/service/DatabaseService.java deleted file mode 100644 index b23e06e26903ca684e1b84425a25dd763488de96..0000000000000000000000000000000000000000 --- a/vipra-rest/src/main/java/de/vipra/rest/service/DatabaseService.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.vipra.rest.service; - -import java.net.URI; -import java.util.List; - -import de.vipra.rest.model.Linked; -import de.vipra.util.Constants.Collection; -import de.vipra.util.ex.DatabaseException; -import de.vipra.util.Mongo; -import de.vipra.util.model.Model; - -public class DatabaseService<T extends Model & Linked> extends de.vipra.util.service.DatabaseService<T> { - - public DatabaseService(Mongo mongo, Collection collection, Class<T> clazz) { - super(mongo, collection, clazz); - } - - public T getSingle(URI base, String id) { - T t = super.getSingle(id); - if (t != null) { - t.setBase(base); - } - return t; - } - - public List<T> getMultiple(URI base, int skip, int limit, String sortBy) { - List<T> ts = super.getMultiple(skip, limit, sortBy); - for (T t : ts) { - t.setBase(base); - } - return ts; - } - - public T createSingle(URI base, T t) throws DatabaseException { - t = super.createSingle(t); - if (t != null) { - t.setBase(base); - } - return t; - } - - public long deleteSingle(String id) throws DatabaseException { - return super.deleteSingle(id); - } - - public long updateSingle(URI base, T t) throws DatabaseException { - long updated = super.updateSingle(t); - t.setBase(base); - return updated; - } - -} diff --git a/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java b/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java index 9599b521d9f58c8abb8cd7ba4dc9dbbea2347bad..f50677279cb79362f0bd6c2ccf20f1c4a8d16143 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java +++ b/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java @@ -3,9 +3,10 @@ package de.vipra.rest.service; import java.net.URI; import java.util.List; -import de.vipra.rest.model.Topic; import de.vipra.util.Constants; import de.vipra.util.Mongo; +import de.vipra.util.model.Topic; +import de.vipra.util.service.DatabaseService; public class TopicService extends DatabaseService<Topic> { diff --git a/vipra-ui/app/components/topic-link.js b/vipra-ui/app/components/topic-link.js index 506e7122192595698fafe9eb384b0ca4a8e22dfa..9d31203266a630ba785074786edb3a22371e9f36 100644 --- a/vipra-ui/app/components/topic-link.js +++ b/vipra-ui/app/components/topic-link.js @@ -7,8 +7,9 @@ export default Ember.Component.extend({ text: Ember.computed('topic', function() { var topic = this.get('topic'); var text = topic.name ? topic.name : topic.id; - if(topic.hasOwnProperty('count')) + if(topic.hasOwnProperty('count')) { text += ` (${topic.count})`; + } return text; }) diff --git a/vipra-ui/app/routes/topics/show.js b/vipra-ui/app/routes/topics/show.js new file mode 100644 index 0000000000000000000000000000000000000000..10a179b7826929b9dd5597de3b8624d9a23c20cc --- /dev/null +++ b/vipra-ui/app/routes/topics/show.js @@ -0,0 +1,9 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + model(params) { + return Ember.RSVP.hash({ + article: this.store.find('topic', params.topic_id) + }); + } +}) \ No newline at end of file diff --git a/vipra-util/src/main/java/de/vipra/util/Constants.java b/vipra-util/src/main/java/de/vipra/util/Constants.java index 0594c27dcbe210369807aa1409b5240ea2600f85..1fe21bf34434a02a9f456d56153d3d46d2a6c6ef 100644 --- a/vipra-util/src/main/java/de/vipra/util/Constants.java +++ b/vipra-util/src/main/java/de/vipra/util/Constants.java @@ -1,9 +1,9 @@ package de.vipra.util; -import java.util.List; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.List; public class Constants { diff --git a/vipra-util/src/main/java/de/vipra/util/model/TopicCount.java b/vipra-util/src/main/java/de/vipra/util/model/TopicCount.java index 3c6bc441a575eed25ad9e4f9d4a7f38e74e2277d..0debc17548004dc659c1ba11317c2aa02b77e761 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/TopicCount.java +++ b/vipra-util/src/main/java/de/vipra/util/model/TopicCount.java @@ -2,8 +2,6 @@ package de.vipra.util.model; import org.bson.Document; -import de.vipra.util.MongoUtils; - public class TopicCount implements BsonDocument, Comparable<TopicCount> { private String id;