directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r1670931 [1/8] - in /directory/studio/trunk: features/openldap.feature/ plugins/ plugins/openldap.acl.editor/ plugins/openldap.acl.editor/resources/ plugins/openldap.acl.editor/resources/icons/ plugins/openldap.acl.editor/resources/template...
Date Thu, 02 Apr 2015 16:14:28 GMT
Author: elecharny
Date: Thu Apr  2 16:14:26 2015
New Revision: 1670931

URL: http://svn.apache.org/r1670931
Log:
Injected the openldap acl editor plugin

Added:
    directory/studio/trunk/plugins/openldap.acl.editor/   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/build.properties
    directory/studio/trunk/plugins/openldap.acl.editor/plugin.properties
    directory/studio/trunk/plugins/openldap.acl.editor/plugin.xml
    directory/studio/trunk/plugins/openldap.acl.editor/pom-first.xml
    directory/studio/trunk/plugins/openldap.acl.editor/pom.xml
    directory/studio/trunk/plugins/openldap.acl.editor/resources/
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/add.gif   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/delete.gif   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/down.png   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/editor.gif   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/keyword.gif   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/up.png   (with props)
    directory/studio/trunk/plugins/openldap.acl.editor/resources/templates/
    directory/studio/trunk/plugins/openldap.acl.editor/resources/templates/templates.xml
    directory/studio/trunk/plugins/openldap.acl.editor/src/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/antlr/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/antlr/Acl.g
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/Messages.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPlugin.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPluginConstants.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclValueWithContext.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/dialogs/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/dialogs/OpenLdapAccessLevelDialog.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/dialogs/OpenLdapAclDialog.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/editor/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/editor/OpenLdapAclValueEditor.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/messages.properties
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/messages_de.properties
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/messages_fr.properties
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AbstractAclWhoClause.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AbstractAclWhoClauseCryptoStrength.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclAccessLevel.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclAccessLevelLevelEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclAccessLevelPrivModifierEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclAccessLevelPrivilegeEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclControlEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclItem.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClause.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClauseAttributes.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClauseDn.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClauseDnTypeEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClauseEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClauseFilter.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhatClauseStar.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClause.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseAnonymous.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseDn.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseDnAttr.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseDnModifierEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseDnTypeEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseGroup.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseGroupTypeEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseSaslSsf.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseSelf.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseSsf.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseStar.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseTlsSsf.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseTransportSsf.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/AclWhoClauseUsers.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/model/OpenLdapAclParser.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/AbstractRule.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/DialogContentAssistant.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/DnRule.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/GroupRule.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/KeywordEqualRule.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/OpenLdapAclCodeScanner.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/OpenLdapAclFormattingStrategy.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/OpenLdapAclSourceViewerConfiguration.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/OpenLdapAclTextAttributeProvider.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/OpenLdapContentAssistProcessor.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/sourceeditor/StarRule.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/AclWhoClauseSsfValuesEnum.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/AttributeTypeContentProposal.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/AttributesWidget.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/AttributesWidgetContentProposal.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/AttributesWidgetContentProposalProvider.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/KeywordContentProposal.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/ObjectClassContentProposal.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/OpenLdapAclSourceEditorComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/OpenLdapAclTabFolderComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/OpenLdapAclVisualEditorComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/OpenLdapAclWhatClauseWidget.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/OpenLdapAclWhoClauseWidget.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/OpenLdapAclWhoClausesBuilderWidget.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/AbstractClauseComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/AbstractWhoClauseCryptoStrengthComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/ClauseComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhatClauseAttributesComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhatClauseComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhatClauseDnComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhatClauseFilterComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhatClauseStarComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseAnonymousComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseDnAttributeComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseDnComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseGroupComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseSaslSsfComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseSelfComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseSsfComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseStarComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseTlsSsfComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseTransportSsfComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/widgets/composites/WhoClauseUsersComposite.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/main/resources/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/studio/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/studio/openldap/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/studio/openldap/config/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/studio/openldap/config/acl/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/studio/openldap/config/acl/model/
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/java/org/apache/directory/studio/openldap/config/acl/model/OpenLdapAclParserTest.java
    directory/studio/trunk/plugins/openldap.acl.editor/src/test/resources/
Modified:
    directory/studio/trunk/features/openldap.feature/feature.xml
    directory/studio/trunk/plugins/pom-first.xml
    directory/studio/trunk/plugins/pom.xml

Modified: directory/studio/trunk/features/openldap.feature/feature.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/features/openldap.feature/feature.xml?rev=1670931&r1=1670930&r2=1670931&view=diff
==============================================================================
--- directory/studio/trunk/features/openldap.feature/feature.xml (original)
+++ directory/studio/trunk/features/openldap.feature/feature.xml Thu Apr  2 16:14:26 2015
@@ -207,7 +207,7 @@ http://www.apache.org/licenses/
          unpack="false"/>
 
    <plugin
