Search in sources :

Example 1 with DataStore

use of eu.esdihumboldt.hale.io.geoserver.DataStore in project hale by halestudio.

the class AppSchemaMappingFileWriter method writeArchive.

private void writeArchive(ProgressIndicator progress, IOReporter reporter) throws IOException {
    Workspace ws = generator.getMainWorkspace();
    Namespace mainNs = generator.getMainNamespace();
    DataStore ds = generator.getAppSchemaDataStore();
    // save to archive
    final ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(getTarget().getOutput()));
    // add workspace folder
    ZipEntry workspaceFolder = new ZipEntry(ws.getAttribute(Workspace.NAME) + "/");
    zip.putNextEntry(workspaceFolder);
    // add workspace file
    zip.putNextEntry(new ZipEntry(workspaceFolder.getName() + WORKSPACE_FILE));
    copyAndCloseInputStream(ws.asStream(), zip);
    zip.closeEntry();
    // add namespace file
    zip.putNextEntry(new ZipEntry(workspaceFolder.getName() + NAMESPACE_FILE));
    copyAndCloseInputStream(mainNs.asStream(), zip);
    zip.closeEntry();
    // add datastore folder
    ZipEntry dataStoreFolder = new ZipEntry(workspaceFolder.getName() + ds.getAttribute(DataStore.NAME) + "/");
    zip.putNextEntry(dataStoreFolder);
    // add datastore file
    zip.putNextEntry(new ZipEntry(dataStoreFolder.getName() + DATASTORE_FILE));
    copyAndCloseInputStream(ds.asStream(), zip);
    zip.closeEntry();
    // add target schema to zip
    if (getIncludeSchemaParameter()) {
        addTargetSchemaToZip(zip, dataStoreFolder, progress, reporter);
    }
    // add main mapping file
    Map<String, String> connectionParams = ds.getConnectionParameters();
    zip.putNextEntry(new ZipEntry(dataStoreFolder.getName() + connectionParams.get("mappingFileName")));
    generator.writeMappingConf(zip);
    zip.closeEntry();
    // add included types mapping file, if necessary
    if (generator.getGeneratedMapping().requiresMultipleFiles()) {
        zip.putNextEntry(new ZipEntry(dataStoreFolder.getName() + AppSchemaIO.INCLUDED_TYPES_MAPPING_FILE));
        generator.writeIncludedTypesMappingConf(zip);
        zip.closeEntry();
    }
    // add feature type entries
    List<FeatureType> featureTypes = generator.getFeatureTypes();
    for (FeatureType ft : featureTypes) {
        Layer layer = generator.getLayer(ft);
        // add feature type folder
        ZipEntry featureTypeFolder = new ZipEntry(dataStoreFolder.getName() + ft.getAttribute(FeatureType.NAME) + "/");
        zip.putNextEntry(featureTypeFolder);
        // add feature type file
        zip.putNextEntry(new ZipEntry(featureTypeFolder.getName() + FEATURETYPE_FILE));
        copyAndCloseInputStream(ft.asStream(), zip);
        zip.closeEntry();
        // add layer file
        zip.putNextEntry(new ZipEntry(featureTypeFolder.getName() + LAYER_FILE));
        copyAndCloseInputStream(layer.asStream(), zip);
        zip.closeEntry();
    }
    // add secondary namespaces
    List<Namespace> secondaryNamespaces = generator.getSecondaryNamespaces();
    for (Namespace secNs : secondaryNamespaces) {
        Workspace secWs = generator.getWorkspace(secNs);
        // add workspace folder
        ZipEntry secondaryWorkspaceFolder = new ZipEntry(secWs.name() + "/");
        zip.putNextEntry(secondaryWorkspaceFolder);
        // add workspace file
        zip.putNextEntry(new ZipEntry(secondaryWorkspaceFolder.getName() + WORKSPACE_FILE));
        copyAndCloseInputStream(secWs.asStream(), zip);
        zip.closeEntry();
        // add namespace file
        zip.putNextEntry(new ZipEntry(secondaryWorkspaceFolder.getName() + NAMESPACE_FILE));
        copyAndCloseInputStream(secNs.asStream(), zip);
        zip.closeEntry();
    }
    zip.close();
}
Also used : FeatureType(eu.esdihumboldt.hale.io.geoserver.FeatureType) ZipOutputStream(java.util.zip.ZipOutputStream) DataStore(eu.esdihumboldt.hale.io.geoserver.DataStore) ZipEntry(java.util.zip.ZipEntry) BufferedOutputStream(java.io.BufferedOutputStream) Layer(eu.esdihumboldt.hale.io.geoserver.Layer) Namespace(eu.esdihumboldt.hale.io.geoserver.Namespace) Workspace(eu.esdihumboldt.hale.io.geoserver.Workspace)

