On Sun, 26 May 2002 23:03, Jason wrote:
> > Personally, I have a feeling that we have to mount Beanshell into
> > Phoenix at some point. Either as a block, or as a value
> > added Kernel.
> > We could then allow telnet (or alike) into a running Phoenix
> > machine.
BTW there is already a telnet deamon on top of phoenix over on sourceforge ...
telnetd was project name IIRC.
> The idea of Beanshell being there raises a couple of questions in my
> mind though:
>
> 1. I'm assuming that a client would reflect into a block directory
> interface of some sort to find and use Beanshell. Does such a thing
> exist?
sort of. Any Block that wishes to expose it to the JMX management subsystem
needs to declare a "management interface" in it's BlockInfo file similar to
<management-access-point>
<service name="com.biz.MyJMXInterface"/>
</management-access-point>
And then it is accessible via a name like
application=Foo,name=myBlock,role=com.biz.MyJMXInterface
in JMX MBeanServer.
> 2. Likewise, Beanshell would have to find a way to do things to blocks.
> Is there a place to look up the loaded (not necessarily running)
> interfaces that takes into account all the possible Phoenix recursion
> gymnastics?
Not entirely. You can access some of the kernel components via their
Management interfaces (look in the phoenix.interfaces package for services
ending with MBean).
> As an aside, the reason I'm looking inside Phoenix at the moment is to
> harden it for use outside of a protected server environment. To ward off
> malicious code, I'd like it to distribute Phoenix and my app as a set of
> signed jars, and modify Phoenix to verify the jars before loading them.
Phoenix was originally designed for just that ;) I also had the requirement of
downloading remote jars and integrating them into a running system. ie you
download jars and add/replace services in a running kernel etc. However I was
the only one using it and eventually it got dropped as other things took
priority. I would definetly be interested in seeing what you come up with wrt
to this.
BTW probably the best place to do this would be to create a custom deployer
that did something like
class MyDeployer extends DefaultDeployer
{
protected void verify( final SarMetaData metaData,
final ClassLoader classLoader )
throws VerifyException
{
super.verify( metaData, classLoader );
//do your magic here
}
}
--
Cheers,
Peter Donald
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>