-         id="org.apache.directory.studio.openldap.aci.editor"
+         id="org.apache.directory.studio.openldap.config.acl.editor"
          download-size="0"
          install-size="0"
          version="0.0.0"

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Apr  2 16:14:26 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.acl.editor/build.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/build.properties?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/build.properties (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/build.properties Thu Apr  2 16:14:26 2015
@@ -0,0 +1,24 @@
+# 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.
+
+source.. = src/main/java/,\
+           target/generated-sources/antlr/
+bin.includes = META-INF/,\
+               .,\
+               plugin.properties,\
+               plugin.xml,\
+               resources/

Added: directory/studio/trunk/plugins/openldap.acl.editor/plugin.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/plugin.properties?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/plugin.properties (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/plugin.properties Thu Apr  2 16:14:26 2015
@@ -0,0 +1,21 @@
+# 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.acl.editor
+
+CtxType_Template_id=org.apache.directory.studio.openldap.config.acl.templates
+CtxType_Template_name=OpenLDAP ACL

Added: directory/studio/trunk/plugins/openldap.acl.editor/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/plugin.xml?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/plugin.xml (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/plugin.xml Thu Apr  2 16:14:26 2015
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<!--
+  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>
+  <extension point="org.apache.directory.studio.valueeditors">
+   <valueEditor
+     class="org.apache.directory.studio.openldap.config.acl.editor.OpenLdapAclValueEditor"
+     icon="resources/icons/editor.gif"
+     name="OpenLDAP ACL Editor">
+     <attribute attributeType="olcAccess" />
+   </valueEditor>
+  </extension>
+  
+  <extension point="org.eclipse.ui.editors.templates">
+   <include file="resources/templates/templates.xml"/>
+   <contextType
+     class="org.eclipse.jface.text.templates.TemplateContextType"
+     id="%CtxType_Template_id"
+     name="%CtxType_Template_name"/>
+  </extension>
+</plugin>

Added: directory/studio/trunk/plugins/openldap.acl.editor/pom-first.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/pom-first.xml?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/pom-first.xml (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/pom-first.xml Thu Apr  2 16:14:26 2015
@@ -0,0 +1,115 @@
+ <?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.acl.editor</artifactId>
+  <name>Apache Directory Studio OpenLDAP ACL Configuration Editor</name>
+  <packaging>bundle</packaging>
+  <description/>
+
+  <dependencies>
+    <dependency>
+      <groupId>antlr</groupId>
+      <artifactId>antlr</artifactId>
+      <version>${antlr.version}</version>
+    </dependency>
+  </dependencies> 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>antlr-maven-plugin</artifactId>
+        <configuration>
+          <grammars>*.g</grammars>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+     
+      <!-- MANIFEST.MF Generation -->
+      <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.acl.OpenLdapAclEditorPlugin</Bundle-Activator>
+            <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.apache.directory.studio.ldapbrowser.common,
+ org.apache.directory.studio.valueeditors,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jface.text,
+ org.eclipse.ui,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.ide,
+ org.apache.servicemix.bundles.antlr,
+ slf4j.api</Require-Bundle>
+            <Export-Package>org.apache.directory.studio.openldap.config.acl,
+ org.apache.directory.studio.openldap.config.acl.dialogs,
+ org.apache.directory.studio.openldap.config.acl.editor,
+ org.apache.directory.studio.openldap.config.acl.model,
+ org.apache.directory.studio.openldap.config.acl.sourceditor,
+ org.apache.directory.studio.openldap.config.acl.widgets,
+ org.apache.directory.studio.openldap.config.acl.widgets.composites</Export-Package>
+          </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.acl.editor/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/pom.xml?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/pom.xml (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/pom.xml Thu Apr  2 16:14:26 2015
@@ -0,0 +1,60 @@
+<?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.
+-->
+<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.acl.editor</artifactId>
+  <name>Apache Directory Studio OpenLDAP Configuration ACL Editor</name>
+  <packaging>eclipse-plugin</packaging>
+  <description/>
+
+  <dependencies>
+    <dependency>
+      <groupId>antlr</groupId>
+      <artifactId>antlr</artifactId>
+      <version>${antlr.version}</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>antlr-maven-plugin</artifactId>
+        <configuration>
+          <grammars>*.g</grammars>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
+

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/add.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/add.gif?rev=1670931&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/add.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/delete.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/delete.gif?rev=1670931&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/delete.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/down.png
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/down.png?rev=1670931&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/down.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/editor.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/editor.gif?rev=1670931&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/editor.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/keyword.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/keyword.gif?rev=1670931&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/keyword.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/up.png
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/up.png?rev=1670931&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/plugins/openldap.acl.editor/resources/icons/up.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/plugins/openldap.acl.editor/resources/templates/templates.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/resources/templates/templates.xml?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/resources/templates/templates.xml (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/resources/templates/templates.xml Thu Apr  2 16:14:26 2015
@@ -0,0 +1,226 @@
+<?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.
+-->
+<!-- This file is used to store the code templates for the ACI Item syntax  -->
+<templates>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.star"
+        name="*"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">* ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.anonymous"
+        name="anonymous"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">anonymous ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.attrs"
+        name="attrs"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">attrs=${attrlist} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.auth"
+        name="auth"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">auth ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.by"
+        name="by"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">by ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.compare"
+        name="compare"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">compare ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.disclose"
+        name="disclose"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">disclose ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn"
+        name="dn"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn="${dn}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn.base"
+        name="dn.base"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn.base="${dn}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn.children"
+        name="dn.children"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn.children="${dn}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn.exact"
+        name="dn.exact"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn.exact="${dn}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn.one"
+        name="dn.one"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn.one="${dn}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn.regex"
+        name="dn.regex"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn.regex="${regex}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dn.subtree"
+        name="dn.subtree"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dn.subtree="${dn}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.dnattr"
+        name="dnattr"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">dnattr=${attrname} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.filter"
+        name="filter"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">filter=${ldapfilter} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.group"
+        name="group"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">group="${group}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.group.type"
+        name="group.type"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">group.${type}="${pattern}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.group.objectclass"
+        name="group/objectclass"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">group/${objectclass}="${pattern}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.group.objectclass.type"
+        name="group/objectclass.type"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">group/${objectclass}.${type}="${pattern}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.group.objectclass.attrname.type"
+        name="group/objectclass/attrname.type"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">group/${objectclass}/${attrname}.${type}="${pattern}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.group.objectclass.attrname"
+        name="group/objectclass/attrname"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">group/${objectclass}/${attrname}="${pattern}" ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.none"
+        name="none"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">none ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.manage"
+        name="manage"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">manage ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.read"
+        name="read"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">read ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.sasl_ssf"
+        name="sasl_ssf"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">sasl_ssf=${n} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.search"
+        name="search"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">search ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.self"
+        name="self"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">self ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.ssf"
+        name="ssf"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">ssf=${n} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.to"
+        name="to"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">to ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.tls_ssf"
+        name="tls_ssf"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">tls_ssf=${n} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.transport_ssf"
+        name="transport_ssf"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">transport_ssf=${n} ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.users"
+        name="users"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">users ${cursor}</template>
+    <template
+        id="org.apache.directory.studio.openldap.config.acl.templates.write"
+        name="write"
+        context="org.apache.directory.studio.openldap.config.acl.templates"
+        enabled="true"
+        deleted="false">write ${cursor}</template>
+</templates>

Added: directory/studio/trunk/plugins/openldap.acl.editor/src/main/antlr/Acl.g
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/src/main/antlr/Acl.g?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/src/main/antlr/Acl.g (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/src/main/antlr/Acl.g Thu Apr  2 16:14:26 2015
@@ -0,0 +1,835 @@
+/*
+ *  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. 
+ *  
+ */
+header
+{
+
+package org.apache.directory.studio.openldap.config.acl.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+} 
+    
+//  ----------------------------------------------------------------------------
+//  lexer class definition
+//  ----------------------------------------------------------------------------
+
+/**
+ * The ANTLR generated OpenLDAP ACL parser.
+ */
+class AntlrAclLexer extends Lexer;
+
+
+//  ----------------------------------------------------------------------------
+//  lexer options
+//  ----------------------------------------------------------------------------
+
+options
+{
+    k = 10;
+    charVocabulary = '\0'..'\377';
+    caseSensitive = false ;
+    defaultErrorHandler = false ;
+}
+
+//----------------------------------------------------------------------------
+// tokens
+//----------------------------------------------------------------------------
+
+tokens
+{
+    ID_access = "access";
+    ID_anonymous = "anonymous";
+    ID_attr = "attr";
+    ID_attrs = "attrs";
+    ID_auth = "auth";
+    ID_base = "base";
+    ID_break = "break";
+    ID_by = "by";
+    ID_c = "c";
+    ID_children = "children";
+    ID_compare = "compare";
+    ID_continue = "continue";
+    ID_disclose = "disclose";
+    ID_dn = "dn";
+    ID_dnattr = "dnattr";
+    ID_entry = "entry";
+    ID_exact = "exact";
+    ID_expand = "expand";
+    ID_filter = "filter";
+    ID_group = "group";
+    ID_level = "level";
+    ID_m = "m";
+    ID_manage = "manage";
+    ID_none = "none";
+    ID_one = "one";
+    ID_r = "r";
+    ID_read = "read";
+    ID_regex = "regex";
+    ID_s = "s";
+    ID_search = "search";
+    ID_self = "self";
+    ID_stop = "stop";
+    ID_subtree = "subtree";
+    ID_to = "to";
+    ID_users = "users";
+    ID_x = "x";
+    ID_w = "w";
+    ID_write = "write";
+}
+
+protected DIGIT : '0' | LDIGIT;
+
+protected LDIGIT : '1'..'9';
+
+INTEGER : DIGIT | ( LDIGIT ( DIGIT )+ );
+
+DOUBLE_QUOTED_STRING : '"'! ( ~'"' )* '"'!;
+        
+ATTR_IDENT : ('a'..'z')  ('a'..'z' | DIGIT | '-' | ';' )*;
+
+OPEN_CURLY : '{';
+
+CLOSE_CURLY : '}';
+
+SP : ' ' | '\t' | '\n' { newline(); } | '\r';
+
+SSF : "ssf" EQUAL strength:INTEGER { setText( strength.getText() ); };
+
+TRANSPORT_SSF : "transport_ssf" EQUAL strength:INTEGER { setText( strength.getText() ); };
+
+TLS_SSF : "tls_ssf" EQUAL strength:INTEGER { setText( strength.getText() ); };
+
+SASL_SSF : "sasl_ssf" EQUAL strength:INTEGER { setText( strength.getText() ); };
+
+DOT : '.';
+
+SEP : ',';
+
+EQUAL : '=';
+
+STAR : '*';
+
+PLUS : '+';
+
+MINUS : '-';
+
+SLASH : '/';
+
+FILTER : '(' ( ( '&' (SP)* (FILTER)+ ) | ( '|' (SP)* (FILTER)+ ) | ( '!' (SP)* FILTER ) | FILTER_VALUE ) ')';
+
+protected FILTER_VALUE : (options{greedy=true;}: ~( ')' | '(' | '&' | '|' | '!' ) ( ~(')') )* ) ;
+
+// ----------------------------------------------------------------------------
+// parser class definition
+// ----------------------------------------------------------------------------
+
+/**
+ * The ANTLR generated OpenLDAP ACL parser.
+ */
+class AntlrAclParser extends Parser;
+
+
+// ----------------------------------------------------------------------------
+// parser options
+// ----------------------------------------------------------------------------
+
+options
+{
+    k = 2;
+    defaultErrorHandler = false ;
+}
+
+// ----------------------------------------------------------------------------
+// parser initialization
+// ----------------------------------------------------------------------------
+
+{
+    private static final Logger log = LoggerFactory.getLogger( AntlrAclParser.class );
+    
+    private AclItem aclItem;
+    
+    public AclItem getAclItem()
+    {
+    	return aclItem;
+    }
+}
+
+parse
+	{
+    	log.debug( "entered parse()" );
+    	//System.out.println( "entered parse()" );
+	}
+    :
+    ( SP )* aclItem ( SP )* EOF
+    ;
+    
+aclItem
+	{
+	    log.debug( "entered aclItem()" );
+	    //System.out.println( "entered aclItem()" );
+
+    	aclItem = new AclItem();
+	}
+    :
+    ( ID_access ( SP )+ )? ID_to ( ( SP )+ (what_star | what_dn | what_attrs | what_filter | ( ID_by ( SP )+ who ) ) )+ 
+    ;
+    
+what_star
+{
+    log.debug( "entered what_star()" );
+    //System.out.println( "entered what_star()" );
+}
+	:
+    STAR
+    {
+    	if ( aclItem.getWhatClause().getStarClause() == null )
+    	{
+			aclItem.getWhatClause().setStarClause( new AclWhatClauseStar() );
+		}
+		else
+		{
+			throw new RecognitionException( "A star (*) what clause already exists in the ACL." );
+		}
+    };
+
+what_dn
+{
+    log.debug( "entered what_dn()" );
+    //System.out.println( "entered what_dn()" );
+    
+    AclWhatClauseDn whatClauseDn = new AclWhatClauseDn();
+    
+	if ( aclItem.getWhatClause().getDnClause() == null )
+	{
+		aclItem.getWhatClause().setDnClause( whatClauseDn );
+	}
+	else
+	{
+		throw new RecognitionException( "A DN what clause already exists in the ACL." );
+	}
+}
+	:
+	ID_dn ( DOT what_dn_type )? ( SP! )* EQUAL ( SP! )* token:DOUBLE_QUOTED_STRING
+	{
+		whatClauseDn.setPattern( token.getText() );
+	}
+    ;
+    
+what_dn_type
+{
+    log.debug( "entered what_dn_type()" );
+    //System.out.println( "entered what_dn_type()" );
+    
+	AclWhatClause whatClause = aclItem.getWhatClause();
+	AclWhatClauseDn whatClauseDn =  whatClause.getDnClause();
+	if ( whatClauseDn == null )
+	{
+    	// Throw an exception ?
+    	return;
+	}
+}
+	:
+	ID_regex
+    {
+    	//System.out.println( "entered ID_regex()" );
+    	whatClauseDn.setType( AclWhatClauseDnTypeEnum.REGEX );
+    }
+    |
+    ID_base
+    {
+    	//System.out.println( "entered ID_base()" );
+    	whatClauseDn.setType( AclWhatClauseDnTypeEnum.BASE );
+    }
+    |
+    ID_exact
+    {
+    	//System.out.println( "entered ID_exact()" );
+    	whatClauseDn.setType( AclWhatClauseDnTypeEnum.EXACT );
+    }
+    |
+    ID_one
+    {
+    	//System.out.println( "entered ID_one()" );
+    	whatClauseDn.setType( AclWhatClauseDnTypeEnum.ONE );
+    }
+    |
+    ID_subtree
+    {
+    	//System.out.println( "entered ID_subtree()" );
+    	whatClauseDn.setType( AclWhatClauseDnTypeEnum.SUBTREE );
+    }
+    |
+    ID_children
+    {
+    	//System.out.println( "entered ID_children()" );
+    	whatClauseDn.setType( AclWhatClauseDnTypeEnum.CHILDREN );
+    }
+    ;
+
+what_attrs
+{
+    log.debug( "entered what_attrs()" );
+    //System.out.println( "entered what_attrs()" );
+    
+	if ( aclItem.getWhatClause().getAttributesClause() == null )
+	{
+		aclItem.getWhatClause().setAttributesClause( new AclWhatClauseAttributes() );
+	}
+	else
+	{
+		throw new RecognitionException( "A attributes what clause already exists in the ACL." );
+	}
+}
+	:
+	( ID_attrs | ID_attr ) ( SP! )* EQUAL ( SP! )* what_attrs_attr_ident ( SEP what_attrs_attr_ident )*
+    ;
+    
+what_attrs_attr_ident
+{
+    log.debug( "entered what_attrs_attr_ident()" );
+    //System.out.println( "entered what_attrs_attr_ident()" );
+    
+	AclWhatClause whatClause = aclItem.getWhatClause();
+	AclWhatClauseAttributes whatClauseAttributes =  whatClause.getAttributesClause();
+	if ( whatClauseAttributes == null )
+	{
+		// Throw an exception ?
+		return;
+	}
+}
+	:
+    token:ATTR_IDENT
+    {
+    	//System.out.println( token.getText()  );
+    	whatClauseAttributes.addAttribute( token.getText() );
+    };
+
+what_filter
+{
+    log.debug( "entered what_filter()" );
+    //System.out.println( "entered what_filter()" );
+    
+	if ( aclItem.getWhatClause().getFilterClause() != null )
+	{
+		throw new RecognitionException( "A filter what clause already exists in the ACL." );
+	}
+}
+	:
+	ID_filter ( SP! )* EQUAL ( SP! )* token:FILTER
+    {
+    	AclWhatClauseFilter whatClauseFilter = new AclWhatClauseFilter();
+    	whatClauseFilter.setFilter( token.getText() );
+
+		aclItem.getWhatClause().setFilterClause( whatClauseFilter );
+    };
+    
+who
+{
+    log.debug( "entered who()" );
+    //System.out.println( "entered who()" );
+}
+    :
+    ( who_star | who_anonymous | who_users | who_self | who_dn | who_dnattr | who_group | who_ssf | who_transport_ssf | who_tls_ssf | who_sasl_ssf ) ( ( SP )+ who_access_level )? ( ( SP )+  who_control )?
+    ;
+
+who_anonymous
+{
+    log.debug( "entered who_anonymous()" );
+    //System.out.println( "entered who_anonymous()" );
+}
+	:
+    ID_anonymous
+    {
+		aclItem.addWhoClause( new AclWhoClauseAnonymous() );
+    };
+
+who_users
+{
+    log.debug( "entered who_users()" );
+    //System.out.println( "entered who_users()" );
+}
+	:
+    ID_users
+    {
+		aclItem.addWhoClause( new AclWhoClauseUsers() );
+    };
+
+who_self
+{
+    log.debug( "entered who_self()" );
+    //System.out.println( "entered who_self()" );
+}
+	:
+    ID_self
+    {
+		aclItem.addWhoClause( new AclWhoClauseSelf() );
+    };
+    
+who_star
+{
+    log.debug( "entered who_star()" );
+    //System.out.println( "entered who_star()" );
+}
+	:
+    STAR
+    {
+		aclItem.addWhoClause( new AclWhoClauseStar() );
+    };
+    
+who_dnattr
+{
+    log.debug( "entered who_dnattr()" );
+    //System.out.println( "entered who_dnattr()" );
+    
+	AclWhoClauseDnAttr whoClauseDnAttr = new AclWhoClauseDnAttr();
+	aclItem.addWhoClause( whoClauseDnAttr ); 
+}
+	:
+	ID_dnattr ( SP! )* EQUAL ( SP! )* token:ATTR_IDENT
+    {
+		whoClauseDnAttr.setAttribute( token.getText() );
+    };
+    
+who_group
+{
+    log.debug( "entered who_group()" );
+    //System.out.println( "entered who_group()" );
+    
+	AclWhoClauseGroup whoClauseGroup = new AclWhoClauseGroup();
+	aclItem.addWhoClause( whoClauseGroup ); 
+}
+	:
+	ID_group ( SLASH objectclass:ATTR_IDENT ( SLASH attrname:ATTR_IDENT )? )? ( DOT who_group_type )? EQUAL pattern:DOUBLE_QUOTED_STRING
+    {
+    	if ( objectclass != null )
+    	{
+			whoClauseGroup.setObjectclass( objectclass.getText() );
+    	}
+    	
+    	if ( attrname != null )
+    	{
+			whoClauseGroup.setAttribute( attrname.getText() );
+    	}
+    	
+    	if ( pattern != null )
+    	{
+			whoClauseGroup.setPattern( pattern.getText() );
+    	}
+    };
+    
+who_group_type
+{
+    log.debug( "entered who_group_type()" );
+    //System.out.println( "entered who_group_type()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    if ( !( whoClause instanceof AclWhoClauseGroup ) )
+    {
+        // Throw an exception ?
+        return;
+    }
+    AclWhoClauseGroup whoClauseGroup =  ( AclWhoClauseGroup ) whoClause;
+}
+	:
+	ID_exact
+    {
+    	whoClauseGroup.setType( AclWhoClauseGroupTypeEnum.EXACT );
+    }
+    |
+    ID_expand
+    {
+    	whoClauseGroup.setType( AclWhoClauseGroupTypeEnum.EXPAND );
+    }
+    ;
+
+who_dn
+{
+    log.debug( "entered who_dn()" );
+    //System.out.println( "entered who_dn()" );
+    
+	AclWhoClauseDn whoClauseDn = new AclWhoClauseDn();
+	aclItem.addWhoClause( whoClauseDn ); 
+}
+	:
+	ID_dn ( DOT who_dn_type ( SEP who_dn_modifier )? )? ( SP! )* EQUAL ( SP! )* token:DOUBLE_QUOTED_STRING
+    {
+		whoClauseDn.setPattern( token.getText() );
+    };
+
+who_dn_type
+{
+    log.debug( "entered who_dn_type()" );
+    //System.out.println( "entered who_dn_type()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    if ( !( whoClause instanceof AclWhoClauseDn ) )
+    {
+        // Throw an exception ?
+        return;
+    }
+    AclWhoClauseDn whoClauseDn =  ( AclWhoClauseDn ) whoClause;
+}
+	:
+	ID_regex
+    {
+    	whoClauseDn.setType( AclWhoClauseDnTypeEnum.REGEX );
+    }
+    |
+    ID_base
+    {
+    	whoClauseDn.setType( AclWhoClauseDnTypeEnum.BASE );
+    }
+    |
+    ID_exact
+    {
+    	whoClauseDn.setType( AclWhoClauseDnTypeEnum.EXACT );
+    }
+    |
+    ID_one
+    {
+    	whoClauseDn.setType( AclWhoClauseDnTypeEnum.ONE );
+    }
+    |
+    ID_subtree
+    {
+    	whoClauseDn.setType( AclWhoClauseDnTypeEnum.SUBTREE );
+    }
+    |
+    ID_children
+    {
+    	whoClauseDn.setType( AclWhoClauseDnTypeEnum.CHILDREN );
+    }
+    |
+    ID_level OPEN_CURLY token:INTEGER CLOSE_CURLY
+    {
+    	AclWhoClauseDnTypeEnum levelType = AclWhoClauseDnTypeEnum.LEVEL;
+    	levelType.setLevel( Integer.valueOf( token.getText() ) );
+    	whoClauseDn.setType( levelType );
+    }
+    ;
+    
+who_dn_modifier
+{
+    log.debug( "entered who_dn_modifier()" );
+    //System.out.println( "entered who_dn_modifier()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    if ( !( whoClause instanceof AclWhoClauseDn ) )
+    {
+        // Throw an exception ?
+        return;
+    }
+    AclWhoClauseDn whoClauseDn =  ( AclWhoClauseDn ) whoClause;
+}
+	:
+	ID_expand
+    {
+    	whoClauseDn.setModifier( AclWhoClauseDnModifierEnum.EXPAND );
+    }
+    ;
+    
+who_access_level
+{
+    log.debug( "entered who_access_level()" );
+    //System.out.println( "entered who_access_level()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    if ( whoClauses.size() == 0 )
+    {
+        // Throw an exception ?
+        return;
+    }
+    
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    
+    AclAccessLevel accessLevel = new AclAccessLevel();
+    whoClause.setAccessLevel( accessLevel );
+}
+	:
+	ID_self ( SP )+ ( who_access_level_level | who_access_level_priv )?
+	{
+        accessLevel.setSelf( true );
+	}
+	|
+	( who_access_level_level | who_access_level_priv )?
+	{
+        accessLevel.setSelf( false );
+	}
+	;
+	
+who_access_level_level
+{
+    log.debug( "entered who_access_level_level()" );
+    //System.out.println( "entered who_access_level_level()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    if ( whoClauses.size() == 0 )
+    {
+        // Throw an exception ?
+        return;
+    }
+    
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    
+    AclAccessLevel accessLevel = whoClause.getAccessLevel();
+    if ( accessLevel == null )
+    {
+        // Throw an exception ?
+        return;
+    }
+}
+	:
+	ID_manage
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.MANAGE );
+	}
+	|
+	ID_write
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.WRITE );
+	}
+	|
+	ID_read
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.READ );
+	}
+	|
+	ID_search
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.SEARCH );
+	}
+	|
+	ID_compare
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.COMPARE );
+	}
+	|
+	ID_auth
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.AUTH );
+	}
+	|
+	ID_disclose
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.DISCLOSE );
+	}
+	|
+	ID_none
+	{
+        accessLevel.setLevel( AclAccessLevelLevelEnum.NONE );
+	}
+	;
+	
+who_access_level_priv
+{
+    log.debug( "entered who_access_level_priv()" );
+    //System.out.println( "entered who_access_level_priv()" );
+}
+	:
+	who_access_level_priv_modifier  ( who_access_level_priv_priv )+
+	;
+	
+who_access_level_priv_modifier
+{
+    log.debug( "entered who_access_level_priv_modifier()" );
+    //System.out.println( "entered who_access_level_priv_modifier()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    if ( whoClauses.size() == 0 )
+    {
+        // Throw an exception ?
+        return;
+    }
+    
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    
+    AclAccessLevel accessLevel = whoClause.getAccessLevel();
+    if ( accessLevel == null )
+    {
+        // Throw an exception ?
+        return;
+    }
+}
+	:
+	EQUAL
+	{
+		accessLevel.setPrivilegeModifier( AclAccessLevelPrivModifierEnum.EQUAL );
+	}
+	|
+	PLUS
+	{
+		accessLevel.setPrivilegeModifier( AclAccessLevelPrivModifierEnum.PLUS );
+	}
+	|
+	MINUS
+	{
+		accessLevel.setPrivilegeModifier( AclAccessLevelPrivModifierEnum.MINUS );
+	}
+	;
+	
+who_access_level_priv_priv
+{
+    log.debug( "entered who_access_level_priv_priv()" );
+    //System.out.println( "entered who_access_level_priv_priv()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    if ( whoClauses.size() == 0 )
+    {
+        // Throw an exception ?
+        return;
+    }
+    
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+    
+    AclAccessLevel accessLevel = whoClause.getAccessLevel();
+    if ( accessLevel == null )
+    {
+        // Throw an exception ?
+        return;
+    }
+}
+	:
+	ID_m
+	{
+        accessLevel.addPrivilege( AclAccessLevelPrivilegeEnum.MANAGE );
+	}
+	|
+	ID_w
+	{
+        accessLevel.addPrivilege( AclAccessLevelPrivilegeEnum.WRITE );
+	}
+	|
+	ID_r
+	{
+        accessLevel.addPrivilege( AclAccessLevelPrivilegeEnum.READ );
+	}
+	|
+	ID_s
+	{
+        accessLevel.addPrivilege( AclAccessLevelPrivilegeEnum.SEARCH );
+	}
+	|
+	ID_c
+	{
+        accessLevel.addPrivilege( AclAccessLevelPrivilegeEnum.COMPARE );
+	}
+	|
+	ID_x
+	{
+        accessLevel.addPrivilege( AclAccessLevelPrivilegeEnum.AUTHENTICATION );
+	}
+	;
+	
+who_control
+{
+    log.debug( "entered who_control()" );
+    //System.out.println( "entered who_control()" );
+    
+    List<AclWhoClause> whoClauses = aclItem.getWhoClauses();
+    if ( whoClauses.size() == 0 )
+    {
+        // Throw an exception ?
+        return;
+    }
+    
+    AclWhoClause whoClause = aclItem.getWhoClauses().get( whoClauses.size() - 1 );
+}
+	:
+	ID_stop
+	{
+        whoClause.setControl( AclControlEnum.STOP );
+	}
+	|
+	ID_continue
+	{
+        whoClause.setControl( AclControlEnum.CONTINUE );
+	}
+	|
+	ID_break
+	{
+        whoClause.setControl( AclControlEnum.BREAK );
+	}
+	;
+	
+who_ssf
+{
+    log.debug( "entered who_ssf()" );
+    //System.out.println( "entered who_ssf()" );
+    
+	AclWhoClauseSsf whoClauseSsf = new AclWhoClauseSsf();
+	aclItem.addWhoClause( whoClauseSsf ); 
+}
+	:
+	strength:SSF
+	{
+        whoClauseSsf.setStrength( Integer.valueOf( strength.getText() ) );
+	}
+	;
+	
+who_transport_ssf
+{
+    log.debug( "entered who_transport_ssf()" );
+    //System.out.println( "entered who_transport_ssf()" );
+    
+	AclWhoClauseTransportSsf whoClauseTransportSsf = new AclWhoClauseTransportSsf();
+	aclItem.addWhoClause( whoClauseTransportSsf ); 
+}
+	:
+	strength:TRANSPORT_SSF
+	{
+        whoClauseTransportSsf.setStrength( Integer.valueOf( strength.getText() ) );
+	}
+	;
+	
+who_tls_ssf
+{
+    log.debug( "entered who_tls_ssf()" );
+    //System.out.println( "entered who_tls_ssf()" );
+    
+	AclWhoClauseTlsSsf whoClauseTlsSsf = new AclWhoClauseTlsSsf();
+	aclItem.addWhoClause( whoClauseTlsSsf ); 
+}
+	:
+	strength:TLS_SSF
+	{
+        whoClauseTlsSsf.setStrength( Integer.valueOf( strength.getText() ) );
+	}
+	;
+	
+who_sasl_ssf
+{
+    log.debug( "entered who_sasl_ssf()" );
+    //System.out.println( "entered who_sasl_ssf()" );
+    
+	AclWhoClauseSaslSsf whoClauseSaslSsf = new AclWhoClauseSaslSsf();
+	aclItem.addWhoClause( whoClauseSaslSsf ); 
+}
+	:
+	strength:SASL_SSF
+	{
+        whoClauseSaslSsf.setStrength( Integer.valueOf( strength.getText() ) );
+	}
+	;

