git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31561
<plugin id="com.fasterxml.jackson.datatype.jackson-datatype-joda"/>\r
<plugin id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.4.5"/>\r
<plugin id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.4.5"/>\r
+<plugin id="com.fasterxml.jackson.module.jackson-module-jaxb-annotations" version="2.4.5"/>\r
<plugin id="com.ibm.db2jcc4"/>\r
<plugin id="com.ibm.nosql"/>\r
<plugin id="com.microsoft.sqlserver.sqljdbc"/>\r
<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>\r
<stringAttribute key="M2_USER_SETTINGS" value=""/>\r
<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk"/>\r
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dspring.main.allow-bean-definition-overriding=true -Dlang=polish"/>\r
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/hu.user.mediacube.indexer}"/>\r
</launchConfiguration>\r
package hu.user.mediacube.indexer;\r
\r
-import java.util.List;\r
-\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.web.bind.annotation.RequestMapping;\r
import org.springframework.web.bind.annotation.RestController;\r
\r
-import hu.user.mediacube.indexer.db.IndexerDescription;\r
+import hu.user.mediacube.indexer.db.ArchivedMedia;\r
+import hu.user.mediacube.indexer.db.SearchResult;\r
import hu.user.mediacube.indexer.lucene.LuceneIndexer;\r
\r
@RestController\r
\r
private static Logger logger = LoggerFactory.getLogger(RESTController.class);\r
\r
- // @Configuration\r
- // public class JacksonConfiguration {\r
+ // @Configuration\r
+ // public class JacksonConfiguration {\r
//\r
- // @Bean\r
- // public ObjectMapper objectMapper() {\r
- // ObjectMapper mapper = new ObjectMapper();\r
- // mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);\r
- // mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);\r
+ // @Bean\r
+ // public ObjectMapper objectMapper() {\r
+ // ObjectMapper mapper = new ObjectMapper();\r
+ // mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,\r
+ // false);\r
+ // mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);\r
//\r
- // return mapper;\r
- // }\r
- // }\r
+ // return mapper;\r
+ // }\r
+ // }\r
\r
@Autowired\r
GreetingService greetingService;\r
}\r
\r
@GetMapping(path = "/search/{queryString}/{skipRecords}/{takeRecords}/{orderIndex}/{orderDirection}", produces = "application/json")\r
- public List<IndexerDescription> search(@PathVariable String queryString, @PathVariable int skipRecords, @PathVariable int takeRecords,\r
+ public SearchResult<ArchivedMedia> search(@PathVariable String queryString, @PathVariable int skipRecords, @PathVariable int takeRecords,\r
@PathVariable int orderIndex, @PathVariable int orderDirection) {\r
return indexer.search(queryString, skipRecords, takeRecords, orderIndex, orderDirection);\r
}\r
--- /dev/null
+package hu.user.mediacube.indexer.db;\r
+\r
+import java.io.Serializable;\r
+\r
+public class ArchivedMedia implements Serializable {\r
+ private static final long serialVersionUID = 1L;\r
+ private Item item;\r
+ private Media media;\r
+ private String relevant;\r
+\r
+ public Item getItem() {\r
+ return item;\r
+ }\r
+\r
+ public Media getMedia() {\r
+ return media;\r
+ }\r
+\r
+ public String getRelevant() {\r
+ return relevant;\r
+ }\r
+\r
+ public void setItem(Item item) {\r
+ this.item = item;\r
+ }\r
+\r
+ public void setMedia(Media media) {\r
+ this.media = media;\r
+ }\r
+\r
+ public void setRelevant(String relevant) {\r
+ this.relevant = relevant;\r
+ }\r
+}\r
--- /dev/null
+package hu.user.mediacube.indexer.db;\r
+\r
+import org.apache.ibatis.javassist.bytecode.SignatureAttribute.BaseType;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+public class EntityBase implements IEntityBase {\r
+ protected final static Logger logger = LogManager.getLogger();\r
+ protected long id;\r
+ protected IEntityPersister persister;\r
+\r
+ @Override\r
+ public void add() {\r
+ if (persister != null)\r
+ persister.add(this);\r
+ else {\r
+ throw new NullPointerException("Persister cannot be null!");\r
+ }\r
+ }\r
+\r
+ protected void checkParameter(String name, BaseType type) {\r
+ if (type == null)\r
+ throw new NullPointerException(name + " cannot be null.");\r
+ }\r
+\r
+ void checkParameter(String name, double parameter) {\r
+ if (parameter == 0)\r
+ throw new IllegalArgumentException(name + " cannot be 0.");\r
+ }\r
+\r
+ protected void checkParameter(String name, IEntityBase entity) {\r
+ checkParameter(name, entity, false);\r
+ }\r
+\r
+ protected void checkParameter(String name, IEntityBase entity, boolean nonZero) {\r
+ if (entity == null)\r
+ throw new NullPointerException(name + " cannot be null.");\r
+ if (nonZero == true) {\r
+ if (entity.getId() != 0)\r
+ throw new IllegalArgumentException("Appending " + name + " with non 0 ID is prohibited.");\r
+ } else {\r
+ if (entity.getId() == 0)\r
+ throw new IllegalArgumentException(name + " ID cannot be 0.");\r
+ }\r
+ }\r
+\r
+ public void checkParameter(String name, long parameter) {\r
+ checkParameter(name, parameter, false);\r
+ }\r
+\r
+ @Override\r
+ public void checkParameter(String name, long parameter, boolean nonZero) {\r
+ if (nonZero == true) {\r
+ if (parameter != 0)\r
+ throw new IllegalArgumentException(name + " must be 0.");\r
+ } else {\r
+ if (parameter == 0)\r
+ throw new IllegalArgumentException(name + " cannot be 0.");\r
+ }\r
+ }\r
+\r
+ protected void checkParameter(String name, String parameter) {\r
+ if (parameter == null)\r
+ throw new NullPointerException(name + " cannot be null.");\r
+ if (parameter.trim().equals(""))\r
+ throw new IllegalArgumentException(name + " cannot be empty.");\r
+ }\r
+\r
+ @Override\r
+ public long getId() {\r
+ return id;\r
+ }\r
+\r
+ @Override\r
+ public void modify() {\r
+ if (persister != null)\r
+ persister.modify(this);\r
+ else {\r
+ throw new NullPointerException("Persister cannot be null!");\r
+ }\r
+\r
+ }\r
+\r
+ @Override\r
+ public void remove() {\r
+ if (persister != null)\r
+ persister.remove(this);\r
+ else {\r
+ throw new NullPointerException("Persister cannot be null!");\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void setId(long id) {\r
+ this.id = id;\r
+ }\r
+\r
+ @Override\r
+ public void setPersister(IEntityPersister persister) {\r
+ this.persister = persister;\r
+ }\r
+ /*\r
+ * @Override public int compareTo(Object arg0) { return 0; }\r
+ */\r
+}
\ No newline at end of file
--- /dev/null
+package hu.user.mediacube.indexer.db;\r
+\r
+/**\r
+ * Az adatb�zis modell entit�sok alap olyt�lya.\r
+ * \r
+ * @author User\r
+ * \r
+ * Ahol erre szukseg van ott ezek a beanek inkabb implementaljak\r
+ * maguknak a Comparable interfacet\r
+ * extends Comparable<Object>\r
+ * \r
+ */\r
+public interface IEntityBase { \r
+ void setPersister(IEntityPersister persister);\r
+\r
+ /**\r
+ * Az adatb�zisban l�trehoz egy �j entit�st.\r
+ */\r
+ void add();\r
+\r
+ /**\r
+ * Visszaadja az entit�s azonos�t�j�t\r
+ * \r
+ * @return <b>long</b> azonos�t�\r
+ */\r
+ long getId();\r
+\r
+ /**\r
+ * Az adatb�zisban m�dos�t egy m�r l�tez� objektumot.\r
+ */\r
+ void modify();\r
+\r
+ /**\r
+ * Az adatb�zisb�l elt�vol�t egy objektumot.\r
+ */\r
+ void remove();\r
+\r
+ /**\r
+ * A kapott id alapj�n be�ll�tja az entit�s azonos�t�j�t.\r
+ * \r
+ * @param id\r
+ */\r
+ void setId(long id);\r
+\r
+ /**\r
+ * A bementi param�tert ellen�rzi le. Amennyiben a nonZero igaz, akkor a\r
+ * param�ternek null�nak kell lenni, Ha nonZero hamis, akkor a param�ternek\r
+ * null�t�l k�l�nb�z�nek kell lenni.\r
+ * \r
+ * @param name\r
+ * @param parameter\r
+ * @param nonZero\r
+ * @throws IllegalArgumentException\r
+ */\r
+ void checkParameter(String name, long parameter, boolean nonZero);\r
+}
\ No newline at end of file
--- /dev/null
+package hu.user.mediacube.indexer.db;\r
+\r
+public interface IEntityPersister {\r
+\r
+ /***\r
+ * Az adatb�zisban l�trehoz egy �j entit�st\r
+ * \r
+ * @param entity\r
+ * Perziszt�land� objektum\r
+ */\r
+ void add(IEntityBase entity);\r
+\r
+ /***\r
+ * Elk�r az adatb�zisb�l egy objektumot\r
+ * \r
+ * @param classInfo\r
+ * Az objektum t�pusa\r
+ * @param id\r
+ * Egyedi azonos�t�\r
+ * @return Perziszt�lt objektum p�ld�ny\r
+ */\r
+ IEntityBase get(Class<? extends IEntityBase> classInfo, long id);\r
+\r
+ /***\r
+ * Az adatb�zisban m�dos�t egy m�r l�tez� objektumot\r
+ * \r
+ * @param entity\r
+ * A perziszt�land� objektum\r
+ */\r
+ void modify(IEntityBase entity);\r
+\r
+ /***\r
+ * Elt�vol�t egy objektumot az adatb�zisb�l\r
+ * \r
+ * @param entity\r
+ * Az elt�vol�tand� objektum\r
+ */\r
+ void remove(IEntityBase entity);\r
+\r
+}\r
--- /dev/null
+package hu.user.mediacube.indexer.db;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Anyag Pojo osztály.
+ *
+ * @author User
+ *
+ */
+public class Item extends EntityBase implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private Timestamp created = null;
+ private Timestamp modified = null;
+ private String description = null;
+ private String houseId = null;
+ // private List<Media> medias = null;
+ private String title = null;
+ private boolean isFolder = false;;
+ private Long folderId = null;
+
+ // public void appendMedia(Media media) {
+ // checkParameter("Media", media, true);
+ // if (getMedias() == null)
+ // setMedias(new ArrayList<Media>());
+ // getMedias().add(media);
+ // }
+
+ @XmlJavaTypeAdapter(TimestampAdapter.class)
+ public Timestamp getCreated() {
+ return created;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Long getFolderId() {
+ return folderId;
+ }
+
+ public String getHouseId() {
+ return houseId;
+ }
+
+ public boolean getIsFolder() {
+ return isFolder;
+ }
+
+ @SuppressWarnings("unchecked")
+ // public List<Media> getMedias() {
+ // if (medias == null) {
+ // MediaDAO dao = (MediaDAO)
+ // ItemManager.getInstance().getBaseDAO(Media.class);
+ // medias = (List<Media>) (List<?>) dao.getAll(getId());
+ // }
+ // return medias;
+ // }
+
+ @XmlJavaTypeAdapter(TimestampAdapter.class)
+ public Timestamp getModified() {
+ return modified;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setCreated(Timestamp created) {
+ this.created = created;
+ }
+
+ public void setDescription(String description) {
+ // checkParameter("Description", description);
+ this.description = description;
+ }
+
+ public void setFolderId(Long folderId) {
+ this.folderId = folderId;
+ }
+
+ public void setHouseId(String houseId) {
+ this.houseId = houseId;
+ }
+
+ public void setIsFolder(boolean isFolder) {
+ this.isFolder = isFolder;
+ }
+
+ public void setModified(Timestamp modified) {
+ this.modified = modified;
+ }
+
+ public void setTitle(String title) {
+ // checkParameter("Title", title);
+ this.title = title;
+ }
+}
\ No newline at end of file
--- /dev/null
+package hu.user.mediacube.indexer.db;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Medi Pojo osztaly.
+ *
+ * @author User
+ *
+ */
+public class Media extends EntityBase implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private Timestamp archived = null;
+ private Timestamp created = null;
+ private String description = null;
+ private String houseId = null;
+ private long itemId = 0;
+ private long length = 0;
+ private String title = null;
+ private boolean isPartialEnabled;
+ private byte[] poster = null;
+ // private String mediaFilesName;
+ private int mediaFilesCount = -1;
+
+ @XmlJavaTypeAdapter(TimestampAdapter.class)
+ public Timestamp getArchived() {
+ return this.archived;
+ }
+
+ @XmlJavaTypeAdapter(TimestampAdapter.class)
+ public Timestamp getCreated() {
+ return created;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getHouseId() {
+ return this.houseId;
+ }
+
+ public boolean getIsPartialEnabled() {
+ return isPartialEnabled;
+ }
+
+ public long getItemId() {
+ return this.itemId;
+ }
+
+ public long getLength() {
+ return this.length;
+ }
+
+ // @JsonIgnore
+ // public String getMediaFilesName() {
+ // if (mediaFilesName == null) {
+ // List<MediaFile> files = getMediaFiles();
+ // if (files != null && files.size() > 0) {
+ // for (MediaFile mf : files) {
+ // mediaFilesName = mf.getHouseId();
+ // if (mediaFilesName != null)
+ // break;
+ // }
+ // }
+ // }
+ //
+ // return mediaFilesName;
+ // }
+
+ public byte[] getPoster() {
+ return poster;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setArchived(Timestamp archived) {
+ this.archived = archived;
+ }
+
+ public void setCreated(Timestamp created) {
+ this.created = created;
+ }
+
+ public void setDescription(String description) {
+ // checkParameter("Description", description);
+ this.description = description;
+ }
+
+ public void setHouseId(String id) {
+ houseId = id;
+ }
+
+ public void setIsPartialEnabled(boolean isPartialEnabled) {
+ this.isPartialEnabled = isPartialEnabled;
+ }
+
+ public void setItemId(long itemId) {
+ // checkParameter("ItemId", itemId);
+ this.itemId = itemId;
+ }
+
+ public void setLength(long length) {
+ this.length = length;
+ }
+
+ // public void setMediaFilesName(String mediaFilesName) {
+ // this.mediaFilesName = mediaFilesName;
+ // }
+
+ public void setPoster(byte[] poster) {
+ this.poster = poster;
+ }
+
+ public void setTitle(String title) {
+ checkParameter("Title", title);
+ this.title = title;
+ }
+}
\ No newline at end of file
--- /dev/null
+package hu.user.mediacube.indexer.db;\r
+\r
+import java.util.List;\r
+\r
+public class SearchResult<T> {\r
+\r
+ private long itemCount;\r
+ private List<T> items;\r
+\r
+ public long getItemCount() {\r
+ return this.itemCount;\r
+ }\r
+\r
+ public List<T> getItems() {\r
+ return this.items;\r
+ }\r
+\r
+ public void setItemCount(long itemCount) {\r
+ this.itemCount = itemCount;\r
+ }\r
+\r
+ public void setItems(List<T> items) {\r
+ this.items = items;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+package hu.user.mediacube.indexer.db;\r
+\r
+import java.sql.Timestamp;\r
+import java.util.Date;\r
+import javax.xml.bind.annotation.adapters.XmlAdapter;\r
+\r
+public class TimestampAdapter\r
+ extends XmlAdapter<Date, Timestamp> {\r
+\r
+ public Date marshal(Timestamp v) {\r
+ return new Date(v.getTime());\r
+ }\r
+\r
+ public Timestamp unmarshal(Date v) {\r
+ return new Timestamp(\r
+ v.getTime());\r
+ }\r
+}
\ No newline at end of file
import java.nio.file.Path;\r
import java.nio.file.Paths;\r
import java.util.ArrayList;\r
+import java.util.Iterator;\r
import java.util.List;\r
\r
import javax.annotation.PostConstruct;\r
import org.apache.lucene.index.IndexReader;\r
import org.apache.lucene.index.IndexWriter;\r
import org.apache.lucene.index.IndexWriterConfig;\r
+import org.apache.lucene.index.IndexableField;\r
import org.apache.lucene.queryparser.classic.QueryParser;\r
import org.apache.lucene.search.IndexSearcher;\r
import org.apache.lucene.search.Query;\r
import org.springframework.util.FileSystemUtils;\r
\r
import hu.user.mediacube.indexer.JsonProperties;\r
+import hu.user.mediacube.indexer.db.ArchivedMedia;\r
import hu.user.mediacube.indexer.db.IndexerDescription;\r
+import hu.user.mediacube.indexer.db.Item;\r
+import hu.user.mediacube.indexer.db.Media;\r
+import hu.user.mediacube.indexer.db.SearchResult;\r
\r
@Component\r
public class LuceneIndexer {\r
private static Logger logger = LoggerFactory.getLogger(LuceneIndexer.class);\r
private static final String DESCRIPTION = "description";\r
- // private static Field[] fields;\r
- // static {\r
- // FieldType TYPE = new FieldType();\r
- // TYPE.setDocValuesType(DocValuesType.SORTED_NUMERIC);\r
- // TYPE.freeze();\r
+ // private static Field[] fields;\r
+ // static {\r
+ // FieldType TYPE = new FieldType();\r
+ // TYPE.setDocValuesType(DocValuesType.SORTED_NUMERIC);\r
+ // TYPE.freeze();\r
//\r
- // fields={new Field("itemId","",TYPE)};\r
- // }\r
+ // fields={new Field("itemId","",TYPE)};\r
+ // }\r
@Autowired\r
private JsonProperties config;\r
private Directory directoryIndex;\r
indexWritter.commit();\r
}\r
\r
+ public ArchivedMedia createArchivedMedia(Document doc, String highlight) {\r
+ ArchivedMedia ret = new ArchivedMedia();\r
+\r
+ Iterator<IndexableField> iterator = doc.iterator();\r
+ Item item = new Item();\r
+ Media media = new Media();\r
+ item.setDescription(highlight);\r
+ while (iterator.hasNext()) {\r
+ IndexableField field = iterator.next();\r
+ switch (field.name()) {\r
+ case "mediaId": {\r
+ media.setId((Long) field.numericValue());\r
+ break;\r
+ }\r
+ case "itemTitle": {\r
+ item.setTitle(field.stringValue());\r
+ break;\r
+ }\r
+ case "mediaTitle": {\r
+ media.setTitle(field.stringValue());\r
+ break;\r
+ }\r
+ case "mediaHouseId": {\r
+ media.setHouseId(field.stringValue());\r
+ break;\r
+ }\r
+ case "length": {\r
+ media.setLength((Long) field.numericValue());\r
+ break;\r
+ }\r
+ }\r
+\r
+ ret.setItem(item);\r
+ ret.setMedia(media);\r
+ ret.setRelevant(highlight);\r
+ }\r
+\r
+ return ret;\r
+ }\r
+\r
public void index(IndexerDescription indexerDescription) throws IOException {\r
Document document = new Document();\r
addLong(document, "itemId", indexerDescription.getItemId());\r
start();\r
}\r
\r
- public List<IndexerDescription> search(String queryString, int skipRecords, int takeRecords, int orderIndex, int orderDirection) {\r
- List<IndexerDescription> ret = new ArrayList<>();\r
+ public SearchResult<ArchivedMedia> search(String queryString, int skipRecords, int takeRecords, int orderIndex, int orderDirection) {\r
+ SearchResult<ArchivedMedia> ret = new SearchResult<ArchivedMedia>();\r
+ List<ArchivedMedia> mediaList = new ArrayList<ArchivedMedia>();\r
IndexReader indexReader = null;\r
IndexSearcher searcher = null;\r
try {\r
}\r
logger.info("Apply {}", sort);\r
\r
- //mediahouseid,mediatitle, mediafilehouseid,archived,hossz\r
+ // mediahouseid,mediatitle, mediafilehouseid,archived,hossz\r
TopDocs results = searcher.search(query, skipRecords + takeRecords, new Sort(sort));\r
- //TopDocs results = searcher.search(query, skipRecords + takeRecords);\r
+ // TopDocs results = searcher.search(query, skipRecords +\r
+ // takeRecords);\r
ScoreDoc[] scoreDocs = results.scoreDocs;\r
UnifiedHighlighter highlighter = new UnifiedHighlighter(searcher, analyzer);\r
- //highlighter.setFormatter(formatter);\r
+ // highlighter.setFormatter(formatter);\r
logger.info("Total result: {}", results.totalHits);\r
for (int i = skipRecords; i < results.totalHits.value; i++) {\r
if (i > (skipRecords + takeRecords) - 1) {\r
Document doc = searcher.doc(scoreDocs[i].doc);\r
String[] fragments = highlighter.highlight(DESCRIPTION, query, results);\r
String highlight = fragments[0];\r
- ret.add(new IndexerDescription(doc, highlight));\r
+ mediaList.add(createArchivedMedia(doc, highlight));\r
\r
logger.info("Item " + doc.get("mediaTitle") + " : " + fragments[0]);\r
}\r
+ ret.setItems(mediaList);\r
+ ret.setItemCount(results.totalHits.value);\r
} catch (Exception e) {\r
logger.error("Search", e);\r
} finally {\r
Service-Component: OSGI-INF/component.xml
Bundle-ActivationPolicy: lazy
Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
+ com.fasterxml.jackson.jaxrs.base;version="2.4.5",
+ com.fasterxml.jackson.module.jaxb;version="2.4.5",
javax.ws.rs.client,
javax.ws.rs.core,
org.apache.logging.log4j;version="2.8.2",
- org.jboss.resteasy.client.jaxrs
+ org.jboss.resteasy.client.jaxrs,
+ org.jboss.resteasy.plugins.providers,
+ org.jboss.resteasy.plugins.providers.jackson,
+ org.jboss.resteasy.spi
Export-Package: user.jobengine.db
import java.util.List;\r
\r
import javax.ws.rs.client.WebTarget;\r
-import javax.ws.rs.core.Response;\r
+import javax.ws.rs.core.GenericType;\r
\r
import org.jboss.resteasy.client.jaxrs.ResteasyClient;\r
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\r
+import org.jboss.resteasy.plugins.providers.RegisterBuiltin;\r
+import org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider;\r
+import org.jboss.resteasy.spi.ResteasyProviderFactory;\r
\r
public class LuceneMediaFinder implements IMediaFinder {\r
\r
private WebTarget webTarget;\r
- private String apiAddress = "http://10.228.198.1:8080/rest";\r
+ private String apiAddress = "http://10.228.198.1:8080/indexer";\r
private String apiPath = "/search/*:*/0/10/1/1";\r
\r
@Override\r
public SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult,\r
int toResult) {\r
+ SearchResult<ArchivedMedia> ret = new SearchResult<ArchivedMedia>();\r
// TODO Auto-generated method stub\r
+ ResteasyProviderFactory instance = ResteasyProviderFactory.getInstance();\r
+ RegisterBuiltin.register(instance);\r
+ instance.registerProvider(ResteasyJackson2Provider.class);\r
ResteasyClient client = new ResteasyClientBuilder().build();\r
webTarget = client.target(apiAddress);\r
WebTarget target = webTarget.path(apiPath);\r
- Response response = target.request().get();\r
- //TODO List<IndexerDescription> legyen a valasz\r
- //utana konvertaljuk List<ArchivedMedia> tipusra\r
-\r
- return null;\r
+ // Response response = target.request().get(IndexerDescription.class);\r
+ // Response response = target.get(new\r
+ // GenericType<List<IndexerDescription>>() {\r
+ // });\r
+ List<IndexerDescription> response = target.request().get(new GenericType<List<IndexerDescription>>() {\r
+ });\r
+ // TODO List<IndexerDescription> legyen a valasz\r
+ // utana konvertaljuk List<ArchivedMedia> tipusra\r
+ // List<ArchivedMedia> archivedMedia = (List<ArchivedMedia>) response;\r
+\r
+ return ret;\r
}\r
\r
}\r
package user.jobengine.server.IT;\r
\r
import java.util.Date;\r
+import java.util.List;\r
\r
import org.junit.AfterClass;\r
import org.junit.BeforeClass;\r
import user.jobengine.db.IItemManager;\r
import user.jobengine.db.Item;\r
import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.LuceneMediaFinder;\r
import user.jobengine.db.Media;\r
import user.jobengine.db.MediaFile;\r
\r
\r
item.add();\r
\r
- //manager.mergeItemStructure(item);\r
+ // manager.mergeItemStructure(item);\r
+ }\r
+\r
+ @Test\r
+ public void tryLuceneSearch() throws Exception {\r
+ // Item item = manager.createItem("Default", "Item1", "Itemdesc1",\r
+ // "Itemhouseid1");\r
+ // Media media = manager.createMedia("Default", "Media1", "Mediadesc1",\r
+ // "Mediahouseid1");\r
+ //\r
+ // item.appendMedia(media);\r
+ // MediaFile mf1 = manager.createMediaFile("/xxx",\r
+ // manager.getFileType("Lowres"), manager.getSystemStore(true), media);\r
+ // MediaFile mf2 = manager.createMediaFile("/yyy",\r
+ // manager.getFileType("Lowres"), manager.getSystemStore(true), media);\r
+ //\r
+ // item.add();\r
+\r
+ List<String> dummy = null;\r
+ LuceneMediaFinder luceneSearch = new LuceneMediaFinder();\r
+ // luceneSearch.search(item.getDescription(), dummy, "", true, 1, 10);\r
+ luceneSearch.search("", dummy, "", true, 1, 10);\r
}\r
\r
}\r