Search in sources :

Example 41 with RepositoryMeta

use of org.pentaho.di.repository.RepositoryMeta in project pentaho-kettle by pentaho.

the class RepositoriesHelper method editRepository.

public void editRepository() {
    try {
        PluginInterface plugin = null;
        RepositoryMeta ri = input.searchRepository(model.getSelectedRepository().getName());
        if (ri != null) {
            plugin = PluginRegistry.getInstance().getPlugin(RepositoryPluginType.class, ri.getId());
            if (plugin == null) {
                throw new KettleException(BaseMessages.getString(PKG, "RepositoryLogin.ErrorFindingPlugin", ri.getId()));
            }
        }
        RepositoryDialogInterface dd = getRepositoryDialog(plugin, ri, input, this.shell);
        if (dd.open(MODE.EDIT) != null) {
            fillRepositories();
            int idx = input.indexOfRepository(ri);
            model.setSelectedRepository(input.getRepository(idx));
            writeData();
        }
    } catch (Exception e) {
        log.logDetailed(BaseMessages.getString(PKG, "RepositoryLogin.ErrorEditingRepository", e.getLocalizedMessage()));
        new ErrorDialog(shell, BaseMessages.getString(PKG, "Dialog.Error"), BaseMessages.getString(PKG, "RepositoryLogin.ErrorEditingRepository", e.getLocalizedMessage()), e);
    }
}
Also used : RepositoryMeta(org.pentaho.di.repository.RepositoryMeta) KettleException(org.pentaho.di.core.exception.KettleException) RepositoryPluginType(org.pentaho.di.core.plugins.RepositoryPluginType) PluginInterface(org.pentaho.di.core.plugins.PluginInterface) ErrorDialog(org.pentaho.di.ui.core.dialog.ErrorDialog) RepositoryDialogInterface(org.pentaho.di.ui.repository.dialog.RepositoryDialogInterface) KettleException(org.pentaho.di.core.exception.KettleException) KettleSecurityException(org.pentaho.di.core.exception.KettleSecurityException)

Example 42 with RepositoryMeta

use of org.pentaho.di.repository.RepositoryMeta in project pentaho-platform by pentaho.

the class MetaStoreExportUtil method connectToRepository.

public static Repository connectToRepository(String repositoryName) throws KettleException {
    RepositoriesMeta repositoriesMeta = new RepositoriesMeta();
    boolean singleDiServerInstance = // $NON-NLS-1$ //$NON-NLS-2$
    "true".equals(PentahoSystem.getSystemSetting(SINGLE_DI_SERVER_INSTANCE, "true"));
    try {
        if (singleDiServerInstance) {
            // only load a default enterprise repository. If this option is set, then you cannot load
            // transformations or jobs from anywhere but the local server.
            String repositoriesXml = // $NON-NLS-1$
            "<?xml version=\"1.0\" encoding=\"UTF-8\"?><repositories>" + // $NON-NLS-1$
            "<repository><id>PentahoEnterpriseRepository</id>" + "<name>" + SINGLE_DI_SERVER_INSTANCE + // $NON-NLS-1$ //$NON-NLS-2$
            "</name>" + "<description>" + SINGLE_DI_SERVER_INSTANCE + // $NON-NLS-1$ //$NON-NLS-2$
            "</description>" + "<repository_location_url>" + PentahoSystem.getApplicationContext().getFullyQualifiedServerURL() + // $NON-NLS-1$ //$NON-NLS-2$
            "</repository_location_url>" + // $NON-NLS-1$
            "<version_comment_mandatory>N</version_comment_mandatory>" + // $NON-NLS-1$
            "</repository>" + // $NON-NLS-1$
            "</repositories>";
            ByteArrayInputStream sbis = new ByteArrayInputStream(repositoriesXml.getBytes("UTF8"));
            repositoriesMeta.readDataFromInputStream(sbis);
        } else {
            // TODO: add support for specified repositories.xml files...
            // Read from the default $HOME/.kettle/repositories.xml file.
            repositoriesMeta.readData();
        }
    } catch (Exception e) {
        // $NON-NLS-1$
        throw new KettleException("Meta repository not populated", e);
    }
    // Find the specified repository.
    RepositoryMeta repositoryMeta = null;
    try {
        if (singleDiServerInstance) {
            repositoryMeta = repositoriesMeta.findRepository(SINGLE_DI_SERVER_INSTANCE);
        } else {
            repositoryMeta = repositoriesMeta.findRepository(repositoryName);
        }
    } catch (Exception e) {
        // $NON-NLS-1$
        throw new KettleException("Repository not found", e);
    }
    if (repositoryMeta == null) {
        // $NON-NLS-1$
        throw new KettleException("RepositoryMeta is null");
    }
    Repository repository = null;
    try {
        repository = PluginRegistry.getInstance().loadClass(RepositoryPluginType.class, repositoryMeta.getId(), Repository.class);
        repository.init(repositoryMeta);
    } catch (Exception e) {
        // $NON-NLS-1$
        throw new KettleException("Could not get repository instance", e);
    }
    // Two scenarios here: internal to server or external to server. If internal, you are already authenticated. If
    // external, you must provide a username and additionally specify that the IP address of the machine running this
    // code is trusted.
    repository.connect(PentahoSessionHolder.getSession().getName(), "password");
    return repository;
}
Also used : RepositoryMeta(org.pentaho.di.repository.RepositoryMeta) KettleException(org.pentaho.di.core.exception.KettleException) Repository(org.pentaho.di.repository.Repository) ByteArrayInputStream(java.io.ByteArrayInputStream) RepositoryPluginType(org.pentaho.di.core.plugins.RepositoryPluginType) RepositoriesMeta(org.pentaho.di.repository.RepositoriesMeta) KettleException(org.pentaho.di.core.exception.KettleException)

