Paul Mcdaid wrote:
I'm investigating XCF-2698, but I've run into a more basic problem when
trying to add an LDAP server, I get an internal error.
However whenever I try to login to an LDAP Server (System->LDAP/AD->Add
LDAP Server), I get the following internal error that is pointing to
admin/ldap/LdapServer/ldapObjectClassPanel]: source is null for
getProperty(null, "objectClasses")
[context:/WEB-INF/admin/ldap/LdapServer.page, line 41, column 79]
It looks like it is not advisable to pass as parameters in tapestry
componets arrays like: String[]
"ognl" language doesn't work when you use values like this. It requires
"Object" data type
I made a fix when I send StringProperySelection object as parameter
instead of creating it using ognl and String[]
I made a properrty in LdapServerPage: getPropertyModel() and I persisted
it (the LDAP workflow requires this set of data in multiple requests)
I know that is not OK to persist Java objects (Damian won't like this :)
) but I didn't find other way.
However I attach the patch (may not be final but at least it is a start).
Mircea
>From 8355a4b2aed50b8d64f5ad932d98665a72394b0a Mon Sep 17 00:00:00 2001
From: root <[EMAIL PROTECTED]>
Date: Tue, 14 Oct 2008 17:51:47 +0300
Subject: [PATCH] LDAP
---
.../WEB-INF/admin/ldap/LdapObjectClassPanel.jwc | 6 ++++--
.../web/context/WEB-INF/admin/ldap/LdapServer.page | 3 ++-
.../sipxconfig/site/admin/ldap/LdapServer.java | 17 +++++++++++++++--
3 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/sipXconfig/web/context/WEB-INF/admin/ldap/LdapObjectClassPanel.jwc b/sipXconfig/web/context/WEB-INF/admin/ldap/LdapObjectClassPanel.jwc
index b0519b7..ee1876a 100644
--- a/sipXconfig/web/context/WEB-INF/admin/ldap/LdapObjectClassPanel.jwc
+++ b/sipXconfig/web/context/WEB-INF/admin/ldap/LdapObjectClassPanel.jwc
@@ -5,14 +5,16 @@
<!--
- P A R A M E T E R S
-->
- <parameter name="objectClasses" />
+ <!--<parameter name="objectClasses" />-->
+ <parameter name="propertySelectionModel" />
<parameter name="selectedObjectClasses" />
+
<!--
- C O M P O N E N T S
-->
<component id="objectClassSelection" type="contrib:MultiplePropertySelection">
- <binding name="model" value="new org.apache.tapestry.form.StringPropertySelectionModel(objectClasses)" />
+ <binding name="model" value="propertySelectionModel" />
<binding name="selectedList" value="selectedObjectClasses" />
</component>
diff --git a/sipXconfig/web/context/WEB-INF/admin/ldap/LdapServer.page b/sipXconfig/web/context/WEB-INF/admin/ldap/LdapServer.page
index c2d8dbe..7cab9f0 100644
--- a/sipXconfig/web/context/WEB-INF/admin/ldap/LdapServer.page
+++ b/sipXconfig/web/context/WEB-INF/admin/ldap/LdapServer.page
@@ -39,7 +39,8 @@
<!-- object class selection stage -->
<component id="ldapObjectClassPanel" type="admin/ldap/LdapObjectClassPanel">
- <binding name="objectClasses" value="schema.objectClassesNames" />
+<!-- <binding name="objectClasses" value="schema.objectClassesNames" />-->
+ <binding name="propertySelectionModel" value="propertyModel" />
<binding name="selectedObjectClasses" value="attrMap.selectedObjectClasses" />
</component>
<component id="applyObjectClassesSelection" type="Submit">
diff --git a/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ldap/LdapServer.java b/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ldap/LdapServer.java
index 4ce585a..815438d 100644
--- a/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ldap/LdapServer.java
+++ b/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ldap/LdapServer.java
@@ -11,13 +11,17 @@ package org.sipfoundry.sipxconfig.site.admin.ldap;
import java.util.Collection;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.tapestry.IPage;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.event.PageBeginRenderListener;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.form.IPropertySelectionModel;
import org.apache.tapestry.form.StringPropertySelectionModel;
import org.apache.tapestry.html.BasePage;
+import org.sipfoundry.sipxconfig.admin.mail.MailSenderContextImpl;
import org.sipfoundry.sipxconfig.bulk.ldap.AttrMap;
import org.sipfoundry.sipxconfig.bulk.ldap.LdapConnectionParams;
import org.sipfoundry.sipxconfig.bulk.ldap.LdapImportManager;
@@ -50,7 +54,14 @@ public abstract class LdapServer extends BasePage implements PageBeginRenderList
public abstract String[] getSelectedAttributes();
public abstract void setSelectedAttributes(String[] selectedAttributes);
-
+
+ @Persist
+ public abstract StringPropertySelectionModel getPropertyModel();
+
+ public abstract void setPropertyModel(StringPropertySelectionModel model);
+
+ private static final Log LOG = LogFactory.getLog(MailSenderContextImpl.class);
+
public void pageBeginRender(PageEvent event_) {
LdapManager ldapManager = getLdapManager();
if (getConnectionParams() == null) {
@@ -64,6 +75,8 @@ public abstract class LdapServer extends BasePage implements PageBeginRenderList
if (getStage() == null) {
setStage("connection");
}
+
+
}
public void applyConnectionParams() {
@@ -82,7 +95,7 @@ public abstract class LdapServer extends BasePage implements PageBeginRenderList
Schema schema = ldapManager.getSchema(attrMap.getSubschemaSubentry());
setSchema(schema);
-
+ setPropertyModel(new StringPropertySelectionModel( schema.getObjectClassesNames()));
setStage("objectClasses");
}
--
1.5.2.2
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev