[AG-TECH] adding shared apps
Brian Corrie
brian.corrie at newmic.com
Wed Sep 17 18:29:29 CDT 2003
Hi Ivan, others,
Although I didn't save the email, you replied to Dave's email in some detail
about how to register a shared app using AG2.0 (see
http://www-unix.mcs.anl.gov/web-mail-archive/lists/ag-tech/2003/08/msg00242.h
tml). At the end of the email you say that 2.1.1 will be easier. Is there any
documentation on how to do this with 2.1.1. The same question for adding
services to a Venue. There doesn't seem to be a mailcap file for AG2.1.1
services or apps.
Any pointers?
Brian
> -----Original Message-----
> From: Ivan R. Judson [mailto:judson at mcs.anl.gov]
> Sent: Monday, August 25, 2003 12:20 PM
> To: 'Dave Semeraro'; ag-tech at mcs.anl.gov
> Subject: RE: [AG-TECH] adding shared apps
>
>
>
>
> Hey Dave,
>
> Sorry this took so long. I'm actually at home sick today, but
> I wanted to
> let you know how "new" (aka 2.1.1) applications register
> themselves with the
> user environment.
>
> Here's an example from the SharedPresentation.py:
>
> # This function registers the application with the users environment
> # There is no longer support for shared application installations
> # that might be reintroduced later.
>
> def registerApp(fileName):
> import AccessGrid.Toolkit as Toolkit
> app = Toolkit.CmdlineApplication()
> appdb = app.GetAppDatabase()
>
> # Get just the filename
> fn = os.path.split(fileName)[1]
>
> # Find the app dir
> uad = Platform.GetUserAppPath()
>
> # Get the absolute path for copying the file
> src = os.path.abspath(fn)
>
> # Get the destination filename
> dest = os.path.join(uad, fn)
>
> exeCmd = sys.executable + " \"" + dest + "\" -a %(appUrl)s"
>
> print "SRC: %s DST: %s CMD: %s" % (src, dest, exeCmd)
>
> # Copy the file
> try:
> shutil.copyfile(src, dest)
> except IOError:
> print "Couldn't copy app into place, bailing."
> sys.exit(1)
>
> # Call the registration method on the applications database
> appdb.RegisterApplication("Shared Presentation",
> "application/x-ag-shared-presentation",
> "sharedpresentation",
> {"Open" : exeCmd })
>
>
> I'm not going to say this is the final solution for registering
> applications, but it is closer. It provides far more
> flexibility in what a
> shared app can be. The developer is responsible for writing
> this register
> function, and briefly the way it works is to:
>
> 1) Query the toolkit for the user's application path (where
> to install ag
> specific apps)
> 2) Copy the files there (in some application specific method)
> the shared presentation viewer just copies the
> SharedPresentation.py to the apps dir
> 3) Calls the application database register application function
> This function takes the application name (e.g. "Shared
> Presentation"), the application mimetype
> ("application/x-ag-shared-presentation"), the application extension
> ("sharedpresentation"), and then a python dictionary of
> commands to register
> the shared presentation only registers the "Open" command.
>
> Some of the grungy details for this include, using sys.executable (the
> invoking python interpreter) as the command, taking the copied script
> "\Documents and Settings\judson\Application
> Data\AccessGrid\SharedApplications\SharedPresentation.py" as the first
> argument. It also makes use of pythons named arguments, so it
> says "-a"
> (shared app option for the application url), "%(appUrl)s"
> which will get the
> applicatoin url substituted in when invoked.
>
> There are a number of named arguments that are available,
> some are context
> (data, app, service) dependant, and some are not intended to
> be permanent.
> I'll be working on documentation that describes all of this
> in the very near
> future.
> From down in the "if __name__ == "__main__":" section:
>
> This is just used to make it so that if you run
> > SharedPresentation.py -r
>
> It'll register the application for you into your client
> environment. It
> calls the above method.
>
> elif o in ("-r", "--register"):
> registerApp(sys.argv[0])
> sys.exit(0)
>
> I'm a bit delirious from being sick (and medicated) so if
> there are any
> questions feel free to send them to the list.
>
> --Ivan
>
> > -----Original Message-----
> > From: Dave Semeraro [mailto:semeraro at ncsa.uiuc.edu]
> > Sent: Monday, August 25, 2003 8:48 AM
> > To: judson at mcs.anl.gov; ag-tech at mcs.anl.gov
> > Subject: RE: [AG-TECH] adding shared apps
> >
> >
> >
> > OK Ivan,
> >
> > I see the 2.1 release note on AG-TECH. Now how about telling
> > me how to
> > register a shared
> > application? First let me say I dont want to upgrade to 2.1
> > yet. I have a
> > local server running and
> > upgrading would mean changing several machines. I also want
> > to know the
> > details of the
> > process of getting a shared app to work. I dont want to
> just turn the
> > crank. So lets have it...
> > Enquiring minds want to know!
> >
> > Dave
> > At 11:04 AM 8/22/2003 -0500, Ivan R. Judson wrote:
> >
> > >Hi Dave,
> > >
> > >The good news is here, but let me start with this:
> > >
> > >COOL WORK.
> > >
> > >First, let me tell you, we're about to release 2.1.1 which will
> > >significantly rework the application registration process.
> > HOWEVER, 1)
> > >that won't change your application, and 2) it should be A
> LOT EASIER.
> > >
> > >2.1.1 is in the pipe, metaphors aside, it should see the
> > light of day
> > >sometime today, later. We're testing and squishing the last bugs.
> > >
> > >--Ivan
> > >
> > >PS -- As soon as I finish what I'm doing right now (which is
> > making the
> > >current shared apps register the new way, I'll send along a
> > snippet of
> > >code that shows how to do this)
> > >
> > > > -----Original Message-----
> > > > From: owner-ag-tech at mcs.anl.gov
> > [mailto:owner-ag-tech at mcs.anl.gov]
> > > > On Behalf Of Dave Semeraro
> > > > Sent: Friday, August 22, 2003 10:34 AM
> > > > To: ag-tech at mcs.anl.gov
> > > > Subject: [AG-TECH] adding shared apps
> > > >
> > > >
> > > >
> > > > OK guys and gals,
> > > >
> > > > I have written a shared application for the AG. I want to
> > know how
> > > > to "register" it so it will work. I have done the following:
> > > >
> > > > Wrote a shared chat program based loosely on the shared
> > browser. ( I
> > > > know the venue client has
> > > > one)
> > > >
> > > > I added the application to the mailcap file in C:\Documents and
> > > > Settings\All Users\Application Data\AccessGrid.
> > > >
> > > > I then put the application python script in the directory
> > > > C:\Documents and Settings\All Users\Application
> > > > Data\AccessGrid\applications\SharedBlather
> > > >
> > > > When I fire up the VenueClient and right click on the
> > applications
> > > > button I am presented with
> > > > three options, shared presentation, shared browser, and
> > > > shared blather.
> > > >
> > > > I select shared blather and get:
> > > >
> > > > "No client registered for the selected application"
> > > >
> > > > So what does a guy have to do to get the application to
> start. It
> > > > may be starting and crashing
> > > > for all I know. Cant debug it until I get it to start...
> > > >
> > > > As usual any help will be greatly appreciated.
> > > >
> > > > Dave Semeraro Ph.D.
> > > > Visualization and Virtual Environments Group
> > > > NCSA University of Illinois
> > > > 605 E. Springfield Ave.
> > > > Champaign, IL 61820
> > > > Semeraro at ncsa.uiuc.edu
> > > > (217) 244-1852
> > > >
> >
> > Dave Semeraro Ph.D.
> > Visualization and Virtual Environments Group
> > NCSA University of Illinois
> > 605 E. Springfield Ave.
> > Champaign, IL 61820
> > Semeraro at ncsa.uiuc.edu
> > (217) 244-1852
> >
>
>
More information about the ag-tech
mailing list