Example 43 with RepositoryMeta

use of org.pentaho.di.repository.RepositoryMeta in project pentaho-platform by pentaho.

the class RepositorySyncWebService method getRepositoryMeta.

private static RepositoryMeta getRepositoryMeta(String repositoryId, String repositoryUrl) throws KettleException {
    RepositoryMeta repMeta = PluginRegistry.getInstance().loadClass(RepositoryPluginType.class, "PentahoEnterpriseRepository", // $NON-NLS-1$
    RepositoryMeta.class);
    // this repository is not available
    if (repMeta == null) {
        return null;
    }
    String xml = // $NON-NLS-1$
    "<repo>" + // $NON-NLS-1$
    "<id>PentahoEnterpriseRepository</id>" + "<name>" + repositoryId + // $NON-NLS-1$ //$NON-NLS-2$
    "</name>" + "<description>" + repositoryId + // $NON-NLS-1$ //$NON-NLS-2$
    "</description>" + "<repository_location_url>" + repositoryUrl + // $NON-NLS-1$ //$NON-NLS-2$
    "</repository_location_url> </repo>";
    Element node;
    try {
        node = XMLParserFactoryProducer.createSecureDocBuilderFactory().newDocumentBuilder().parse(new StringBufferInputStream(xml)).getDocumentElement();
    } catch (Exception e) {
        node = null;
    }
    repMeta.loadXML(node, null);
    return repMeta;
}
Also used : RepositoryMeta(org.pentaho.di.repository.RepositoryMeta) StringBufferInputStream(java.io.StringBufferInputStream) Element(org.w3c.dom.Element) KettleException(org.pentaho.di.core.exception.KettleException)

Example 44 with RepositoryMeta

use of org.pentaho.di.repository.RepositoryMeta in project pentaho-platform by pentaho.

the class KettleComponent method connectToRepository.

