// Path: api/src/main/java/org/esbtools/message/admin/EsbMessageAdminService.java
// public interface EsbMessageAdminService {
// 
//     /**
//      * Persists a single ESB Message
//      *
//      * @param esbMessage an ESB Message
//      * @throws IOException
//      */
//     void persist(EsbMessage esbMessage) throws IOException;
// 
//     /**
//      * Persists multiple ESB MessagesA
//      *
//      * @param esbMessages array of ESB Messages
//      * @throws IOException
//      */
//     void persist(EsbMessage[] esbMessages) throws IOException;
// 
//     /**
//      * Updates a given ESB Message ( Payload only )
//      *
//      * @param messageId - a message Id
//      * @param messageBody - the message body
//      * @throws IOException
//      */
//     MetadataResponse resubmit(Long messageId, String messageBody);
// 
//     /**
//      * @param criteria          search
//      * @param fromDate          the start timestamp of the range
//      * @param toDate            the end timestamp of the range
//      * @param start             sets the position of the first result to retrieve
//      * @param maxResults        sets the maximum number of results to retrieve
//      * @return SearchResult     results matching the search criteria
//      */
//     SearchResult searchMessagesByCriteria(SearchCriteria criteria, Date fromDate, Date toDate, String sortField, boolean sortAsc, int start, int maxResults);
// 
//     /**
//      * Returns details for a specific message
//      *
//      * @param id                the id of the message to retrieve
//      * @return SearchResult     the resulting message
//      */
//     SearchResult getMessageById(Long id);
// 
//     /**
//      * Suggests search key and value suggestions
//      *
//      * @return all key and value suggestions
//      */
//     Map<String, List<String>> getSearchKeyValueSuggestions();
// 
//     /**
//      * @param type       specific tree type to return, possible values:
//      *                   [Entities,KeyGroups]
//      * @return MetadataResponse the entire keys tree
//      */
//     MetadataResponse getMetadataTree(MetadataType type);
// 
//     /**
//      * @param parentId          the id of the MetadataField to add a child to
//      * @param name              the name of the child
//      * @param type              the type of the child
//      * @param value             the value of the child
//      * @return MetadataResponse the entire MetadataField tree and the parent field
//      */
//     MetadataResponse addChildMetadataField(Long parentId, String name, MetadataType type, String value);
// 
//     /**
//      * @param id                the id of the MetadataField to update
//      * @param name              the name of the field
//      * @param type              the type of the field
//      * @param value             the value of the field
//      * @return MetadataResponse the entire MetadataField tree and the parent field
//      */
//     MetadataResponse updateMetadataField(Long id, String name, MetadataType type, String value);
// 
//     /**
//      * @param id                the id of the MetadataField to delete
//      * @return MetadataResponse the entire MetadataField tree and the parent field
//      */
//     MetadataResponse deleteMetadataField(Long id);
// 
//     /**
//      * @param entity            the entity to sync
//      * @param system            the system to sync from
//      * @param key               the key name using which to sync
//      * @param values            the values of the key
//      */
//     MetadataResponse sync(String entity, String system, String key, String... values);
// 
//     /**
//      * Fetches configurations used for searching messages from the configuration store
//      *
//      * @return MessageSearchConfigurations an object containing all pertinent configurations
//      */
//     MessageSearchConfigurations getSearchConfigurations();
// }
// 
// Path: api/src/main/java/org/esbtools/message/admin/model/MessageSearchConfigurations.java
// public class MessageSearchConfigurations {
//     private List<MessageSearchConfiguration> searchSystems;
//     private List<MessageSearchConfiguration> searchEntities;
//     private List<MessageSearchConfiguration> searchFilters;
//     private String searchSystemKey;
//     private String searchEntityKey;
// 
//     public List<MessageSearchConfiguration> getSearchSystems() {
//         return searchSystems;
//     }
// 
//     public void setSearchSystems(List<MessageSearchConfiguration> searchSystems) {
//         this.searchSystems = searchSystems;
//     }
// 
//     public List<MessageSearchConfiguration> getSearchEntities() {
//         return searchEntities;
//     }
// 
//     public void setSearchEntities(List<MessageSearchConfiguration> searchEntities) {
//         this.searchEntities = searchEntities;
//     }
// 
//     public List<MessageSearchConfiguration> getSearchFilters() {
//         return searchFilters;
//     }
// 
//     public void setSearchFilters(List<MessageSearchConfiguration> searchFilters) {
//         this.searchFilters = searchFilters;
//     }
// 
//     public String getSearchSystemKey() {
//         return searchSystemKey;
//     }
// 
//     public void setSearchSystemKey(String searchSystemKey) {
//         this.searchSystemKey = searchSystemKey;
//     }
// 
//     public String getSearchEntityKey() {
//         return searchEntityKey;
//     }
// 
//     public void setSearchEntityKey(String searchEntityKey) {
//         this.searchEntityKey = searchEntityKey;
//     }
// }


import org.esbtools.message.admin.EsbMessageAdminService;
import org.esbtools.message.admin.model.MessageSearchConfigurations;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ejb.Stateless;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
package org.esbtools.message.admin.rest;



@Path("/config")
@Stateless
public class ConfigResourceBean {

