You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/08/18 15:25:08 UTC
svn commit: r986663 - in
/directory/studio/trunk/plugins/ldapservers.apacheds.v153: ./
resources/icons/
src/main/java/org/apache/directory/studio/ldapservers/apacheds/v153/
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">
</ldapServerAdapter>
</extension>
+
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ objectClass="org.apache.directory.studio.ldapservers.model.LdapServer"
+ id="org.apache.directory.studio.ldapservers.model.LdapServer">
+ <action
+ class="org.apache.directory.studio.ldapservers.apacheds.v153.CreateConnectionAction"
+ enablesFor="1"
+ id="org.apache.directory.studio.ldapservers.apacheds.v153.CreateConnectionAction"
+ label="Create a Connection"
+ icon="resources/icons/connection_new.gif">
+ </action>
+ <visibility>
+ <objectState
+ name="extensionId"
+ value="org.apache.directory.server.1.5.3">
+ </objectState>
+ </visibility>
+ </objectContribution>
+ </extension>
</plugin>
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 @@
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
+ <artifactId>connection.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.studio</groupId>
<artifactId>ldapservers</artifactId>
<scope>provided</scope>
</dependency>
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 <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+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.