private Repository connectToRepository() {
    boolean useRepository = // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
    PentahoSystem.getSystemSetting("kettle/settings.xml", "repository.type", "files").equals("rdbms");
    if (!useRepository) {
        return null;
    }
    try {
        if (ComponentBase.debug) {
            // $NON-NLS-1$
            debug(Messages.getInstance().getString("Kettle.DEBUG_META_REPOSITORY"));
        }
        RepositoriesMeta repositoriesMeta = null;
        try {
            repositoriesMeta = new RepositoriesMeta();
        } catch (Exception e) {
            // $NON-NLS-1$
            error(Messages.getInstance().getErrorString("Kettle.ERROR_0007_BAD_META_REPOSITORY"), e);
            return null;
        }
        if (ComponentBase.debug) {
            // $NON-NLS-1$
            debug(Messages.getInstance().getString("Kettle.DEBUG_POPULATING_META"));
        }
        try {
            // TODO: add support for specified repositories.xml files...
            // Read from the default
            repositoriesMeta.readData();
        // $HOME/.kettle/repositories.xml
        // file.
        } catch (Exception e) {
            // $NON-NLS-1$
            error(Messages.getInstance().getErrorString("Kettle.ERROR_0018_META_REPOSITORY_NOT_POPULATED"), e);
            return null;
        }
        if (// $NON-NLS-1$
        (repositoriesXMLFile != null) && !"".equals(repositoriesXMLFile)) {
            // $NON-NLS-1$
            error(Messages.getInstance().getErrorString("Kettle.ERROR_0017_XML_REPOSITORY_NOT_SUPPORTED"));
            debug(getKettleLog(true));
            return null;
        }
        if (ComponentBase.debug) {
            // $NON-NLS-1$
            debug(Messages.getInstance().getString("Kettle.DEBUG_FINDING_REPOSITORY"));
        }
        // Find the specified repository.
        RepositoryMeta repositoryMeta = null;
        try {
            repositoryMeta = repositoriesMeta.findRepository(repositoryName);
        } catch (Exception e) {
            // $NON-NLS-1$
            error(Messages.getInstance().getErrorString("Kettle.ERROR_0004_REPOSITORY_NOT_FOUND", repositoryName), e);
            return null;
        }
        if (repositoryMeta == null) {
            // $NON-NLS-1$
            error(Messages.getInstance().getErrorString("Kettle.ERROR_0004_REPOSITORY_NOT_FOUND", repositoryName));
            debug(getKettleLog(true));
            return null;
        }
        if (ComponentBase.debug) {
            // $NON-NLS-1$
            debug(Messages.getInstance().getString("Kettle.DEBUG_GETTING_REPOSITORY"));
        }
        Repository repository = null;
        try {
            repository = PluginRegistry.getInstance().loadClass(RepositoryPluginType.class, repositoryMeta.getId(), Repository.class);
            repository.init(repositoryMeta);
        } catch (Exception e) {
            // $NON-NLS-1$
            error(Messages.getInstance().getErrorString("Kettle.ERROR_0016_COULD_NOT_GET_REPOSITORY_INSTANCE"), e);
            return null;
        }
        // OK, now try the username and password
        if (ComponentBase.debug) {
            // $NON-NLS-1$
            debug(Messages.getInstance().getString("Kettle.DEBUG_CONNECTING"));
        }
        repository.connect(username, password);
        // OK, the repository is open and ready to use.
        if (ComponentBase.debug) {
            // $NON-NLS-1$
            debug(Messages.getInstance().getString("Kettle.DEBUG_FINDING_DIRECTORY"));
        }
        return repository;
    } catch (Exception e) {
        // $NON-NLS-1$
        error(Messages.getInstance().getErrorString("Kettle.ERROR_0008_ERROR_RUNNING", e.toString()), e);
    }
    return null;
}
Also used : RepositoryMeta(org.pentaho.di.repository.RepositoryMeta) Repository(org.pentaho.di.repository.Repository) RepositoryPluginType(org.pentaho.di.core.plugins.RepositoryPluginType) RepositoriesMeta(org.pentaho.di.repository.RepositoriesMeta) KettleException(org.pentaho.di.core.exception.KettleException) UnknownParamException(org.pentaho.di.core.parameters.UnknownParamException) KettleValueException(org.pentaho.di.core.exception.KettleValueException) KettleStepException(org.pentaho.di.core.exception.KettleStepException)

Aggregations

RepositoryMeta (org.pentaho.di.repository.RepositoryMeta)44 KettleException (org.pentaho.di.core.exception.KettleException)27 Repository (org.pentaho.di.repository.Repository)16 RepositoriesMeta (org.pentaho.di.repository.RepositoriesMeta)14 RepositoryPluginType (org.pentaho.di.core.plugins.RepositoryPluginType)10 Test (org.junit.Test)4 KettleSecurityException (org.pentaho.di.core.exception.KettleSecurityException)4 UnknownParamException (org.pentaho.di.core.parameters.UnknownParamException)4 IOException (java.io.IOException)3 ArrayList (java.util.ArrayList)3 Date (java.util.Date)3 Map (java.util.Map)3 PluginInterface (org.pentaho.di.core.plugins.PluginInterface)3 PluginRegistry (org.pentaho.di.core.plugins.PluginRegistry)3 RepositoryDialog (org.pentaho.di.ui.repo.dialog.RepositoryDialog)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 FileNotFoundException (java.io.FileNotFoundException)2 StringBufferInputStream (java.io.StringBufferInputStream)2 HashMap (java.util.HashMap)2 ExecutionException (java.util.concurrent.ExecutionException)2