http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/DataManagerServiceException.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/DataManagerServiceException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/DataManagerServiceException.java new file mode 100644 index 0000000..5d6a116 --- /dev/null +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/DataManagerServiceException.java @@ -0,0 +1,406 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Autogenerated by Thrift Compiler (0.9.3) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.airavata.model.error; + +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.async.AsyncMethodCallback; +import org.apache.thrift.server.AbstractNonblockingServer.*; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import javax.annotation.Generated; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12") +public class DataManagerServiceException extends TException implements org.apache.thrift.TBase<DataManagerServiceException, DataManagerServiceException._Fields>, java.io.Serializable, Cloneable, Comparable<DataManagerServiceException> { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataManagerServiceException"); + + private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new DataManagerServiceExceptionStandardSchemeFactory()); + schemes.put(TupleScheme.class, new DataManagerServiceExceptionTupleSchemeFactory()); + } + + private String message; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + MESSAGE((short)1, "message"); + + private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // MESSAGE + return MESSAGE; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataManagerServiceException.class, metaDataMap); + } + + public DataManagerServiceException() { + } + + public DataManagerServiceException( + String message) + { + this(); + this.message = message; + } + + /** + * Performs a deep copy on <i>other</i>. + */ + public DataManagerServiceException(DataManagerServiceException other) { + if (other.isSetMessage()) { + this.message = other.message; + } + } + + public DataManagerServiceException deepCopy() { + return new DataManagerServiceException(this); + } + + @Override + public void clear() { + this.message = null; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } + + public void unsetMessage() { + this.message = null; + } + + /** Returns true if field message is set (has been assigned a value) and false otherwise */ + public boolean isSetMessage() { + return this.message != null; + } + + public void setMessageIsSet(boolean value) { + if (!value) { + this.message = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case MESSAGE: + if (value == null) { + unsetMessage(); + } else { + setMessage((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case MESSAGE: + return getMessage(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case MESSAGE: + return isSetMessage(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof DataManagerServiceException) + return this.equals((DataManagerServiceException)that); + return false; + } + + public boolean equals(DataManagerServiceException that) { + if (that == null) + return false; + + boolean this_present_message = true && this.isSetMessage(); + boolean that_present_message = true && that.isSetMessage(); + if (this_present_message || that_present_message) { + if (!(this_present_message && that_present_message)) + return false; + if (!this.message.equals(that.message)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List<Object> list = new ArrayList<Object>(); + + boolean present_message = true && (isSetMessage()); + list.add(present_message); + if (present_message) + list.add(message); + + return list.hashCode(); + } + + @Override + public int compareTo(DataManagerServiceException other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetMessage()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("DataManagerServiceException("); + boolean first = true; + + sb.append("message:"); + if (this.message == null) { + sb.append("null"); + } else { + sb.append(this.message); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (!isSetMessage()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' is unset! Struct:" + toString()); + } + + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class DataManagerServiceExceptionStandardSchemeFactory implements SchemeFactory { + public DataManagerServiceExceptionStandardScheme getScheme() { + return new DataManagerServiceExceptionStandardScheme(); + } + } + + private static class DataManagerServiceExceptionStandardScheme extends StandardScheme<DataManagerServiceException> { + + public void read(org.apache.thrift.protocol.TProtocol iprot, DataManagerServiceException struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // MESSAGE + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.message = iprot.readString(); + struct.setMessageIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, DataManagerServiceException struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.message != null) { + oprot.writeFieldBegin(MESSAGE_FIELD_DESC); + oprot.writeString(struct.message); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class DataManagerServiceExceptionTupleSchemeFactory implements SchemeFactory { + public DataManagerServiceExceptionTupleScheme getScheme() { + return new DataManagerServiceExceptionTupleScheme(); + } + } + + private static class DataManagerServiceExceptionTupleScheme extends TupleScheme<DataManagerServiceException> { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, DataManagerServiceException struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeString(struct.message); + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, DataManagerServiceException struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.message = iprot.readString(); + struct.setMessageIsSet(true); + } + } + +} +
http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerFactory.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerFactory.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerFactory.java new file mode 100644 index 0000000..cd92146 --- /dev/null +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerFactory.java @@ -0,0 +1,34 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ +package org.apache.airavata.data.manager.core; + +import org.apache.airavata.data.manager.cpi.DataManager; +import org.apache.airavata.data.manager.cpi.DataManagerException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DataManagerFactory { + private final static Logger logger = LoggerFactory.getLogger(DataManagerFactory.class); + + public static DataManager getDataManager() throws DataManagerException { + return new DataManagerImpl(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerImpl.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerImpl.java new file mode 100644 index 0000000..f675890 --- /dev/null +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/DataManagerImpl.java @@ -0,0 +1,77 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ +package org.apache.airavata.data.manager.core; + +import org.apache.airavata.data.manager.cpi.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +public class DataManagerImpl implements DataManager { + private final static Logger logger = LoggerFactory.getLogger(DataManagerImpl.class); + + /** + * Return file transfer service instance + * + * @return + */ + @Override + public FileTransferService getFileTransferService() throws DataManagerException { + try{ + return new FileTransferServiceImpl(); + }catch (Exception e){ + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * Return replica catalog service instance + * + * @return + */ + @Override + public ReplicaCatalogService getReplicaCatalogService() throws DataManagerException { + try{ + return new ReplicaCatalogServiceImpl(); + }catch (Exception e){ + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * Return metadata catalog service + * + * @return + */ + @Override + + + public MetadataCatalogService getMetadataCatalogService() throws DataManagerException { + try{ + return new MetadataCatalogServiceImpl(); + }catch (Exception e){ + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java deleted file mode 100644 index af908a3..0000000 --- a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ -package org.apache.airavata.data.manager.core; - -import org.apache.airavata.data.manager.cpi.DataManager; -import org.apache.airavata.data.manager.cpi.DataManagerException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class FileManagerFactory { - private final static Logger logger = LoggerFactory.getLogger(FileManagerFactory.class); - - public static DataManager getFileManager() throws DataManagerException { - return new FileManagerImpl(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java deleted file mode 100644 index 2570fc5..0000000 --- a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ -package org.apache.airavata.data.manager.core; - -import org.apache.airavata.data.manager.cpi.DataManager; -import org.apache.airavata.data.manager.cpi.DataManagerException; -import org.apache.airavata.data.manager.cpi.FileTransferService; -import org.apache.airavata.data.manager.cpi.ReplicaCatalogService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -public class FileManagerImpl implements DataManager { - private final static Logger logger = LoggerFactory.getLogger(FileManagerImpl.class); - - /** - * Return file transfer service instance - * - * @return - */ - @Override - public FileTransferService getFileTransferService() throws DataManagerException { - try{ - return new FileTransferServiceImpl(); - }catch (Exception e){ - logger.error(e.getMessage(), e); - throw new DataManagerException(e); - } - } - - /** - * Return replica catalog service instance - * - * @return - */ - @Override - public ReplicaCatalogService getReplicaCatalogService() throws DataManagerException { - try{ - return new ReplicaCatalogServiceImpl(); - }catch (Exception e){ - logger.error(e.getMessage(), e); - throw new DataManagerException(e); - } - } - - /** - * Return metadata catalog service - * - * @return - */ - @Override - public MetadataCatalogService getMetadataCatalogService() throws DataManagerException { - try{ - return new MetadataCatalogServiceImpl(); - }catch (Exception e){ - logger.error(e.getMessage(), e); - throw new DataManagerException(e); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java deleted file mode 100644 index 15172a3..0000000 --- a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ -package org.apache.airavata.data.manager.core; - -import org.apache.airavata.data.manager.cpi.DataManagerException; -import org.apache.airavata.model.data.metadata.MetadataModel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class MetadataCatalogService implements org.apache.airavata.data.manager.cpi.MetadataCatalogService { - private final static Logger logger = LoggerFactory.getLogger(MetadataCatalogService.class); - - /** - * Create new metadata model - * - * @param metadataModel - * @return - * @throws DataManagerException - */ - @Override - public String createMetadata(MetadataModel metadataModel) throws DataManagerException { - return null; - } - - /** - * Update existing metadata model - * - * @param metadataModel - * @throws DataManagerException - */ - @Override - public void updateMetadata(MetadataModel metadataModel) throws DataManagerException { - - } - - /** - * Delete existing metadata model - * - * @param metadataId - * @throws DataManagerException - */ - @Override - public void deleteMetadata(String metadataId) throws DataManagerException { - - } - - /** - * Retrieve metadata model - * - * @param metadataId - * @return - * @throws DataManagerException - */ - @Override - public MetadataModel getMetadata(String metadataId) throws DataManagerException { - return null; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java index 9f29c92..a297744 100644 --- a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java @@ -22,13 +22,15 @@ package org.apache.airavata.data.manager.core; import org.apache.airavata.data.manager.core.db.dao.MetadataDao; import org.apache.airavata.data.manager.cpi.DataManagerException; +import org.apache.airavata.data.manager.cpi.MetadataCatalogService; import org.apache.airavata.model.data.metadata.MetadataModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.util.List; -public class MetadataCatalogServiceImpl extends MetadataCatalogService { +public class MetadataCatalogServiceImpl implements MetadataCatalogService { private final static Logger logger = LoggerFactory.getLogger(MetadataCatalogServiceImpl.class); private MetadataDao metadataDao; @@ -102,4 +104,34 @@ public class MetadataCatalogServiceImpl extends MetadataCatalogService { throw new DataManagerException(e); } } + + /** + * Search Metadata + * + * @param username + * @param gatewayId + * @param searchText + * @return + * @throws DataManagerException + */ + @Override + public List<MetadataModel> searchMetadata(String username, String gatewayId, String searchText) throws DataManagerException { + try{ + return metadataDao.searchMetaDataModels(username, gatewayId, searchText); + }catch (Exception e){ + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + +// public static void main(String[] args) throws IOException, DataManagerServiceException { +// MetadataModel metadataModel = new MetadataModel(); +// metadataModel.setUsername("scnakandala"); +// metadataModel.setUserFriendlyName("Stress Free, 100km Tlayer"); +// metadataModel.setSize(103.67 * 1024); +// metadataModel.setUserFriendlyDescription("Dynamo similar to C2-2, with a stress-free boundaries and a 100km thick" + +// " thermal layer codBC.txt.in 2 0 0 0.129 0.0"); +// MetadataCatalogServiceImpl metadataCatalogService = new MetadataCatalogServiceImpl(); +// System.out.println(metadataCatalogService.searchMetadata("scnakandala", "default", "").size()); +// } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java index 0841f45..0201cf6 100644 --- a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java @@ -65,7 +65,8 @@ public abstract class AbstractThriftDeserializer<E extends TFieldIdEnum, T exten * number types, which in turn will make Thrift think the field * has been set. Also we ignore the MongoDB specific _id field */ - if(currentField.getValue().getNodeType() != JsonNodeType.NULL) { + if(!currentField.getKey().equalsIgnoreCase("_id") + && currentField.getValue().getNodeType() != JsonNodeType.NULL) { final E field = getField(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_UNDERSCORE, currentField.getKey())); final JsonParser parser = currentField.getValue().traverse(); parser.setCodec(mapper); http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java index c9c4951..52c2732 100644 --- a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java @@ -31,6 +31,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; public class MetadataDao { @@ -58,6 +60,8 @@ public class MetadataDao { public String createMetadata(MetadataModel metadataModel) throws JsonProcessingException { metadataModel.setMetadataId(DataManagerConstants.AIRAVATA_METADATA_ID_PREFIX + UUID.randomUUID().toString()); + metadataModel.setCreationTime(System.currentTimeMillis()); + metadataModel.setLastModifiedTime(metadataModel.getCreationTime()); WriteResult result = collection.insert((DBObject) JSON.parse( modelConversionHelper.serializeObject(metadataModel))); logger.debug("No of inserted results " + result.getN()); @@ -67,6 +71,7 @@ public class MetadataDao { public void updateMetadata(MetadataModel metadataModel) throws JsonProcessingException { DBObject query = BasicDBObjectBuilder.start().add( METADATA_ID, metadataModel.getMetadataId()).get(); + metadataModel.setLastModifiedTime(System.currentTimeMillis()); WriteResult result = collection.update(query, (DBObject) JSON.parse( modelConversionHelper.serializeObject(metadataModel))); logger.debug("No of updated results " + result.getN()); @@ -90,4 +95,15 @@ public class MetadataDao { } return null; } + + public List<MetadataModel> searchMetaDataModels(String username, String gatewayId, String searchText) throws IOException{ + List<MetadataModel> metadataModels = new ArrayList<>(); + DBCursor cursor = collection.find(); + for(DBObject document: cursor){ + metadataModels.add((MetadataModel) modelConversionHelper.deserializeObject( + MetadataModel.class, document.toString())); + } + return metadataModels; + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java index a75e0d4..602e7db 100644 --- a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java +++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java @@ -22,6 +22,8 @@ package org.apache.airavata.data.manager.cpi; import org.apache.airavata.model.data.metadata.MetadataModel; +import java.util.List; + public interface MetadataCatalogService { /** @@ -53,4 +55,15 @@ public interface MetadataCatalogService { * @throws DataManagerException */ MetadataModel getMetadata(String metadataId) throws DataManagerException; + + + /** + * Search Metadata + * @param username + * @param gatewayId + * @param searchText + * @return + * @throws DataManagerException + */ + List<MetadataModel> searchMetadata(String username, String gatewayId, String searchText) throws DataManagerException; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-service/pom.xml ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-service/pom.xml b/modules/data-manager/data-manager-service/pom.xml index ff00d83..d4dae52 100644 --- a/modules/data-manager/data-manager-service/pom.xml +++ b/modules/data-manager/data-manager-service/pom.xml @@ -20,5 +20,15 @@ <artifactId>data-manager-stubs</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>data-manager-cpi</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>data-manager-core</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> </project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/047a448a/modules/data-manager/data-manager-service/src/main/java/org/apache/airavata/data/manager/server/DataManagerServerHandler.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-service/src/main/java/org/apache/airavata/data/manager/server/DataManagerServerHandler.java b/modules/data-manager/data-manager-service/src/main/java/org/apache/airavata/data/manager/server/DataManagerServerHandler.java index 0ac3080..f30465a 100644 --- a/modules/data-manager/data-manager-service/src/main/java/org/apache/airavata/data/manager/server/DataManagerServerHandler.java +++ b/modules/data-manager/data-manager-service/src/main/java/org/apache/airavata/data/manager/server/DataManagerServerHandler.java @@ -20,15 +20,33 @@ */ package org.apache.airavata.data.manager.server; +import org.apache.airavata.data.manager.core.DataManagerFactory; +import org.apache.airavata.data.manager.cpi.DataManager; +import org.apache.airavata.data.manager.cpi.DataManagerException; import org.apache.airavata.data.manager.cpi.DataManagerService; import org.apache.airavata.data.manager.cpi.data_manager_cpiConstants; +import org.apache.airavata.model.data.metadata.MetadataModel; +import org.apache.airavata.model.error.DataManagerServiceException; import org.apache.thrift.TException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; + public class DataManagerServerHandler implements DataManagerService.Iface { private final static Logger logger = LoggerFactory.getLogger(DataManagerServerHandler.class); + private final DataManager dataManager; + + public DataManagerServerHandler() throws DataManagerServiceException { + try { + dataManager = DataManagerFactory.getDataManager(); + } catch (DataManagerException e) { + logger.error(e.getMessage()); + throw new DataManagerServiceException(e.getMessage()); + } + } + /** * Query DM server to fetch the CPI version */ @@ -36,4 +54,23 @@ public class DataManagerServerHandler implements DataManagerService.Iface { public String getDMServiceVersion() throws TException { return data_manager_cpiConstants.DM_CPI_VERSION; } + + /** + * * Query the DM server to fetch matching metadata models + * * + * + * @param username + * @param gatewayId + * @param searchText + */ + @Override + public List<MetadataModel> searchMetadata(String username, String gatewayId, String searchText) throws + DataManagerServiceException, TException { + try { + return dataManager.getMetadataCatalogService().searchMetadata(username, gatewayId, searchText); + } catch (org.apache.airavata.data.manager.cpi.DataManagerException e) { + logger.error(e.getMessage()); + throw new DataManagerServiceException(e.getMessage()); + } + } } \ No newline at end of file
