private static DatasourceAdapter getAdapter(String adapterFactoryClassName) throws AlgebricksException { try { String adapterName = ((IAdapterFactory) (Class.forName(adapterFactoryClassName).newInstance())).getAlias(); return new DatasourceAdapter(new AdapterIdentifier(MetadataConstants.METADATA_DATAVERSE_NAME, adapterName), adapterFactoryClassName, IDataSourceAdapter.AdapterType.INTERNAL); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { throw new MetadataException("Unable to instantiate builtin Adapter", e); } }
public DatasourceAdapter dropAdapterIfExists(DatasourceAdapter adapter) { synchronized (adapters) { Map<String, DatasourceAdapter> adaptersInDataverse = adapters.get(adapter.getAdapterIdentifier().getNamespace()); if (adaptersInDataverse != null) { return adaptersInDataverse.remove(adapter.getAdapterIdentifier().getName()); } return null; } }
aString.setValue(adapter.getAdapterIdentifier().getNamespace()); stringSerde.serialize(aString, tupleBuilder.getDataOutput()); tupleBuilder.addFieldEndOffset(); aString.setValue(adapter.getAdapterIdentifier().getName()); stringSerde.serialize(aString, tupleBuilder.getDataOutput()); tupleBuilder.addFieldEndOffset(); aString.setValue(adapter.getAdapterIdentifier().getNamespace()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_DATAVERSENAME_FIELD_INDEX, fieldValue); aString.setValue(adapter.getAdapterIdentifier().getName()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_NAME_FIELD_INDEX, fieldValue); aString.setValue(adapter.getClassname()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_CLASSNAME_FIELD_INDEX, fieldValue); aString.setValue(adapter.getType().name()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX, fieldValue);
IAdapterFactory adapterFactory; if (adapterEntity != null) { adapterType = adapterEntity.getType(); String adapterFactoryClassname = adapterEntity.getClassname(); switch (adapterType) { case INTERNAL:
adapterType = adapterEntity.getType(); adapterFactoryClassname = adapterEntity.getClassname(); switch (adapterType) { case INTERNAL:
public DatasourceAdapter addAdapterIfNotExists(DatasourceAdapter adapter) { synchronized (adapters) { Map<String, DatasourceAdapter> adaptersInDataverse = adapters.get(adapter.getAdapterIdentifier().getNamespace()); if (adaptersInDataverse == null) { adaptersInDataverse = new HashMap<>(); adapters.put(adapter.getAdapterIdentifier().getNamespace(), adaptersInDataverse); } DatasourceAdapter adapterObject = adaptersInDataverse.get(adapter.getAdapterIdentifier().getName()); if (adapterObject == null) { return adaptersInDataverse.put(adapter.getAdapterIdentifier().getName(), adapter); } return null; } }
public void dropAdapter(String dataverseName, String adapterName) { AdapterIdentifier adapterIdentifier = new AdapterIdentifier(dataverseName, adapterName); DatasourceAdapter adapter = new DatasourceAdapter(adapterIdentifier, null, null); droppedCache.addAdapterIfNotExists(adapter); logAndApply(new MetadataLogicalOperation(adapter, false)); }
@Override public void addAdapter(TxnId txnId, DatasourceAdapter adapter) throws AlgebricksException, RemoteException { try { // Insert into the 'Adapter' dataset. DatasourceAdapterTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getAdapterTupleTranslator(true); ITupleReference adapterTuple = tupleReaderWriter.getTupleFromMetadataEntity(adapter); insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.DATASOURCE_ADAPTER_DATASET, adapterTuple); } catch (HyracksDataException e) { if (e.getComponent().equals(ErrorCode.HYRACKS) && e.getErrorCode() == ErrorCode.DUPLICATE_KEY) { throw new AlgebricksException("A adapter with this name " + adapter.getAdapterIdentifier().getName() + " already exists in dataverse '" + adapter.getAdapterIdentifier().getNamespace() + "'.", e); } else { throw new AlgebricksException(e); } } }
AdapterIdentifier aid = new AdapterIdentifier(dataverse, adapterName); DatasourceAdapter dsa = new DatasourceAdapter(aid, adapterFactoryClass, IDataSourceAdapter.AdapterType.EXTERNAL); MetadataManager.INSTANCE.addAdapter(mdTxnCtx, dsa); if (LOGGER.isInfoEnabled()) {
for (DatasourceAdapter adapter : adapters) { if (adapter.getAdapterIdentifier().getName().startsWith(libraryName + "#")) { MetadataManager.INSTANCE.dropAdapter(mdTxnCtx, dataverse, adapter.getAdapterIdentifier().getName());
private DatasourceAdapter createAdapterFromARecord(ARecord adapterRecord) { String dataverseName = ((AString) adapterRecord .getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_DATAVERSENAME_FIELD_INDEX)) .getStringValue(); String adapterName = ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_NAME_FIELD_INDEX)) .getStringValue(); String classname = ((AString) adapterRecord .getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_CLASSNAME_FIELD_INDEX)).getStringValue(); IDataSourceAdapter.AdapterType adapterType = IDataSourceAdapter.AdapterType.valueOf( ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX)) .getStringValue()); return new DatasourceAdapter(new AdapterIdentifier(dataverseName, adapterName), classname, adapterType); }
dropAdapter(txnId, dataverseName, adapter.getAdapterIdentifier().getName());