Added: directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/Messages.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/Messages.java?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/Messages.java (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/Messages.java Thu Apr  2 16:14:26 2015
@@ -0,0 +1,50 @@
+/*
+ *  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.acl;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+
+public class Messages
+{
+    private static final String BUNDLE_NAME = "org.apache.directory.studio.openldap.config.acl.messages"; //$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.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPlugin.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPlugin.java?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPlugin.java (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPlugin.java Thu Apr  2 16:14:26 2015
@@ -0,0 +1,266 @@
+/*
+ *  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.acl;
+
+
+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.jface.text.templates.GlobalTemplateVariables;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
+import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import org.apache.directory.studio.openldap.config.acl.sourceeditor.OpenLdapAclCodeScanner;
+import org.apache.directory.studio.openldap.config.acl.sourceeditor.OpenLdapAclTextAttributeProvider;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class OpenLdapAclEditorPlugin extends AbstractUIPlugin
+{
+    /** The shared instance */
+    private static OpenLdapAclEditorPlugin plugin;
+
+    /** The shared OpenLDAP ACL Code Scanner */
+    private OpenLdapAclCodeScanner codeScanner;
+
+    /** The shared OpenLDAP ACL TextAttribute Provider */
+    private OpenLdapAclTextAttributeProvider textAttributeProvider;
+
+    /** The context type registry */
+    private ContributionContextTypeRegistry templateContextTypeRegistry;
+
+    /** The template store */
+    private ContributionTemplateStore templateStore;
+
+    /** The plugin properties */
+    private PropertyResourceBundle properties;
+
+
+    /**
+     * The constructor
+     */
+    public OpenLdapAclEditorPlugin()
+    {
+        plugin = this;
+    }
+
+
+    /**
+     * {@inheritDoc} 
+     */
+    public void start( BundleContext context ) throws Exception
+    {
+        super.start( context );
+
+        // OpenLDAP ACL Template ContextType Registry initialization
+        if ( templateContextTypeRegistry == null )
+        {
+            templateContextTypeRegistry = new ContributionContextTypeRegistry();
+
+            templateContextTypeRegistry.addContextType( OpenLdapAclEditorPluginConstants.TEMPLATE_ID );
+            templateContextTypeRegistry.getContextType( OpenLdapAclEditorPluginConstants.TEMPLATE_ID ).addResolver(
+                new GlobalTemplateVariables.Cursor() );
+        }
+
+        // OpenLDAP ACL Template Store initialization
+        if ( templateStore == null )
+        {
+            templateStore = new ContributionTemplateStore( getTemplateContextTypeRegistry(),
+                getPreferenceStore(), "templates" ); //$NON-NLS-1$
+            try
+            {
+                templateStore.load();
+            }
+            catch ( IOException e )
+            {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+    /**
+     * {@inheritDoc} 
+     */
+    public void stop( BundleContext context ) throws Exception
+    {
+        plugin = null;
+        super.stop( context );
+    }
+
+
+    /**
+     * Retuns the the OpenLDAP ACL Code Scanner
+     * 
+     * @return 
+     *      the the OpenLDAP ACL Code Scanner
+     */
+    public OpenLdapAclCodeScanner getCodeScanner()
+    {
+        if ( codeScanner == null )
+        {
+            codeScanner = new OpenLdapAclCodeScanner( getTextAttributeProvider() );
+        }
+        return codeScanner;
+    }
+
+
+    /**
+     * Returns the TextAttribute Provider
+     * 
+     * @return
+     *      the TextAttribute Provider
+     */
+    public OpenLdapAclTextAttributeProvider getTextAttributeProvider()
+    {
+        if ( textAttributeProvider == null )
+        {
+            textAttributeProvider = new OpenLdapAclTextAttributeProvider();
+        }
+        return textAttributeProvider;
+    }
+
+
+    /**
+     * Gets the OpenLDAP ACL Template ContextType Registry
+     *
+     * @return
+     *      the OpenLDAP ACL Template ContextType Registry
+     */
+    public ContributionContextTypeRegistry getTemplateContextTypeRegistry()
+    {
+        return templateContextTypeRegistry;
+    }
+
+
+    /**
+     * Gets the OpenLDAP ACL Template Store
+     *
+     * @return
+     *      the OpenLDAP ACL Template Store
+     */
+    public ContributionTemplateStore getTemplateStore()
+    {
+        return templateStore;
+    }
+
+
+    /**
+     * Returns the shared instance
+     *
+     * @return the shared instance
+     */
+    public static OpenLdapAclEditorPlugin getDefault()
+    {
+        return plugin;
+    }
+
+
+    /**
+     * Use this method to get SWT images. Use the IMG_ constants from
+     * ValueEditorConstants for the key.
+     * 
+     * @param key
+     *                The key (relative path to the image im filesystem)
+     * @return The image discriptor 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
+     * ValueEditorConstants 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 im filesystem)
+     * @return The SWT Image or null
+     * @see OpenLdapAclEditorPluginConstants
+     */
+    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.openldap.acl.editor", Status.OK, //$NON-NLS-1$
+                    Messages.getString( "OpenLdapAclEditorPlugin.UnableGetPluginProperties" ), e ) ); //$NON-NLS-1$
+            }
+        }
+
+        return properties;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPluginConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPluginConstants.java?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPluginConstants.java (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclEditorPluginConstants.java Thu Apr  2 16:14:26 2015
@@ -0,0 +1,57 @@
+/*
+ *  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.acl;
+
+
+/**
+ * Contains constants for the value editors.
+ * Final reference -> class shouldn't be extended
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public final class OpenLdapAclEditorPluginConstants
+{
+    /**
+     *  Ensures no construction of this class, also ensures there is no need for final keyword above
+     *  (Implicit super constructor is not visible for default constructor),
+     *  but is still self documenting.
+     */
+    private OpenLdapAclEditorPluginConstants()
+    {
+    }
+
+    /** The plug-in ID */
+    public static final String PLUGIN_ID = OpenLdapAclEditorPlugin.getDefault().getPluginProperties()
+        .getString( "Plugin_id" ); //$NON-NLS-1$
+
+    /** The ID for OpenLDAP ACL Template */
+    public static final String TEMPLATE_ID = OpenLdapAclEditorPlugin.getDefault().getPluginProperties()
+        .getString( "CtxType_Template_id" ); //$NON-NLS-1$
+
+    public static final String IMG_ADD = "resources/icons/add.gif"; //$NON-NLS-1$
+    public static final String IMG_DELETE = "resources/icons/delete.gif"; //$NON-NLS-1$
+    public static final String IMG_DOWN = "resources/icons/down.png"; //$NON-NLS-1$
+    public static final String IMG_EDITOR = "resources/icons/editor.gif"; //$NON-NLS-1$
+    public static final String IMG_KEYWORD = "resources/icons/keyword.gif"; //$NON-NLS-1$
+    public static final String IMG_UP = "resources/icons/up.png"; //$NON-NLS-1$
+    
+    public static final String DIALOGSETTING_KEY_ATTRIBUTES_HISTORY = "attributesHistory"; //$NON-NLS-1$
+
+}

Added: directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclValueWithContext.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclValueWithContext.java?rev=1670931&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclValueWithContext.java (added)
+++ directory/studio/trunk/plugins/openldap.acl.editor/src/main/java/org/apache/directory/studio/openldap/config/acl/OpenLdapAclValueWithContext.java Thu Apr  2 16:14:26 2015
@@ -0,0 +1,136 @@
+/*
+ *  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.acl;
+
+
+import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
+import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+
+
+/**
+ * The OpenLdapAclValueWithContext is used to pass contextual
+ * information to the opened OpenLdapAclDialog.
+ */
+public class OpenLdapAclValueWithContext
+{
+    /** The connection used to browse the directory */
+    private IBrowserConnection connection;
+
+    /** The entry */
+    private IEntry entry;
+
+    /** A flag indicating if precedence is used */
+    private boolean hasPrecedence = false;
+
+    /** The precedence value */
+    private int precedenceValue = -1;
+
+    /** The ACL value */
+    private String aclValue;
+
+
+    /**
+     * Creates a new instance of OpenLdapAclValueWithContext.
+     * 
+     * @param connection the connection
+     * @param entry the entry
+     * @param hasPrecedence a flag indicating if precedence is used
+     * @param precedenceValue the precedence value
+     * @param aclValue the ACL value
+     */
+    public OpenLdapAclValueWithContext( IBrowserConnection connection, IEntry entry, boolean hasPrecedence,
+        int precedenceValue, String aclValue )
+    {
+        this.connection = connection;
+        this.entry = entry;
+        this.hasPrecedence = hasPrecedence;
+        this.precedenceValue = precedenceValue;
+        this.aclValue = aclValue;
+    }
+
+
+    /**
+     * Gets the ACL value.
+     * 
+     * @return the ACL value
+     */
+    public String getAclValue()
+    {
+        return aclValue;
+    }
+
+
+    /**
+     * @return the connection
+     */
+    public IBrowserConnection getConnection()
+    {
+        return connection;
+    }
+
+
+    /**
+     * @return the entry
+     */
+    public IEntry getEntry()
+    {
+        return entry;
+    }
+
+
+    /**
+     * @return the precedence value
+     */
+    public int getPrecedenceValue()
+    {
+        return precedenceValue;
+    }
+
+
+    /**
+     * @return whether precedence is used or not
+     */
+    public boolean isHasPrecedence()
+    {
+        return hasPrecedence;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public String toString()
+    {
+        if (  aclValue != null )
+        {
+            if ( hasPrecedence )
+            {
+                return "{" + precedenceValue + "}" + aclValue;
+            }
+            else
+            {
+                return aclValue;
+            }
+        }
+        
+        
+        return "";
+    }
+}



Mime
View raw message