Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 10571 invoked from network); 18 Aug 2010 13:26:28 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Aug 2010 13:26:28 -0000 Received: (qmail 49353 invoked by uid 500); 18 Aug 2010 13:26:28 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 49288 invoked by uid 500); 18 Aug 2010 13:26:27 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 49281 invoked by uid 99); 18 Aug 2010 13:26:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Aug 2010 13:26:26 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Aug 2010 13:26:25 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2151023889DA; Wed, 18 Aug 2010 13:25:08 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r986663 - in /directory/studio/trunk/plugins/ldapservers.apacheds.v153: ./ resources/icons/ src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/ Date: Wed, 18 Aug 2010 13:25:08 -0000 To: commits@directory.apache.org From: pamarcelot@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100818132508.2151023889DA@eris.apache.org> Author: pamarcelot Date: Wed Aug 18 13:25:07 2010 New Revision: 986663 URL: http://svn.apache.org/viewvc?rev=986663&view=rev Log: Added an action which create a connection in the LDAP Browser perspective from the selected LDAP Server in the Servers view. Added: directory/studio/trunk/plugins/ldapservers.apacheds.v153/resources/icons/ directory/studio/trunk/plugins/ldapservers.apacheds.v153/resources/icons/connection_new.gif (with props) directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/CreateConnectionAction.java Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/plugin.xml directory/studio/trunk/plugins/ldapservers.apacheds.v153/pom.xml directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/ApacheDS153LdapServerAdapter.java directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages.properties directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_de.properties directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_fr.properties Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/plugin.xml URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/plugin.xml?rev=986663&r1=986662&r2=986663&view=diff ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/plugin.xml (original) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/plugin.xml Wed Aug 18 13:25:07 2010 @@ -11,4 +11,25 @@ version="1.5.3"> + + + + + + + + + + + Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/pom.xml URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/pom.xml?rev=986663&r1=986662&r2=986663&view=diff ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/pom.xml (original) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/pom.xml Wed Aug 18 13:25:07 2010 @@ -118,6 +118,7 @@ org.apache.directory.studio.apacheds.configuration, org.apache.directory.studio.common.core, org.apache.directory.studio.common.ui, + org.apache.directory.studio.connection.core, org.apache.directory.studio.ldapservers, org.dom4j.dom4j;bundle-version="${org.dom4j.version}", org.eclipse.core.runtime, @@ -426,6 +427,11 @@ org.apache.directory.studio + connection.core + provided + + + org.apache.directory.studio ldapservers provided Added: directory/studio/trunk/plugins/ldapservers.apacheds.v153/resources/icons/connection_new.gif URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/resources/icons/connection_new.gif?rev=986663&view=auto ============================================================================== Binary file - no diff available. Propchange: directory/studio/trunk/plugins/ldapservers.apacheds.v153/resources/icons/connection_new.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/ApacheDS153LdapServerAdapter.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/ApacheDS153LdapServerAdapter.java?rev=986663&r1=986662&r2=986663&view=diff ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/ApacheDS153LdapServerAdapter.java (original) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/ApacheDS153LdapServerAdapter.java Wed Aug 18 13:25:07 2010 @@ -28,7 +28,6 @@ import java.io.IOException; import java.io.InputStream; import org.apache.directory.studio.apacheds.configuration.editor.ServerConfigurationEditor; -import org.apache.directory.studio.apacheds.configuration.model.ServerConfiguration; import org.apache.directory.studio.apacheds.configuration.model.ServerXmlIOException; import org.apache.directory.studio.apacheds.configuration.model.v153.ServerConfigurationV153; import org.apache.directory.studio.apacheds.configuration.model.v153.ServerXmlIOV153; @@ -209,14 +208,14 @@ public class ApacheDS153LdapServerAdapte * @throws ServerXmlIOException * @throws FileNotFoundException */ - private ServerConfiguration getServerConfiguration( LdapServer server ) throws ServerXmlIOException, + public static ServerConfigurationV153 getServerConfiguration( LdapServer server ) throws ServerXmlIOException, FileNotFoundException { InputStream fis = new FileInputStream( LdapServersManager.getServerFolder( server ).append( "conf" ) .append( "server.xml" ).toFile() ); ServerXmlIOV153 serverXmlIOV153 = new ServerXmlIOV153(); - return serverXmlIOV153.parse( fis ); + return ( ServerConfigurationV153 ) serverXmlIOV153.parse( fis ); } @@ -232,7 +231,7 @@ public class ApacheDS153LdapServerAdapte */ private int getTestingPort( LdapServer server ) throws ServerXmlIOException, IOException { - ServerConfigurationV153 configuration = ( ServerConfigurationV153 ) getServerConfiguration( server ); + ServerConfigurationV153 configuration = getServerConfiguration( server ); // LDAP if ( configuration.isEnableLdap() ) Added: directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/CreateConnectionAction.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/CreateConnectionAction.java?rev=986663&view=auto ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/CreateConnectionAction.java (added) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/CreateConnectionAction.java Wed Aug 18 13:25:07 2010 @@ -0,0 +1,204 @@ +/* + * 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.directory.studio.ldapservers.apacheds.v153; + + +import org.apache.directory.studio.apacheds.configuration.model.v153.ServerConfigurationV153; +import org.apache.directory.studio.connection.core.Connection; +import org.apache.directory.studio.connection.core.ConnectionParameter; +import org.apache.directory.studio.connection.core.ConnectionParameter.AuthenticationMethod; +import org.apache.directory.studio.connection.core.ConnectionParameter.EncryptionMethod; +import org.apache.directory.studio.ldapservers.actions.CreateConnectionActionHelper; +import org.apache.directory.studio.ldapservers.model.LdapServer; +import org.apache.directory.studio.ldapservers.views.ServersView; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + + +/** + * This class implements the create connection action for an ApacheDS 1.5.3 server. + * + * @author Apache Directory Project + */ +public class CreateConnectionAction implements IObjectActionDelegate +{ + private static final String EXTENSION_ID = "org.apache.directory.server.1.5.3"; + + /** The {@link ServersView} */ + private ServersView view; + + + /** + * {@inheritDoc} + */ + public void run( IAction action ) + { + if ( view != null ) + { + // Getting the selection + StructuredSelection selection = ( StructuredSelection ) view.getViewer().getSelection(); + if ( ( !selection.isEmpty() ) && ( selection.size() == 1 ) ) + { + // Getting the server + LdapServer server = ( LdapServer ) selection.getFirstElement(); + + // Checking that the server is really an ApacheDS 1.5.3 server + // TODO + if ( !EXTENSION_ID.equalsIgnoreCase( server.getLdapServerAdapterExtension().getId() ) ) + { + String message = Messages.getString( "CreateConnectionAction.UnableReadServerConfiguration" ) //$NON-NLS-1$ + + "\n\n" // TODO + + Messages.getString( "CreateConnectionAction.NotA153Server" ); //$NON-NLS-1$ + + reportErrorReadingServerConfiguration( view, message ); + return; + } + + // Parsing the 'server.xml' file + ServerConfigurationV153 serverConfiguration = null; + try + { + serverConfiguration = ApacheDS153LdapServerAdapter.getServerConfiguration( server ); + } + catch ( Exception e ) + { + String message = Messages.getString( "CreateConnectionAction.UnableReadServerConfiguration" ) //$NON-NLS-1$ + + "\n\n" // TODO + + Messages.getString( "CreateConnectionAction.FollowingErrorOccurred" ) + e.getMessage(); //$NON-NLS-1$ + + reportErrorReadingServerConfiguration( view, message ); + return; + } + + // Checking if we could read the 'server.xml' file + if ( serverConfiguration == null ) + { + reportErrorReadingServerConfiguration( view, + Messages.getString( "CreateConnectionAction.UnableReadServerConfiguration" ) ); //$NON-NLS-1$ + return; + } + + // Checking is LDAP and/or LDAPS is/are enabled + if ( ( serverConfiguration.isEnableLdap() ) || ( serverConfiguration.isEnableLdaps() ) ) + { + // Creating the connection using the helper class + createConnection( server, serverConfiguration ); + } + else + { + // LDAP and LDAPS protocols are disabled, we report this error to the user + MessageDialog dialog = new MessageDialog( view.getSite().getShell(), + Messages.getString( "CreateConnectionAction.UnableCreateConnection" ), null, //$NON-NLS-1$ + Messages.getString( "CreateConnectionAction.LDAPAndLDAPSDisabled" ), MessageDialog.ERROR, //$NON-NLS-1$ + new String[] + { IDialogConstants.OK_LABEL }, MessageDialog.OK ); + dialog.open(); + // TODO use common methods in Common UI plugin + } + } + } + } + + + /** + * Reports to the user an error message indicating the server + * configuration could not be read correctly. + * + * @param message + * the message + */ + private void reportErrorReadingServerConfiguration( ServersView view, String message ) + { + MessageDialog dialog = new MessageDialog( view.getSite().getShell(), + Messages.getString( "CreateConnectionAction.UnableReadServerConfiguration" ), //$NON-NLS-1$ + null, message, MessageDialog.ERROR, new String[] + { IDialogConstants.OK_LABEL }, MessageDialog.OK ); + dialog.open(); + // TODO use common methods in Common UI plugin + } + + + /** + * Creates the connection + */ + private void createConnection( LdapServer server, ServerConfigurationV153 configuration ) + { + // Creating the connection parameter object + ConnectionParameter connectionParameter = new ConnectionParameter(); + + // Authentication method + connectionParameter.setAuthMethod( AuthenticationMethod.SIMPLE ); + + // LDAP or LDAPS? + if ( configuration.isEnableLdap() ) + { + connectionParameter.setEncryptionMethod( EncryptionMethod.NONE ); + connectionParameter.setPort( configuration.getLdapPort() ); + } + else if ( configuration.isEnableLdaps() ) + { + connectionParameter.setEncryptionMethod( EncryptionMethod.LDAPS ); + connectionParameter.setPort( configuration.getLdapsPort() ); + } + + // Bind password + connectionParameter.setBindPassword( "secret" ); //$NON-NLS-1$ + + // Bind principal + connectionParameter.setBindPrincipal( "uid=admin,ou=system" ); //$NON-NLS-1$ + + // Host + connectionParameter.setHost( "localhost" ); //$NON-NLS-1$ + + // Name + connectionParameter.setName( server.getName() ); + + // Creating the connection + CreateConnectionActionHelper.createLdapBrowserConnection( server, new Connection( connectionParameter ) ); + } + + + /** + * {@inheritDoc} + */ + public void selectionChanged( IAction action, ISelection selection ) + { + // Nothing to do + } + + + /** + * {@inheritDoc} + */ + public void setActivePart( IAction action, IWorkbenchPart targetPart ) + { + // Storing the Servers view + if ( targetPart instanceof ServersView ) + { + view = ( ServersView ) targetPart; + } + } +} Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages.properties URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages.properties?rev=986663&r1=986662&r2=986663&view=diff ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages.properties (original) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages.properties Wed Aug 18 13:25:07 2010 @@ -16,3 +16,9 @@ # under the License. ApacheDS153Plugin.UnableGetPluginProperties=Unable to get the plugin properties. + +CreateConnectionAction.FollowingErrorOccurred=The following error occurred\: +CreateConnectionAction.LDAPAndLDAPSDisabled=LDAP and LDAPS protocols are disabled. A connection cannot be created. +CreateConnectionAction.NotA153Server=This server is not an ApacheDS 1.5.3 server. +CreateConnectionAction.UnableCreateConnection=Unable to create a connection +CreateConnectionAction.UnableReadServerConfiguration=Unable to read the server configuration. Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_de.properties URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_de.properties?rev=986663&r1=986662&r2=986663&view=diff ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_de.properties (original) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_de.properties Wed Aug 18 13:25:07 2010 @@ -16,3 +16,9 @@ # under the License. ApacheDS153Plugin.UnableGetPluginProperties=Die Plugin Eigenschaften k\u00F6nnen nicht geladen werden. + +CreateConnectionAction.FollowingErrorOccurred=Es ist folgender Fehler aufgetreten\: +CreateConnectionAction.LDAPAndLDAPSDisabled=Die Protokolle LDAP und LDAPS sind gesperrt. Es kann keine Verbindung erstellt werden. +CreateConnectionAction.NotA153Server=TODO:This server is not an ApacheDS 1.5.3 server. +CreateConnectionAction.UnableCreateConnection=Unf\u00E4hig eine Verbindung zu erstellen +CreateConnectionAction.UnableReadServerConfiguration=Unf\u00E4hig die Server Konfiguration zu lesen. Modified: directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_fr.properties URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_fr.properties?rev=986663&r1=986662&r2=986663&view=diff ============================================================================== --- directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_fr.properties (original) +++ directory/studio/trunk/plugins/ldapservers.apacheds.v153/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/messages_fr.properties Wed Aug 18 13:25:07 2010 @@ -16,3 +16,9 @@ # under the License. ApacheDS153Plugin.UnableGetPluginProperties=Impossible de r\u00E9cup\u00E9rer les propri\u00E9t\u00E9s de ce plugin + +CreateConnectionAction.FollowingErrorOccurred= L'erreur suivante est survenue \: +CreateConnectionAction.LDAPAndLDAPSDisabled=Les protocoles LDAP et LDAPS sont d\u00E9sactiv\u00E9s. Il n'est pas possible de cr\u00E9er une connexion. +CreateConnectionAction.NotA153Server=Ce serveur n'est pas un serveur ApacheDS 1.5.3. +CreateConnectionAction.UnableCreateConnection=Impossible de cr\u00E9er une connexion. +CreateConnectionAction.UnableReadServerConfiguration=Impossible de lire la configuration du serveur.