[prev in list] [next in list] [prev in thread] [next in thread]
List: openjms-developer
Subject: [openjms-developer] RE: Admin API and GUI
From: "Tim Anderson" <tma () netspace ! net ! au>
Date: 2003-07-29 15:58:22
[Download RAW message or body]
I've committed the changes as is, but I would like to see
modifications as described previously.
One thing to note is that with the current implementation,
it is still possible to invoke admin API methods with
an unauthenticated connection, simply by not invoking
connect().
This needs to be changed so that the admin connection
identifier is submitted with each admin request -
the server can verify this against the list of authenticated
admin connections before performing any operation.
Regards,
Tim
-----Original Message-----
From: Knut at work [mailto:knut.lerpold@royalhighgate.com]
Sent: Tuesday, 29 July 2003 6:56 PM
To: tma@netspace.net.au
Subject: Re: Admin API and GUI
----- Original Message -----
From: Tim Anderson
To: openjms-developer ; Knut at work
Sent: Tuesday, July 29, 2003 4:26 AM
Subject: RE: Admin API and GUI
Thanks Knut.
I'll commit the changes but I think the new admininistration API needs
to be
thought out more.
We can safely deprecate the existing admin API - you're effectively
working
with a clean slate so you don't need to be tied to the existing method
implementations. If need be, we can also add new JMSException subclasses
to indicate the reasons for failures. Some of the existing methods
confusingly
throw JMSException but also return a boolean status.
Some of the methods should not throw JMSException at all! User for
instance.
What about a own exception eg. AdminException??
Also connect() disconnect() - connect() need to be able to throw
JMSSecurityEx
but all other exeptions have somthing to do with the connection not JMS.
Im not very found of boolean statuses for methods doing
add/change/remove
I prefer either void or that they return the Object the are working
with.
All other 'returns' are Exceptions eg. add of a duplicate object is a
Exception not a false.
In particular, I don't see the advantage in separating the
JmsAdminServerIfc
into AdminConnection, MonitorConnection and SystemConnection.
My intention behind this was to separate according to Acl.
To be able to use Admin you must be eg. Administrator
To be able to use MonitorConnection (only read access) it is mabe enough
to have AdminReadOnly.....
Also I find it possible to e.g. write a stand alone appl. to monitor the
system.
I would prefer AdminConnection to be the main interface - this would
provide access to destination, security, and server management objects.
E.g:
AdminConnectionFactory - create an AdminConnection.
AdminConnection - provides access to Destinations, Security, and
Server
objects.
Destinations - topic and queue management.
Server - server management. Probably only a single
method
for the moment, i.e shutdown()
This Is this equal to what I called SystemConnection so we agree on
this.
Security - user, and in future, ACL management
I agree on the separation in Destination/Security when it comes to how
to build the GUI.
But as a Interface this looks like subinterfaces of what I called
AdminConnection.
Reason: Needs the same accesslevel and I likely the user will need both
interfaces in
the same application.
Also, it would be nice if in future the code you submit followed coding
conventions ;)
Of course, but where do I find the conventions??
I'm aiming to have the maven build env complete in a week or so - one of
the nice
things it does is include checkstyle reports, so its easy to see what
needs to be
changed.
Regards,
Tim
-----Original Message-----
From: Knut at work [mailto:knut.lerpold@royalhighgate.com]
Sent: Tuesday, 29 July 2003 3:14 AM
To: tma@netspace.net.au
Subject: Admin API and GUI
All src. is based on the latest version from the CVS.
Have made only minimum requirement on the GUI since Im going to
rewrite this during this autumn.
Have not impl. Logon for offlineConnection
Classes that have changed name;
AdminConnection --> AbstractAdminConnection -- needed the
AdminConnection for the new connection-interface
OpenJMSDestination --> OpenJMSObject -- needed this for OpenJMSUser
as well, thought the name was a bit misleading.
New classes;
CreateLogonDialog
CreateUserDialog
ChangePasswordDialog
OpenJMSUser
OpenJMSObject <--- replace OpenJMSDestination
AbstractAdminConnection <--- replace AdminConnection
I have rewritten how to obtain administred connections:
classes;
ConnectionFactory
interfaces:
Connect <--- contains only connect() and disconnect() is
package-private.
AdminConnection <---
---- Replaces the old
JmsAdminServerIfc
MonitorConnection <---
SystemConnection <--- Not impl. to be used to configure the server:
cache, log, acceptors etc.
Have deprecated JmsAdminServerIfc and AdminConnectionFactory
Modified classes;
see Zip-file.
Have been trying to run a diff against the cvs but the operation gets
canceled evry time so Im afraid you will have to do that .....
K
[Attachment #3 (text/html)]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1170" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>I've
committed the changes as is, but I would like to see</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003>modifications as described
previously.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>One
thing to note is that with the current implementation,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>it is
still possible to invoke admin API methods with</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>an
unauthenticated connection, simply by not invoking</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003>connect().</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>This
needs to be changed so that the admin connection</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003>identifier is submitted with each admin request
- </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>the
server can verify this against the list
of authenticated</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=276235115-29072003>admin
connections before performing any operation.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003>Regards,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=276235115-29072003>Tim</SPAN></FONT></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; \
MARGIN-RIGHT: 0px"> <DIV class=OutlookMessageHeader dir=ltr align=left><FONT \
face=Tahoma size=2>-----Original Message-----<BR><B>From:</B> Knut at work
[mailto:knut.lerpold@royalhighgate.com]<BR><B>Sent:</B> Tuesday, 29 July 2003
6:56 PM<BR><B>To:</B> tma@netspace.net.au<BR><B>Subject:</B> Re: Admin API and
GUI<BR><BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: \
#000000 2px solid; MARGIN-RIGHT: 0px"> <DIV style="FONT: 10pt arial">----- Original \
Message ----- </DIV> <DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=tma@netspace.net.au href="mailto:tma@netspace.net.au">Tim
Anderson</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=openjms-developer@lists.sourceforge.net
href="mailto:openjms-developer@lists.sourceforge.net">openjms-developer</A>
; <A title=knut.lerpold@royalhighgate.com
href="mailto:knut.lerpold@royalhighgate.com">Knut at work</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, July 29, 2003 4:26
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> RE: Admin API and GUI</DIV>
<DIV><FONT face=Arial size=2></FONT><BR></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>Thanks Knut.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>I'll commit the changes but I think the new
admininistration API needs to be </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>thought out more.
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>We
can safely deprecate the existing admin API - you're effectively
working </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>with a clean slate so you don't need to be tied to
the existing method </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>implementations. If need be, we can also add new
JMSException subclasses</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>to
indicate the reasons for failures. Some of the existing methods
confusingly</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>throw JMSException but also return a boolean
status.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>Some of the methods should not throw JMSException
at all! User for instance.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>What about a own exception eg.
AdminException??</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>Also connect() disconnect() - connect() need to be
able to throw JMSSecurityEx</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>but all other exeptions have somthing to do with
the connection not JMS.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>Im
not very found of boolean statuses for methods doing add/change/remove
</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>I
prefer either void or that they return the Object the are working
with.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>All other 'returns' are Exceptions eg. add of a
duplicate object is a </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>Exception not a false.</SPAN></FONT></DIV>
<DIV></SPAN></FONT><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>In
particular, I don't see the advantage in separating the
JmsAdminServerIfc</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>into AdminConnection, MonitorConnection and
SystemConnection.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>My
intention behind this was to separate according to Acl. </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>To
be able to use Admin you must be eg. Administrator</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>To
be able to use MonitorConnection (only read access) it is mabe enough to
have AdminReadOnly..... </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>Also I find it possible to e.g. write a stand alone
appl. to monitor the system.</SPAN></FONT></DIV></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>I
would prefer AdminConnection to be the main interface - this
would</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>provide access to destination, security, and server
management objects.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>E.g:</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003> AdminConnectionFactory - create an
AdminConnection.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003> AdminConnection - provides access to
Destinations, Security, and Server</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003> &nb \
sp; \
objects.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>
Destinations - topic and
queue management.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV></SPAN></FONT></DIV></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>
Server \
- server management. Probably only a single method</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003> &nb \
sp; \
for the moment, i.e shutdown()</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003>This Is this equal to what I called
SystemConnection so we agree on
this.</SPAN></FONT></DIV></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>
Security \
- user, and in future, ACL management</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=041455603-29072003><SPAN
class=041455603-29072003>I agree on the separation in Destination/Security
when it comes to how to build the GUI.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=041455603-29072003><SPAN
class=041455603-29072003>But as a Interface this looks like subinterfaces of
what I called AdminConnection.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=041455603-29072003><SPAN
class=041455603-29072003>Reason: Needs the same accesslevel and I likely the
user will need both interfaces in </SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=041455603-29072003><SPAN
class=041455603-29072003>the same application. </SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=041455603-29072003><SPAN
class=041455603-29072003></SPAN></SPAN></FONT><FONT face=Arial color=#0000ff
size=2><SPAN class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>Also, it would be nice if in future the code you
submit followed coding conventions ;)</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>
<DIV><FONT face=Arial color=#000000 size=2><SPAN class=041455603-29072003>Of
course, but where do I find the
conventions??</SPAN></FONT></DIV></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=041455603-29072003>
<DIV><FONT face=Arial color=#000000 size=2><SPAN
class=041455603-29072003><SPAN
class=041455603-29072003></SPAN></SPAN></FONT></DIV></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>I'm aiming to have the maven build
env complete in a week or so - one of the nice</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>things it does is include checkstyle reports, so
its easy to see what needs to be </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>changed.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>Regards,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003>Tim</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=041455603-29072003></SPAN></FONT> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; \
MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma
size=2>-----Original Message-----<BR><B>From:</B> Knut at work
[mailto:knut.lerpold@royalhighgate.com]<BR><B>Sent:</B> Tuesday, 29 July
2003 3:14 AM<BR><B>To:</B> tma@netspace.net.au<BR><B>Subject:</B> Admin
API and GUI<BR><BR></FONT></DIV>
<DIV><FONT face=Arial size=2>All src. is based on the latest version from
the CVS.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Have made only minimum requirement on the GUI
since Im going to rewrite this during this autumn. <BR>Have not impl.
Logon for offlineConnection</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV><FONT face=Arial size=2>
<DIV><BR>Classes that have changed name;</DIV>
<DIV> </DIV>
<DIV>AdminConnection --> AbstractAdminConnection --
needed the AdminConnection for the new
connection-interface<BR>OpenJMSDestination -->
OpenJMSObject -- needed this for OpenJMSUser as well, thought the
name was a bit misleading.</DIV>
<DIV><FONT color=#0000ff></FONT><FONT color=#0000ff></FONT> </DIV>
<DIV>New
classes;<BR>CreateLogonDialog<BR>CreateUserDialog<BR>ChangePasswordDialog<BR>OpenJMSUser<BR>OpenJMSObject \
<--- replace OpenJMSDestination<BR>AbstractAdminConnection
<--- replace AdminConnection</DIV>
<DIV><BR>I have rewritten how to obtain administred
connections:<BR>classes;<BR>ConnectionFactory</DIV>
<DIV> </DIV>
<DIV>interfaces:</DIV>
<DIV>Connect
<--- contains only connect() and disconnect() is
package-private.<BR>AdminConnection <---
<BR> &nbs \
p; \
---- Replaces the old JmsAdminServerIfc
<BR>MonitorConnection <--- <BR>SystemConnection
<--- Not impl. to be used to configure the server: cache, log,
acceptors etc.</DIV>
<DIV> </DIV>
<DIV>Have deprecated JmsAdminServerIfc and AdminConnectionFactory</DIV>
<DIV> </DIV>
<DIV><BR>Modified classes;</DIV>
<DIV>see Zip-file.</DIV>
<DIV>Have been trying to run a diff against the cvs but the operation gets
canceled evry time so Im afraid you will have to do that .....</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>K</FONT></DIV></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
openjms-developer mailing list
openjms-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openjms-developer
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic