You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/03/25 14:26:31 UTC
svn commit: r1669123 [1/6] - in /directory/studio/trunk/plugins: ./
openldap.config.editor/ openldap.config.editor/resources/
openldap.config.editor/resources/icons/ openldap.config.editor/src/
openldap.config.editor/src/main/ openldap.config.editor/sr...
Author: elecharny
Date: Wed Mar 25 13:26:29 2015
New Revision: 1669123
URL: http://svn.apache.org/r1669123
Log:
Added the openldap config editor
Added:
directory/studio/trunk/plugins/openldap.config.editor/ (with props)
directory/studio/trunk/plugins/openldap.config.editor/build.properties
directory/studio/trunk/plugins/openldap.config.editor/plugin.properties
directory/studio/trunk/plugins/openldap.config.editor/plugin.xml
directory/studio/trunk/plugins/openldap.config.editor/pom-first.xml
directory/studio/trunk/plugins/openldap.config.editor/pom.xml
directory/studio/trunk/plugins/openldap.config.editor/resources/
directory/studio/trunk/plugins/openldap.config.editor/resources/icons/
directory/studio/trunk/plugins/openldap.config.editor/resources/icons/editor.gif (with props)
directory/studio/trunk/plugins/openldap.config.editor/src/
directory/studio/trunk/plugins/openldap.config.editor/src/main/
directory/studio/trunk/plugins/openldap.config.editor/src/main/antlr/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/ConnectionSchemaLoader.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/Messages.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPlugin.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPluginConstants.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/actions/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/actions/OpenConfigurationAction.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ConnectionServerConfigurationInput.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ErrorPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/LoadingPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OverviewPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditor.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditorPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditorUtils.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationInput.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/BdbDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseType.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesMasterDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/FrontendDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/HdbDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/LdifDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/NoneDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/AccessLogOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/AuditLogOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/ChainOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/DistProcOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/OverlayType.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/OverlaysMasterDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/OverlaysPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/PBindAccessOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/PasswordPolicyOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/overlays/SyncProvOverlayDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/EntryBasedConfigurationPartition.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/LoadConfigurationRunnable.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffComputer.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffException.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages.properties
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_de.properties
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_fr.properties
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/AuxiliaryObjectClass.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/ConfigurationElement.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAccessLogConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAuditlogConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcBdbConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcChainConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDatabaseConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDbSocketConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDistProcConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcFrontendConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcGlobal.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcHdbConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcLDAPConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcLdifConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcMonitorConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcNullConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcOverlayConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcPBindConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcPPolicyConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcRelayConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcSchemaConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcSyncProvConfig.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OpenLdapConfiguration.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationException.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationReader.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationWriter.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/SaveConfigurationRunnable.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/resources/
directory/studio/trunk/plugins/openldap.config.editor/src/test/
directory/studio/trunk/plugins/openldap.config.editor/src/test/java/
directory/studio/trunk/plugins/openldap.config.editor/src/test/java/org/
directory/studio/trunk/plugins/openldap.config.editor/src/test/java/org/apache/
directory/studio/trunk/plugins/openldap.config.editor/src/test/java/org/apache/directory/
directory/studio/trunk/plugins/openldap.config.editor/src/test/java/org/apache/directory/studio/
directory/studio/trunk/plugins/openldap.config.editor/src/test/java/org/apache/directory/studio/openldap/
directory/studio/trunk/plugins/openldap.config.editor/src/test/resources/
Modified:
directory/studio/trunk/plugins/pom-first.xml
directory/studio/trunk/plugins/pom.xml
Propchange: directory/studio/trunk/plugins/openldap.config.editor/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar 25 13:26:29 2015
@@ -0,0 +1,16 @@
+target
+maven-eclipse.xml
+lib
+bin
+.externalToolBuilders
+felix-cache
+.project
+.classpath
+.settings
+eclipse-classes
+*.log
+*.iml
+*.ipr
+dependency-reduced-pom.xml
+META-INF
+~
Added: directory/studio/trunk/plugins/openldap.config.editor/build.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/build.properties?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/build.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/build.properties Wed Mar 25 13:26:29 2015
@@ -0,0 +1,6 @@
+source.. = src/main/java/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml,\
+ resources/
Added: directory/studio/trunk/plugins/openldap.config.editor/plugin.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/plugin.properties?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/plugin.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/plugin.properties Wed Mar 25 13:26:29 2015
@@ -0,0 +1,18 @@
+# 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.
+
+Plugin_id=org.apache.directory.studio.openldap.config.editor
Added: directory/studio/trunk/plugins/openldap.config.editor/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/plugin.xml?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/plugin.xml (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/plugin.xml Wed Mar 25 13:26:29 2015
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.apache.directory.studio.openldap.config.editor.ServerConfigurationEditor"
+ default="false"
+ icon="resources/icons/editor.gif"
+ id="org.apache.directory.studio.openldap.config.editor.ServerConfigurationEditor"
+ name="OpenLDAP Configuration Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ objectClass="org.apache.directory.studio.connection.core.Connection"
+ id="org.apache.directory.studio.connection.core.Connection">
+ <action
+ class="org.apache.directory.studio.openldap.config.actions.OpenConfigurationAction"
+ enablesFor="1"
+ id="org.apache.directory.studio.openldap.config.actions.OpenConfigurationAction"
+ label="Open Configuration"
+ icon="resources/icons/editor.gif">
+ </action>
+ <visibility>
+ <objectState
+ name="serverType"
+ value="OPENLDAP_2_3">
+ </objectState>
+ </visibility>
+ </objectContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension targetID="%Perspective_LdapPerspective_id">
+ <actionSet id="%ActionSet_OpenLdapMenuActionSet_id"/>
+ </perspectiveExtension>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.actionSets">
+ <actionSet
+ id="%ActionSet_OpenLdapMenuActionSet_id"
+ label="%ActionSet_OpenLdapMenuActionSet_label"
+ visible="false">
+ <menu
+ id="%ActionSet_OpenLdapMenu_id"
+ label="%ActionSet_OpenLdapMenu_label">
+ <groupMarker name="%GroupMarker_OpenConfiguration_name"/>
+ </menu>
+ <action
+ class="org.apache.directory.studio.openldap.config.actions.OpenDirectoryConfigurationAction"
+ icon="resources/icons/open_configuration.gif"
+ id="%Action_OpenDirectoryConfigurationAction_id"
+ label="%Action_OpenDirectoryConfigurationAction_label"
+ menubarPath="%Action_OpenDirectoryConfigurationAction_menubarpath"
+ style="push">
+ </action>
+ </actionSet>
+ </extension>
+
+</plugin>
Added: directory/studio/trunk/plugins/openldap.config.editor/pom-first.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/pom-first.xml?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/pom-first.xml (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/pom-first.xml Wed Mar 25 13:26:29 2015
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<!--
+ @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.directory.studio</groupId>
+ <artifactId>parent-plugins</artifactId>
+ <version>2.0.0.qualifier</version>
+ <relativePath>../pom-first.xml</relativePath>
+ </parent>
+
+ <artifactId>org.apache.directory.studio.openldap.config.editor</artifactId>
+ <name>Apache Directory Studio OpenLDAP Configuration Editor Manifest Generation</name>
+ <description/>
+ <packaging>bundle</packaging>
+
+ <build>
+ <!-- MANIFEST.MF Generation -->
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <manifestLocation>META-INF</manifestLocation>
+ <instructions>
+ <Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
+ <Bundle-Localization>plugin</Bundle-Localization>
+ <Eclipse-LazyStart>true</Eclipse-LazyStart>
+ <Bundle-Activator>org.apache.directory.studio.openldap.config.OpenLdapConfigurationPlugin</Bundle-Activator>
+
+ <Export-Package>org.apache.directory.studio.openldap.config</Export-Package>
+
+ <Import-Package>
+ org.apache.directory.api.ldap.model.name,
+ org.apache.directory.server.core.api.interceptor.context,
+ org.apache.directory.api.ldap.schema.manager.impl,
+ net.sf.ehcache,
+ org.slf4j
+ </Import-Package>
+
+ <Require-Bundle>
+ org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.bundleversion}",
+ org.apache.directory.server.ldif.partition;bundle-version="${org.apache.directory.server.bundleversion}",
+ org.apache.directory.server.xdbm.partition;bundle-version="${org.apache.directory.server.bundleversion}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.studio.common.core,
+ org.apache.directory.studio.common.ui,
+ org.apache.directory.studio.connection.core,
+ org.apache.directory.studio.connection.ui,
+ org.apache.directory.studio.ldapbrowser.core,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.ui,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.ide</Require-Bundle>
+ </instructions>
+ </configuration>
+ <executions>
+ <execution>
+ <id>generate-manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
Added: directory/studio/trunk/plugins/openldap.config.editor/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/pom.xml?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/pom.xml (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/pom.xml Wed Mar 25 13:26:29 2015
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.directory.studio</groupId>
+ <artifactId>parent-plugins</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <artifactId>org.apache.directory.studio.openldap.config.editor</artifactId>
+ <name>Apache Directory Studio OpenLDAP Configuration Editor</name>
+ <packaging>eclipse-plugin</packaging>
+ <description/>
+</project>
Added: directory/studio/trunk/plugins/openldap.config.editor/resources/icons/editor.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/resources/icons/editor.gif?rev=1669123&view=auto
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/plugins/openldap.config.editor/resources/icons/editor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/ConnectionSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/ConnectionSchemaLoader.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/ConnectionSchemaLoader.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/ConnectionSchemaLoader.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,683 @@
+/*
+ * 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.openldap.config;
+
+
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.directory.api.ldap.model.constants.SchemaConstants;
+import org.apache.directory.api.ldap.model.entry.Attribute;
+import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
+import org.apache.directory.api.ldap.model.entry.DefaultEntry;
+import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.exception.LdapException;
+import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
+import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.name.Rdn;
+import org.apache.directory.api.ldap.model.schema.AttributeType;
+import org.apache.directory.api.ldap.model.schema.ObjectClass;
+import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
+import org.apache.directory.api.ldap.model.schema.SchemaObject;
+import org.apache.directory.api.ldap.model.schema.UsageEnum;
+import org.apache.directory.api.ldap.model.schema.registries.DefaultSchema;
+import org.apache.directory.api.ldap.model.schema.registries.Schema;
+import org.apache.directory.api.ldap.model.schema.registries.SchemaLoader;
+import org.apache.directory.api.ldap.schema.loader.JarLdifSchemaLoader;
+import org.apache.directory.api.util.Strings;
+import org.apache.directory.studio.connection.core.Connection;
+import org.apache.directory.studio.ldapbrowser.core.BrowserCorePlugin;
+
+
+/**
+ * This class implements a {@link SchemaLoader} based on a connection to an OpenLDAP
+ * server, as well as a set of low level base schemas from ApacheDS.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class ConnectionSchemaLoader extends JarLdifSchemaLoader
+{
+ private static final String M_COLLECTIVE = "m-collective";
+ private static final String M_DESCRIPTION = "m-description";
+ private static final String M_EQUALITY = "m-equality";
+ private static final String M_LENGTH = "m-length";
+ private static final String M_MAY = "m-may";
+ private static final String M_MUST = "m-must";
+ private static final String M_NAME = "m-name";
+ private static final String M_NO_USER_MODIFICATION = "m-noUserModification";
+ private static final String M_OBSOLETE = "m-obsolete";
+ private static final String M_OID = "m-oid";
+ private static final String M_ORDERING = "m-ordering";
+ private static final String M_SINGLE_VALUE = "m-singleValue";
+ private static final String M_SUBSTR = "m-substr";
+ private static final String M_SUP_ATTRIBUTE_TYPE = "m-supAttributeType";
+ private static final String M_SUP_OBJECT_CLASS = "m-supObjectClass";
+ private static final String M_SYNTAX = "m-syntax";
+ private static final String M_TYPE_OBJECT_CLASS = "m-typeObjectClass";
+ private static final String M_USAGE = "m-usage";
+ private static final String TRUE = "TRUE";
+
+ /** The name of the connection schema */
+ public static final String CONNECTION_SCHEMA_NAME = "connectionSchema";
+
+ /** The configuration prefix */
+ private static final String CONFIG_PREFIX = "olc";
+
+ /** The schema */
+ private org.apache.directory.studio.ldapbrowser.core.model.schema.Schema browserConnectionSchema;
+
+
+ /**
+ * Creates a new instance of ConnectionSchemaLoader.
+ *
+ * @param connection the connection
+ * @throws Exception
+ */
+ public ConnectionSchemaLoader( Connection connection ) throws Exception
+ {
+ super();
+
+ // Getting the browser connection associated with the connection
+ browserConnectionSchema = BrowserCorePlugin.getDefault().getConnectionManager()
+ .getBrowserConnection( connection ).getSchema();
+
+ initializeSchema();
+ }
+
+
+ /**
+ * Initializes the schema.
+ */
+ private void initializeSchema()
+ {
+ Schema schema = new DefaultSchema( CONNECTION_SCHEMA_NAME );
+ schema.addDependencies( new String[]
+ { "system", "core", "apache" } );
+ schemaMap.put( schema.getSchemaName(), schema );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public List<Entry> loadAttributeTypes( Schema... schemas ) throws LdapException, IOException
+ {
+ List<Entry> attributeTypes = super.loadAttributeTypes( schemas );
+
+ for ( Schema schema : schemas )
+ {
+ if ( CONNECTION_SCHEMA_NAME.equals( schema.getSchemaName() ) )
+ {
+ for ( AttributeType attributeType : browserConnectionSchema.getAttributeTypeDescriptions() )
+ {
+ if ( attributeType.getName().startsWith( CONFIG_PREFIX ) )
+ {
+ attributeTypes.add( convert( attributeType ) );
+ }
+ }
+ }
+ }
+
+ return attributeTypes;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public List<Entry> loadObjectClasses( Schema... schemas ) throws LdapException, IOException
+ {
+ List<Entry> objectClasses = super.loadObjectClasses( schemas );
+
+ for ( Schema schema : schemas )
+ {
+ if ( CONNECTION_SCHEMA_NAME.equals( schema.getSchemaName() ) )
+ {
+ for ( ObjectClass objectClass : browserConnectionSchema.getObjectClassDescriptions() )
+ {
+ if ( objectClass.getName().startsWith( CONFIG_PREFIX ) )
+ {
+ objectClasses.add( convert( objectClass ) );
+ }
+ }
+ }
+ }
+
+ return objectClasses;
+ }
+
+
+ /**
+ * Converts the given attribute type to a schema entry.
+ *
+ * @param attributeType the attribute type
+ * @return the given attribute type as a schema entry.
+ * @throws LdapException
+ */
+ private Entry convert( AttributeType attributeType ) throws LdapException
+ {
+ // Creating a blank entry
+ Entry entry = new DefaultEntry();
+
+ // Setting calculated DN
+ entry.setDn( getDn( attributeType, SchemaConstants.ATTRIBUTE_TYPES_PATH ) );
+
+ // Values common to all schema objects
+ addSchemaObjectValues( attributeType, SchemaConstants.META_ATTRIBUTE_TYPE_OC, entry );
+
+ // Superior value
+ addSuperiorValue( attributeType, entry );
+
+ // Equality matching rule value
+ addEqualityValue( attributeType, entry );
+
+ // Ordering matching rule value
+ addOrderingValue( attributeType, entry );
+
+ // Substrings matching rule value
+ addSubstrValue( attributeType, entry );
+
+ // Syntax value
+ addSyntaxValue( attributeType, entry );
+
+ // Single value value
+ addSingleValueValue( attributeType, entry );
+
+ // Collective value
+ addCollectiveValue( attributeType, entry );
+
+ // No user modification value
+ addNoUserModificationValue( attributeType, entry );
+
+ // Usage value
+ addUsageValue( attributeType, entry );
+
+ return entry;
+ }
+
+
+ /**
+ * Converts the given object class to a schema entry.
+ *
+ * @param objectClass the object class
+ * @return the given object class as a schema entry.
+ * @throws LdapException
+ */
+ private Entry convert( ObjectClass objectClass ) throws LdapException
+ {
+ // Creating a blank entry
+ Entry entry = new DefaultEntry();
+
+ // Setting calculated DN
+ entry.setDn( getDn( objectClass, SchemaConstants.OBJECT_CLASSES_PATH ) );
+
+ // Values common to all schema objects
+ addSchemaObjectValues( objectClass, SchemaConstants.META_OBJECT_CLASS_OC, entry );
+
+ // Superiors value
+ addSuperiorsValue( objectClass, entry );
+
+ // Class type value
+ addClassTypeValue( objectClass, entry );
+
+ // Musts value
+ addMustsValue( objectClass, entry );
+
+ // Mays value
+ addMaysValue( objectClass, entry );
+
+ return entry;
+ }
+
+
+ /**
+ * Gets the DN associated with the given schema object in the given container.
+ *
+ * @param so the schema object
+ * @param container the container
+ * @return the DN associated with the given schema object in the given container.
+ * @throws LdapInvalidDnException
+ */
+ private Dn getDn( SchemaObject so, String container ) throws LdapInvalidDnException
+ {
+ return Dn.EMPTY_DN
+ .add( new Rdn( SchemaConstants.OU_SCHEMA ) )
+ .add( new Rdn( SchemaConstants.CN_AT, Rdn.escapeValue( CONNECTION_SCHEMA_NAME ) ) )
+ .add( new Rdn( container ) )
+ .add( new Rdn( "m-oid", so.getOid() ) );
+ }
+
+
+ /**
+ * Adds the values common to all {@link SchemaObject}(s) to the entry.
+ *
+ * @param schemaObject
+ * the schema object
+ * @param objectClassValue
+ * the value for the objectClass attribute
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addSchemaObjectValues( SchemaObject schemaObject, String objectClassValue, Entry entry )
+ throws LdapException
+ {
+ // ObjectClass
+ addObjectClassValue( schemaObject, objectClassValue, entry );
+
+ // OID
+ addOidValue( schemaObject, entry );
+
+ // Names
+ addNamesValue( schemaObject, entry );
+
+ // Description
+ addDescriptionValue( schemaObject, entry );
+
+ // Obsolete
+ addObsoleteValue( schemaObject, entry );
+ }
+
+
+ /**
+ * Adds the objectClass value to the entry.
+ *
+ * @param schemaObject
+ * the schema object
+ * @param objectClassValue
+ * the value for the objectClass attribute
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addObjectClassValue( SchemaObject schemaObject, String objectClassValue, Entry entry )
+ throws LdapException
+ {
+ Attribute objectClassAttribute = new DefaultAttribute( SchemaConstants.OBJECT_CLASS_AT );
+ entry.add( objectClassAttribute );
+ objectClassAttribute.add( SchemaConstants.TOP_OC );
+ objectClassAttribute.add( SchemaConstants.META_TOP_OC );
+ objectClassAttribute.add( objectClassValue );
+ }
+
+
+ /**
+ * Adds the OID value to the entry.
+ *
+ * @param schemaObject
+ * the schema object
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addOidValue( SchemaObject schemaObject, Entry entry ) throws LdapException
+ {
+ String oid = schemaObject.getOid();
+ if ( !Strings.isEmpty( oid ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_OID, oid );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the names value to the entry.
+ *
+ * @param schemaObject
+ * the schema object
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addNamesValue( SchemaObject schemaObject, Entry entry ) throws LdapException
+ {
+ List<String> names = schemaObject.getNames();
+ if ( ( names != null ) && ( names.size() > 0 ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_NAME );
+ entry.add( attribute );
+
+ for ( String name : names )
+ {
+ attribute.add( name );
+ }
+ }
+ }
+
+
+ /**
+ * Adds the description value to the entry.
+ *
+ * @param schemaObject
+ * the schema object
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addDescriptionValue( SchemaObject schemaObject, Entry entry ) throws LdapException
+ {
+ String description = schemaObject.getDescription();
+ if ( !Strings.isEmpty( description ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_DESCRIPTION, description );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the obsolete value to the entry.
+ *
+ * @param schemaObject
+ * the schema object
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addObsoleteValue( SchemaObject schemaObject, Entry entry ) throws LdapException
+ {
+ if ( schemaObject.isObsolete() )
+ {
+ Attribute attribute = new DefaultAttribute( M_OBSOLETE, TRUE );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the superior value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addSuperiorValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ String superior = attributeType.getSuperiorName();
+ if ( !Strings.isEmpty( superior ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_SUP_ATTRIBUTE_TYPE, superior );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the equality matching rule value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addEqualityValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ String equality = attributeType.getEqualityName();
+ if ( !Strings.isEmpty( equality ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_EQUALITY, equality );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the ordering matching rule value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addOrderingValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ String ordering = attributeType.getOrderingName();
+ if ( !Strings.isEmpty( ordering ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_ORDERING, ordering );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the substring matching rule value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addSubstrValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ String substr = attributeType.getSubstringName();
+ if ( !Strings.isEmpty( substr ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_SUBSTR, substr );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the syntax value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addSyntaxValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ String syntax = attributeType.getSyntaxName();
+ if ( !Strings.isEmpty( syntax ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_SYNTAX, syntax );
+ entry.add( attribute );
+
+ long syntaxLength = attributeType.getSyntaxLength();
+ if ( syntaxLength != -1 )
+ {
+ attribute = new DefaultAttribute( M_LENGTH, "" + syntaxLength );
+ entry.add( attribute );
+ }
+ }
+ }
+
+
+ /**
+ * Adds the single value value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addSingleValueValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ if ( attributeType.isSingleValued() )
+ {
+ Attribute attribute = new DefaultAttribute( M_SINGLE_VALUE, TRUE );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the collective value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addCollectiveValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ if ( attributeType.isCollective() )
+ {
+ Attribute attribute = new DefaultAttribute( M_COLLECTIVE, TRUE );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the no user modification value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addNoUserModificationValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ if ( !attributeType.isUserModifiable() )
+ {
+ Attribute attribute = new DefaultAttribute( M_NO_USER_MODIFICATION, TRUE );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the usage value.
+ *
+ * @param attributeType
+ * the attribute type
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addUsageValue( AttributeType attributeType, Entry entry ) throws LdapException
+ {
+ UsageEnum usage = attributeType.getUsage();
+ if ( usage != UsageEnum.USER_APPLICATIONS )
+ {
+ Attribute attribute = new DefaultAttribute( M_USAGE, usage.render() );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds the superiors value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addSuperiorsValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ List<String> superiors = objectClass.getSuperiorOids();
+ if ( ( superiors != null ) && ( superiors.size() > 0 ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_SUP_OBJECT_CLASS );
+ entry.add( attribute );
+
+ for ( String superior : superiors )
+ {
+ attribute.add( superior );
+ }
+ }
+ }
+
+
+ /**
+ * Adds class type value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addClassTypeValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ ObjectClassTypeEnum classType = objectClass.getType();
+ if ( classType != ObjectClassTypeEnum.STRUCTURAL )
+ {
+ Attribute attribute = new DefaultAttribute( M_TYPE_OBJECT_CLASS, classType.toString() );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds musts value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addMustsValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ List<String> musts = objectClass.getMustAttributeTypeOids();
+ if ( ( musts != null ) && ( musts.size() > 0 ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_MUST );
+ entry.add( attribute );
+
+ for ( String must : musts )
+ {
+ attribute.add( must );
+ }
+ }
+ }
+
+
+ /**
+ * Adds mays value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private static void addMaysValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ List<String> mays = objectClass.getMayAttributeTypeOids();
+ if ( ( mays != null ) && ( mays.size() > 0 ) )
+ {
+ Attribute attribute = new DefaultAttribute( M_MAY );
+ entry.add( attribute );
+
+ for ( String may : mays )
+ {
+ attribute.add( may );
+ }
+ }
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/Messages.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/Messages.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/Messages.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/Messages.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,31 @@
+package org.apache.directory.studio.openldap.config;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+
+public class Messages
+{
+ private static final String BUNDLE_NAME = "org.apache.directory.studio.openldap.config"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
+
+
+ private Messages()
+ {
+ }
+
+
+ public static String getString( String key )
+ {
+ try
+ {
+ return RESOURCE_BUNDLE.getString( key );
+ }
+ catch ( MissingResourceException e )
+ {
+ return '!' + key + '!';
+ }
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPlugin.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPlugin.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPlugin.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPlugin.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,150 @@
+package org.apache.directory.studio.openldap.config;
+
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.PropertyResourceBundle;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class OpenLdapConfigurationPlugin extends AbstractUIPlugin
+{
+ /** The shared instance */
+ private static OpenLdapConfigurationPlugin plugin;
+
+ /** The plugin properties */
+ private PropertyResourceBundle properties;
+
+
+ /**
+ * Creates a new instance of ApacheDS2ConfigurationPlugin.
+ */
+ public OpenLdapConfigurationPlugin()
+ {
+ plugin = this;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start( BundleContext context ) throws Exception
+ {
+ super.start( context );
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop( BundleContext context ) throws Exception
+ {
+ super.stop( context );
+ }
+
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return
+ * the shared instance
+ */
+ public static OpenLdapConfigurationPlugin getDefault()
+ {
+ return plugin;
+ }
+
+
+ /**
+ * Use this method to get SWT images. Use the IMG_ constants from
+ * PluginConstants for the key.
+ *
+ * @param key
+ * The key (relative path to the image in filesystem)
+ * @return The image descriptor or null
+ */
+ public ImageDescriptor getImageDescriptor( String key )
+ {
+ if ( key != null )
+ {
+ URL url = FileLocator.find( getBundle(), new Path( key ), null );
+ if ( url != null )
+ return ImageDescriptor.createFromURL( url );
+ else
+ return null;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+ /**
+ * Use this method to get SWT images. Use the IMG_ constants from
+ * PluginConstants for the key. A ImageRegistry is used to manage the
+ * the key->Image mapping.
+ * <p>
+ * Note: Don't dispose the returned SWT Image. It is disposed
+ * automatically when the plugin is stopped.
+ *
+ * @param key
+ * The key (relative path to the image in filesystem)
+ * @return The SWT Image or null
+ */
+ public Image getImage( String key )
+ {
+ Image image = getImageRegistry().get( key );
+ if ( image == null )
+ {
+ ImageDescriptor id = getImageDescriptor( key );
+ if ( id != null )
+ {
+ image = id.createImage();
+ getImageRegistry().put( key, image );
+ }
+ }
+ return image;
+ }
+
+
+ /**
+ * Gets the plugin properties.
+ *
+ * @return
+ * the plugin properties
+ */
+ public PropertyResourceBundle getPluginProperties()
+ {
+ if ( properties == null )
+ {
+ try
+ {
+ properties = new PropertyResourceBundle( FileLocator.openStream( this.getBundle(), new Path(
+ "plugin.properties" ), false ) ); //$NON-NLS-1$
+ }
+ catch ( IOException e )
+ {
+ // We can't use the PLUGIN_ID constant since loading the plugin.properties file has failed,
+ // So we're using a default plugin id.
+ getLog().log(
+ new Status( Status.ERROR, "org.apache.directory.studio.apacheds.configuration.v2", Status.OK, //$NON-NLS-1$
+ Messages.getString( "OpenLdapConfigurationPlugin.UnableGetProperties" ), e ) ); //$NON-NLS-1$
+ }
+ }
+
+ return properties;
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPluginConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPluginConstants.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPluginConstants.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/OpenLdapConfigurationPluginConstants.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,19 @@
+package org.apache.directory.studio.openldap.config;
+
+
+/**
+ * This interface contains all the Constants used in the Plugin.
+ */
+public interface OpenLdapConfigurationPluginConstants
+{
+ /** The plug-in ID */
+ public static final String PLUGIN_ID = OpenLdapConfigurationPlugin.getDefault().getPluginProperties()
+ .getString( "Plugin_id" ); //$NON-NLS-1$
+
+ // ------
+ // IMAGES
+ // ------
+ public static final String IMG_EDITOR = "resources/icons/editor.gif"; //$NON-NLS-1$
+ public static final String IMG_DATABASE = "resources/icons/database.gif"; //$NON-NLS-1$
+ public static final String IMG_OVERLAY = "resources/icons/overlay.gif"; //$NON-NLS-1$
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/actions/OpenConfigurationAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/actions/OpenConfigurationAction.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/actions/OpenConfigurationAction.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/actions/OpenConfigurationAction.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,108 @@
+/*
+ * 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.openldap.config.actions;
+
+
+import org.apache.directory.studio.connection.core.Connection;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+
+import org.apache.directory.studio.openldap.config.editor.ConnectionServerConfigurationInput;
+import org.apache.directory.studio.openldap.config.editor.ServerConfigurationEditor;
+
+
+public class OpenConfigurationAction implements IObjectActionDelegate
+{
+ /** The selected connection */
+ private Connection selectedConnection;
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void run( IAction action )
+ {
+ if ( selectedConnection != null )
+ {
+ try
+ {
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ try
+ {
+ page.openEditor( new ConnectionServerConfigurationInput( selectedConnection ),
+ ServerConfigurationEditor.ID );
+ }
+ catch ( PartInitException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ catch ( Exception e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // try
+ // {
+ // ConfigurationReader.readConfiguration( selectedConnection );
+ // }
+ // catch ( Exception e )
+ // {
+ // // TODO Auto-generated catch block
+ // e.printStackTrace();
+ // }
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void selectionChanged( IAction action, ISelection selection )
+ {
+ StructuredSelection structuredSelection = ( StructuredSelection ) selection;
+ if ( ( structuredSelection.size() == 1 ) && ( structuredSelection.getFirstElement() instanceof Connection ) )
+ {
+ selectedConnection = ( Connection ) structuredSelection.getFirstElement();
+ }
+ else
+ {
+ selectedConnection = null;
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setActivePart( IAction action, IWorkbenchPart targetPart )
+ {
+ // Nothing to do
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ConnectionServerConfigurationInput.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ConnectionServerConfigurationInput.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ConnectionServerConfigurationInput.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ConnectionServerConfigurationInput.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,162 @@
+package org.apache.directory.studio.openldap.config.editor;
+
+
+import org.apache.directory.studio.connection.core.Connection;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+import org.apache.directory.studio.openldap.config.jobs.EntryBasedConfigurationPartition;
+
+
+/**
+ * This class represents the Non Existing Server Configuration Input.
+ */
+public class ConnectionServerConfigurationInput implements IEditorInput
+{
+ /** The connection */
+ private Connection connection;
+
+ /** The original configuration partition */
+ private EntryBasedConfigurationPartition originalPartition;
+
+
+ /**
+ * Creates a new instance of ConnectionServerConfigurationInput.
+ *
+ * @param connection
+ * the connection
+ */
+ public ConnectionServerConfigurationInput( Connection connection )
+ {
+ this.connection = connection;
+ }
+
+
+ /**
+ * Gets the connection.
+ *
+ * @return
+ * the connection
+ */
+ public Connection getConnection()
+ {
+ return connection;
+ }
+
+
+ /**
+ * Gets the original configuration partition.
+ *
+ * @return
+ * the original configuration partition
+ */
+ public EntryBasedConfigurationPartition getOriginalPartition()
+ {
+ return originalPartition;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getToolTipText()
+ {
+ return NLS.bind( "{0} - Configuration", connection.getName() );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getName()
+ {
+ return NLS.bind( "{0} - Configuration", connection.getName() );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean exists()
+ {
+ return connection != null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public ImageDescriptor getImageDescriptor()
+ {
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public IPersistableElement getPersistable()
+ {
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public Object getAdapter( Class adapter )
+ {
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean equals( Object obj )
+ {
+ if ( obj == null )
+ {
+ return false;
+ }
+
+ if ( obj instanceof ConnectionServerConfigurationInput )
+ {
+ ConnectionServerConfigurationInput input = ( ConnectionServerConfigurationInput ) obj;
+ if ( input.exists() && exists() )
+ {
+ Connection inputConnection = input.getConnection();
+
+ if ( ( inputConnection != null ) && ( inputConnection != null ) )
+ {
+ return inputConnection.equals( connection );
+ }
+ }
+ }
+
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public int hashCode()
+ {
+ return connection.hashCode();
+ }
+
+
+ /**
+ * Sets the original configuration partition.
+ *
+ * @param originalPartition
+ * the original configuration
+ */
+ public void setOriginalPartition( EntryBasedConfigurationPartition originalPartition )
+ {
+ this.originalPartition = originalPartition;
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ErrorPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ErrorPage.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ErrorPage.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ErrorPage.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,147 @@
+package org.apache.directory.studio.openldap.config.editor;
+
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+
+/**
+ * This class represents the Error Page of the Server Configuration Editor.
+ */
+public class ErrorPage extends FormPage
+{
+ /** The Page ID*/
+ public static final String ID = ErrorPage.class.getName();
+
+ /** The Page Title */
+ private static final String TITLE = "Error opening the editor";
+
+ private static final String DETAILS_CLOSED = NLS.bind( "{0} >>", "Details" );
+ private static final String DETAILS_OPEN = NLS.bind( "<< {0}", "Details" );
+
+ /** The exception */
+ private Exception exception;
+
+ /** The flag indicating that the details are shown */
+ private boolean detailsShown = false;
+
+ // UI Controls
+ private FormToolkit toolkit;
+ private Composite parent;
+ private Button detailsButton;
+
+ private Text detailsText;
+
+
+ /**
+ * Creates a new instance of ErrorPage.
+ *
+ * @param editor
+ * the associated editor
+ */
+ public ErrorPage( FormEditor editor, Exception exception )
+ {
+ super( editor, ID, TITLE );
+ this.exception = exception;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void createFormContent( IManagedForm managedForm )
+ {
+ ScrolledForm form = managedForm.getForm();
+ form.setText( "Error opening the editor" );
+ form.setImage( Display.getCurrent().getSystemImage( SWT.ICON_ERROR ) );
+
+ parent = form.getBody();
+ GridLayout gl = new GridLayout( 2, false );
+ gl.marginHeight = 10;
+ gl.marginWidth = 10;
+ parent.setLayout( gl );
+ parent.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+
+ toolkit = managedForm.getToolkit();
+ toolkit.decorateFormHeading( form.getForm() );
+
+ // Error Label
+ Label errorLabel = toolkit.createLabel( parent,
+ NLS.bind( "Could not open the editor: {0}", exception.getMessage() ) );
+ errorLabel.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+
+ // Details Button
+ detailsButton = new Button( parent, SWT.PUSH );
+ detailsButton.setText( DETAILS_CLOSED );
+ detailsButton.setLayoutData( new GridData( SWT.RIGHT, SWT.NONE, false, false ) );
+ detailsButton.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ showOrHideDetailsView();
+ }
+ } );
+ }
+
+
+ /**
+ * Shows or hides the details view.
+ */
+ private void showOrHideDetailsView()
+ {
+ if ( detailsShown )
+ {
+ detailsButton.setText( DETAILS_CLOSED );
+
+ detailsText.dispose();
+ }
+ else
+ {
+ detailsButton.setText( DETAILS_OPEN );
+
+ detailsText = toolkit.createText( parent, getStackTrace( exception ), SWT.H_SCROLL | SWT.V_SCROLL );
+ detailsText.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 2, 1 ) );
+ }
+
+ parent.layout( true, true );
+
+ detailsShown = !detailsShown;
+ }
+
+
+ /**
+ * Gets the stackTrace of the given exception as a string.
+ *
+ * @param e
+ * the exception
+ * @return
+ * the stackTrace of the given exception as a string
+ */
+ private String getStackTrace( Exception e )
+ {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter( sw, true );
+ e.printStackTrace( pw );
+ pw.flush();
+ sw.flush();
+ return sw.toString();
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/LoadingPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/LoadingPage.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/LoadingPage.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/LoadingPage.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,65 @@
+package org.apache.directory.studio.openldap.config.editor;
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+
+/**
+ * This class represents the Loading Page of the Server Configuration Editor.
+ */
+public class LoadingPage extends FormPage
+{
+ /** The Page ID*/
+ public static final String ID = LoadingPage.class.getName(); //$NON-NLS-1$
+
+ /** The Page Title */
+ private static final String TITLE = "Loading Configuration";
+
+
+ /**
+ * Creates a new instance of LoadingPage.
+ *
+ * @param editor
+ * the associated editor
+ */
+ public LoadingPage( FormEditor editor )
+ {
+ super( editor, ID, TITLE );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void createFormContent( IManagedForm managedForm )
+ {
+ ScrolledForm form = managedForm.getForm();
+ form.setText( "Loading Configuration..." );
+
+ Composite parent = form.getBody();
+ parent.setLayout( new GridLayout() );
+
+ FormToolkit toolkit = managedForm.getToolkit();
+ toolkit.decorateFormHeading( form.getForm() );
+
+ Composite composite = toolkit.createComposite( parent );
+ composite.setLayout( new GridLayout() );
+ composite.setLayoutData( new GridData( SWT.CENTER, SWT.CENTER, true, true ) );
+
+ ProgressBar progressBar = new ProgressBar( composite, SWT.INDETERMINATE );
+ progressBar.setLayoutData( new GridData( SWT.CENTER, SWT.NONE, false, false ) );
+
+ Label label = toolkit.createLabel( composite, "Loading the configuration, please wait..." );
+ label.setLayoutData( new GridData( SWT.CENTER, SWT.NONE, false, false ) );
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OverviewPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OverviewPage.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OverviewPage.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OverviewPage.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,71 @@
+package org.apache.directory.studio.openldap.config.editor;
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+
+/**
+ * This class represents the General Page of the Server Configuration Editor.
+ */
+public class OverviewPage extends ServerConfigurationEditorPage
+{
+ /** The Page ID*/
+ public static final String ID = OverviewPage.class.getName(); //$NON-NLS-1$
+
+ /** The Page Title */
+ private static final String TITLE = "Overview";
+
+
+ // UI Controls
+
+ /**
+ * Creates a new instance of GeneralPage.
+ *
+ * @param editor
+ * the associated editor
+ */
+ public OverviewPage( ServerConfigurationEditor editor )
+ {
+ super( editor, ID, TITLE );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void createFormContent( Composite parent, FormToolkit toolkit )
+ {
+ TableWrapLayout twl = new TableWrapLayout();
+ twl.numColumns = 2;
+ parent.setLayout( twl );
+
+ Composite leftComposite = toolkit.createComposite( parent );
+ leftComposite.setLayout( new GridLayout() );
+ TableWrapData leftCompositeTableWrapData = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP );
+ leftCompositeTableWrapData.grabHorizontal = true;
+ leftComposite.setLayoutData( leftCompositeTableWrapData );
+
+ Composite rightComposite = toolkit.createComposite( parent );
+ rightComposite.setLayout( new GridLayout() );
+ TableWrapData rightCompositeTableWrapData = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP );
+ rightCompositeTableWrapData.grabHorizontal = true;
+ rightComposite.setLayoutData( rightCompositeTableWrapData );
+
+ refreshUI();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void refreshUI()
+ {
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditor.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditor.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/ServerConfigurationEditor.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,406 @@
+package org.apache.directory.studio.openldap.config.editor;
+
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Enumeration;
+
+import org.apache.directory.studio.common.core.jobs.StudioJob;
+import org.apache.directory.studio.common.core.jobs.StudioRunnableWithProgress;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.IPageChangedListener;
+import org.eclipse.jface.dialogs.PageChangedEvent;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.editor.FormEditor;
+
+import org.apache.directory.studio.openldap.config.editor.databases.DatabasesPage;
+import org.apache.directory.studio.openldap.config.editor.overlays.OverlaysPage;
+import org.apache.directory.studio.openldap.config.jobs.LoadConfigurationRunnable;
+import org.apache.directory.studio.openldap.config.model.OpenLdapConfiguration;
+import org.apache.directory.studio.openldap.config.model.io.SaveConfigurationRunnable;
+
+
+/**
+ * This class implements the Server Configuration Editor.
+ */
+public class ServerConfigurationEditor extends FormEditor implements IPageChangedListener
+{
+ /** The Editor ID */
+ public static final String ID = ServerConfigurationEditor.class.getName();
+
+ /** The flag indicating if the editor is dirty */
+ private boolean dirty = false;
+
+ /** The configuration */
+ private OpenLdapConfiguration configuration;
+
+ // The pages
+ private LoadingPage loadingPage;
+ private OverviewPage overviewPage;
+ private DatabasesPage databasesPage;
+ private OverlaysPage overlaysPage;
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init( IEditorSite site, IEditorInput input ) throws PartInitException
+ {
+ super.init( site, input );
+ setPartName( input.getName() );
+
+ addPageChangedListener( this );
+
+ readConfiguration();
+ }
+
+
+ /**
+ * Reads the configuration
+ */
+ private void readConfiguration()
+ {
+ // Creating and scheduling the job to load the configuration
+ StudioJob<StudioRunnableWithProgress> job = new StudioJob<StudioRunnableWithProgress>(
+ new LoadConfigurationRunnable( this ) );
+ job.schedule();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void pageChanged( PageChangedEvent event )
+ {
+ Object selectedPage = event.getSelectedPage();
+
+ if ( selectedPage instanceof ServerConfigurationEditorPage )
+ {
+ ( ( ServerConfigurationEditorPage ) selectedPage ).refreshUI();
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void addPages()
+ {
+ try
+ {
+ loadingPage = new LoadingPage( this );
+ addPage( loadingPage );
+ }
+ catch ( PartInitException e )
+ {
+ }
+
+ showOrHideTabFolder();
+ }
+
+
+ /**
+ * Shows or hides the tab folder depending on
+ * the number of pages.
+ */
+ private void showOrHideTabFolder()
+ {
+ Composite container = getContainer();
+ if ( container instanceof CTabFolder )
+ {
+ CTabFolder folder = ( CTabFolder ) container;
+ if ( getPageCount() == 1 )
+ {
+ folder.setTabHeight( 0 );
+ }
+ else
+ {
+ folder.setTabHeight( -1 );
+ }
+ folder.layout( true, true );
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void doSave( IProgressMonitor monitor )
+ {
+ StudioJob<StudioRunnableWithProgress> job = new StudioJob<StudioRunnableWithProgress>(
+ new SaveConfigurationRunnable( this ) );
+ job.schedule();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void doSaveAs()
+ {
+ try
+ {
+ getSite().getWorkbenchWindow().run( false, false, new IRunnableWithProgress()
+ {
+ public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException
+ {
+ try
+ {
+ monitor.beginTask( "Saving Server Configuration", IProgressMonitor.UNKNOWN );
+ doSaveAs( monitor );
+ monitor.done();
+ }
+ catch ( Exception e )
+ {
+ // TODO handle the exception
+ }
+ }
+ } );
+ }
+ catch ( Exception e )
+ {
+ // TODO handle the exception
+ e.printStackTrace();
+ }
+ }
+
+
+ /**
+ * Performs the "Save as..." action.
+ *
+ * @param monitor
+ * the monitor to use
+ * @throws Exception
+ */
+ public boolean doSaveAs( IProgressMonitor monitor ) throws Exception
+ {
+ // Saving the configuration as a new file and getting the associated new editor input
+ IEditorInput newInput = null; //ServerConfigurationEditorUtils.saveAs( monitor, getSite().getShell(),
+ //getEditorInput(), getConfigWriter() );
+
+ // Checking if the 'save as' is successful
+ boolean success = newInput != null;
+ if ( success )
+ {
+ // Setting the new input to the editor
+ setInput( newInput );
+
+ // Resetting the dirty state of the editor
+ setDirty( false );
+
+ // Updating the title and tooltip texts
+ Display.getDefault().syncExec( new Runnable()
+ {
+ public void run()
+ {
+ setPartName( getEditorInput().getName() );
+ }
+ } );
+ }
+
+ return success;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isDirty()
+ {
+ return dirty;
+ }
+
+
+ /**
+ * Sets the 'dirty' flag.
+ *
+ * @param dirty
+ * the 'dirty' flag
+ */
+ public void setDirty( boolean dirty )
+ {
+ this.dirty = dirty;
+
+ Display.getDefault().asyncExec( new Runnable()
+ {
+ public void run()
+ {
+ firePropertyChange( PROP_DIRTY );
+ }
+ } );
+ }
+
+
+ /**
+ * Gets the configuration.
+ *
+ * @return
+ * the configuration
+ */
+ public OpenLdapConfiguration getConfiguration()
+ {
+ return configuration;
+ }
+
+
+ /*
+ * Sets the configuration.
+ *
+ * @param configuration
+ * the configuration
+ */
+ public void setConfiguration( OpenLdapConfiguration configuration )
+ {
+ this.configuration = configuration;
+ }
+
+
+ /**
+ * Resets the configuration and refresh the UI.
+ *
+ * @param configBean
+ * the configuration bean
+ */
+ public void resetConfiguration( OpenLdapConfiguration configuration )
+ {
+ setConfiguration( configuration );
+
+ setDirty( true );
+
+ overviewPage.refreshUI();
+ databasesPage.refreshUI();
+ overlaysPage.refreshUI();
+ // ldapLdapsServersPage.refreshUI();
+ // kerberosServerPage.refreshUI();
+ // partitionsPage.refreshUI();
+ // replicationPage.refreshUI();
+ }
+
+
+ /**
+ * This method is called by the job responsible for loading the
+ * configuration when it has been fully and correctly loaded.
+ *
+ * @param configBean
+ * the loaded configuration bean
+ */
+ public void configurationLoaded( OpenLdapConfiguration configuration )
+ {
+ setConfiguration( configuration );
+
+ hideLoadingPageAndDisplayConfigPages();
+ }
+
+
+ /**
+ * This method is called by the job responsible for loading the
+ * configuration when it failed to load it.
+ *
+ * @param exception
+ * the exception
+ */
+ public void configurationLoadFailed( Exception exception )
+ {
+ // Overriding the default dirty setting
+ // (especially in the case of a new configuration file)
+ setDirty( false );
+
+ hideLoadingPageAndDisplayErrorPage( exception );
+ }
+
+
+ /**
+ * Hides the loading page and displays the standard configuration pages.
+ */
+ private void hideLoadingPageAndDisplayConfigPages()
+ {
+ // Removing the loading page
+ removePage( 0 );
+
+ // Adding the configuration pages
+ try
+ {
+ overviewPage = new OverviewPage( this );
+ addPage( overviewPage );
+ databasesPage = new DatabasesPage( this );
+ addPage( databasesPage );
+ overlaysPage = new OverlaysPage( this );
+ addPage( overlaysPage );
+ }
+ catch ( PartInitException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // Activating the first page
+ setActivePage( 0 );
+
+ showOrHideTabFolder();
+ }
+
+
+ /**
+ * Hides the loading page and displays the error page.
+ *
+ * @param exception
+ * the exception
+ */
+ private void hideLoadingPageAndDisplayErrorPage( Exception exception )
+ {
+ // Removing the loading page
+ removePage( 0 );
+
+ // Adding the error page
+ try
+ {
+ addPage( new ErrorPage( this, exception ) );
+ }
+ catch ( PartInitException e )
+ {
+ }
+
+ // Activating the first page
+ setActivePage( 0 );
+
+ showOrHideTabFolder();
+ }
+
+
+ /**
+ * Set a particular page as active if it is found in the pages vector.
+ *
+ * @param pageClass
+ * the class of the page
+ */
+ public void showPage( Class<?> pageClass )
+ {
+ if ( pageClass != null )
+ {
+ Enumeration<Object> enumeration = pages.elements();
+ while ( enumeration.hasMoreElements() )
+ {
+ Object page = enumeration.nextElement();
+ if ( pageClass.isInstance( page ) )
+ {
+ setActivePage( pages.indexOf( page ) );
+ return;
+ }
+ }
+ }
+ }
+}
Re: svn commit: r1669123 [1/6] - in /directory/studio/trunk/plugins:
./ openldap.config.editor/ openldap.config.editor/resources/ openldap.config.editor/resources/icons/
openldap.config.editor/src/ openldap.config.editor/src/main/ openldap.config.editor/sr...
Posted by Emmanuel Lécharny <el...@gmail.com>.
Le 25/03/15 22:59, Stefan Seelmann a écrit :
> I get compile error, should we just make the method public?
It has been made public.
You have to rebuild apacheDS, and to doom the cache.
I simply create a new workspace to be able to reload the project, that
was the only way for me.
Re: svn commit: r1669123 [1/6] - in /directory/studio/trunk/plugins:
./ openldap.config.editor/ openldap.config.editor/resources/ openldap.config.editor/resources/icons/
openldap.config.editor/src/ openldap.config.editor/src/main/ openldap.config.editor/sr...
Posted by Emmanuel Lécharny <el...@gmail.com>.
Le 25/03/15 22:59, Stefan Seelmann a écrit :
> I get compile error, should we just make the method public?
>
>
> [ERROR]
> /home/seelmann/Development/Apache/svn/directory-trunks/studio/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config
> /jobs/PartitionsDiffComputer.java:[296]
> [ERROR] soc.setReturningAttributes( returningAttributes.toArray( new
> String[returningAttributes.size()] ) );
> [ERROR] ^^^^^^^^^^^^^^^^^^^^^^
> [ERROR] The method setReturningAttributes(String...) from the type
> FilteringOperationContext is not visible
>
Actually, sorry, I made it public, but forgot to commit the code. Done.
Re: svn commit: r1669123 [1/6] - in /directory/studio/trunk/plugins:
./ openldap.config.editor/ openldap.config.editor/resources/ openldap.config.editor/resources/icons/
openldap.config.editor/src/ openldap.config.editor/src/main/ openldap.config.editor/sr...
Posted by Stefan Seelmann <ma...@stefan-seelmann.de>.
I get compile error, should we just make the method public?
[ERROR]
/home/seelmann/Development/Apache/svn/directory-trunks/studio/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config
/jobs/PartitionsDiffComputer.java:[296]
[ERROR] soc.setReturningAttributes( returningAttributes.toArray( new
String[returningAttributes.size()] ) );
[ERROR] ^^^^^^^^^^^^^^^^^^^^^^
[ERROR] The method setReturningAttributes(String...) from the type
FilteringOperationContext is not visible