    @Inject
// Path: api/src/main/java/org/esbtools/message/admin/EsbMessageAdminService.java
// public interface EsbMessageAdminService {
// 
//     /**
//      * Persists a single ESB Message
//      *
//      * @param esbMessage an ESB Message
//      * @throws IOException
//      */
//     void persist(EsbMessage esbMessage) throws IOException;
// 
//     /**
//      * Persists multiple ESB MessagesA
//      *
//      * @param esbMessages array of ESB Messages
//      * @throws IOException
//      */
//     void persist(EsbMessage[] esbMessages) throws IOException;
// 
//     /**
//      * Updates a given ESB Message ( Payload only )
//      *
//      * @param messageId - a message Id
//      * @param messageBody - the message body
//      * @throws IOException
//      */
//     MetadataResponse resubmit(Long messageId, String messageBody);
// 
//     /**
//      * @param criteria          search
//      * @param fromDate          the start timestamp of the range
//      * @param toDate            the end timestamp of the range
//      * @param start             sets the position of the first result to retrieve
//      * @param maxResults        sets the maximum number of results to retrieve
//      * @return SearchResult     results matching the search criteria
//      */
//     SearchResult searchMessagesByCriteria(SearchCriteria criteria, Date fromDate, Date toDate, String sortField, boolean sortAsc, int start, int maxResults);
// 
//     /**
//      * Returns details for a specific message
//      *
//      * @param id                the id of the message to retrieve
//      * @return SearchResult     the resulting message
//      */
//     SearchResult getMessageById(Long id);
// 
//     /**
//      * Suggests search key and value suggestions
//      *
//      * @return all key and value suggestions
//      */
//     Map<String, List<String>> getSearchKeyValueSuggestions();
// 
//     /**
//      * @param type       specific tree type to return, possible values:
//      *                   [Entities,KeyGroups]
//      * @return MetadataResponse the entire keys tree
//      */
//     MetadataResponse getMetadataTree(MetadataType type);
// 
//     /**
//      * @param parentId          the id of the MetadataField to add a child to
//      * @param name              the name of the child
//      * @param type              the type of the child
//      * @param value             the value of the child
//      * @return MetadataResponse the entire MetadataField tree and the parent field
//      */
//     MetadataResponse addChildMetadataField(Long parentId, String name, MetadataType type, String value);
// 
//     /**
//      * @param id                the id of the MetadataField to update
//      * @param name              the name of the field
//      * @param type              the type of the field
//      * @param value             the value of the field
//      * @return MetadataResponse the entire MetadataField tree and the parent field
//      */
//     MetadataResponse updateMetadataField(Long id, String name, MetadataType type, String value);
// 
//     /**
//      * @param id                the id of the MetadataField to delete
//      * @return MetadataResponse the entire MetadataField tree and the parent field
//      */
//     MetadataResponse deleteMetadataField(Long id);
// 
//     /**
//      * @param entity            the entity to sync
//      * @param system            the system to sync from
//      * @param key               the key name using which to sync
//      * @param values            the values of the key
//      */
//     MetadataResponse sync(String entity, String system, String key, String... values);
// 
//     /**
//      * Fetches configurations used for searching messages from the configuration store
//      *
//      * @return MessageSearchConfigurations an object containing all pertinent configurations
//      */
//     MessageSearchConfigurations getSearchConfigurations();
// }
// 
// Path: api/src/main/java/org/esbtools/message/admin/model/MessageSearchConfigurations.java
// public class MessageSearchConfigurations {
//     private List<MessageSearchConfiguration> searchSystems;
//     private List<MessageSearchConfiguration> searchEntities;
//     private List<MessageSearchConfiguration> searchFilters;
//     private String searchSystemKey;
//     private String searchEntityKey;
// 
//     public List<MessageSearchConfiguration> getSearchSystems() {
//         return searchSystems;
//     }
// 
//     public void setSearchSystems(List<MessageSearchConfiguration> searchSystems) {
//         this.searchSystems = searchSystems;
//     }
// 
//     public List<MessageSearchConfiguration> getSearchEntities() {
//         return searchEntities;
//     }
// 
//     public void setSearchEntities(List<MessageSearchConfiguration> searchEntities) {
//         this.searchEntities = searchEntities;
//     }
// 
//     public List<MessageSearchConfiguration> getSearchFilters() {
//         return searchFilters;
//     }
// 
//     public void setSearchFilters(List<MessageSearchConfiguration> searchFilters) {
//         this.searchFilters = searchFilters;
//     }
// 
//     public String getSearchSystemKey() {
//         return searchSystemKey;
//     }
// 
//     public void setSearchSystemKey(String searchSystemKey) {
//         this.searchSystemKey = searchSystemKey;
//     }
// 
//     public String getSearchEntityKey() {
//         return searchEntityKey;
//     }
// 
//     public void setSearchEntityKey(String searchEntityKey) {
//         this.searchEntityKey = searchEntityKey;
//     }
// }


// Path: app/src/main/java/org/esbtools/message/admin/rest/ConfigResourceBean.java
import org.esbtools.message.admin.EsbMessageAdminService;
import org.esbtools.message.admin.model.MessageSearchConfigurations;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ejb.Stateless;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

package org.esbtools.message.admin.rest;



@Path("/config")
@Stateless
public class ConfigResourceBean {

    @Inject
    private Instance<EsbMessageAdminService> client;