001package de.deepamehta.workspaces.migrations;
002
003import de.deepamehta.workspaces.WorkspacesService;
004
005import de.deepamehta.core.service.Inject;
006import de.deepamehta.core.service.Migration;
007
008
009
010/**
011 * Creates the "DeepaMehta" workspace.
012 * Runs only in CLEAN_INSTALL mode.
013 * <p>
014 * Note: when UPDATEing to 4.5 the "DeepaMehta" workspace already exists.
015 * It was created via postInstall() hook (which is obsolete in 4.5)
016 * <p>
017 * Part of DM 4.5
018 */
019public class Migration4 extends Migration {
020
021    // ---------------------------------------------------------------------------------------------- Instance Variables
022
023    @Inject
024    private WorkspacesService wsService;
025
026    // -------------------------------------------------------------------------------------------------- Public Methods
027
028    @Override
029    public void run() {
030        wsService.createWorkspace(
031            WorkspacesService.DEEPAMEHTA_WORKSPACE_NAME,
032            WorkspacesService.DEEPAMEHTA_WORKSPACE_URI,
033            WorkspacesService.DEEPAMEHTA_WORKSPACE_SHARING_MODE
034        );
035        // Note 1: the workspace has no owner yet as the Access Control plugin is not yet activated (as it depends
036        // on the Workspaces plugin). We set the owner in the Access Control migration #7.
037        // Note 2: we can't postpone the creation of the "DeepaMehta" workspace to a Access Control migration as it
038        // must be already available at Workspaces plugin activation time (as needed for the type introduction).
039    }
040}