Example 2 with DataStore

use of eu.esdihumboldt.hale.io.geoserver.DataStore in project hale by halestudio.

the class AppSchemaMappingUploader method publishAppSchemaDataStore.

private void publishAppSchemaDataStore(ProgressIndicator progress, IOReporter reporter) throws IOException {
    Workspace ws = generator.getMainWorkspace();
    // build datastore resource
    DataStore dataStore = generator.getAppSchemaDataStore();
    DataStoreManager dsMgr = new DataStoreManager(geoserverURL);
    dsMgr.setCredentials(username, password);
    dsMgr.setResource(dataStore);
    dsMgr.setWorkspace(ws.name());
    // remove datastore, if necessary
    if (dsMgr.exists()) {
        Map<String, String> deleteParams = new HashMap<String, String>();
        deleteParams.put("recurse", "true");
        dsMgr.delete(deleteParams);
    }
    // build mapping file resource
    ContentType contentType = getMimeType();
    byte[] content = writeContent(dataStore.name(), contentType, progress, reporter);
    DataStoreFile mappingFile = ResourceBuilder.dataStoreFile(new ByteArrayInputStream(content), contentType).setAttribute(DataStoreFile.EXTENSION, "appschema").setAttribute(DataStoreFile.DATASTORE, dataStore.name()).setAttribute(DataStoreFile.WORKSPACE, ws.name()).build();
    DataStoreFileManager dsFileMgr = new DataStoreFileManager(geoserverURL);
    dsFileMgr.setCredentials(username, password);
    dsFileMgr.setResource(mappingFile);
    Map<String, String> updateParams = new HashMap<String, String>();
    updateParams.put("configure", "all");
    dsFileMgr.update(updateParams);
}
Also used : ContentType(org.apache.http.entity.ContentType) DataStoreFile(eu.esdihumboldt.hale.io.geoserver.DataStoreFile) HashMap(java.util.HashMap) ByteArrayInputStream(java.io.ByteArrayInputStream) DataStore(eu.esdihumboldt.hale.io.geoserver.DataStore) DataStoreFileManager(eu.esdihumboldt.hale.io.geoserver.rest.DataStoreFileManager) DataStoreManager(eu.esdihumboldt.hale.io.geoserver.rest.DataStoreManager) Workspace(eu.esdihumboldt.hale.io.geoserver.Workspace)

Aggregations

DataStore (eu.esdihumboldt.hale.io.geoserver.DataStore)2 Workspace (eu.esdihumboldt.hale.io.geoserver.Workspace)2 DataStoreFile (eu.esdihumboldt.hale.io.geoserver.DataStoreFile)1 FeatureType (eu.esdihumboldt.hale.io.geoserver.FeatureType)1 Layer (eu.esdihumboldt.hale.io.geoserver.Layer)1 Namespace (eu.esdihumboldt.hale.io.geoserver.Namespace)1 DataStoreFileManager (eu.esdihumboldt.hale.io.geoserver.rest.DataStoreFileManager)1 DataStoreManager (eu.esdihumboldt.hale.io.geoserver.rest.DataStoreManager)1 BufferedOutputStream (java.io.BufferedOutputStream)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 HashMap (java.util.HashMap)1 ZipEntry (java.util.zip.ZipEntry)1 ZipOutputStream (java.util.zip.ZipOutputStream)1 ContentType (org.apache.http.entity.ContentType)1