• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Changeset
  • Next Changeset →

Changeset 1362

Show
Ignore:
Timestamp:
03/14/07 07:45:37 (21 months ago)
Author:
jmoore
Message:
  • #614 Initial work for License integration with OmeroBlitz
  • tools/licenses now depends on blitz and ice
  • Added omero.api.ServiceInterface
  • Added ServiceFactory.getByName() and ServantDefinition for loading unknown services
  • Added session messages so others can hook into creation
  • Added first license exception
  • Also fixed dropped exceptions on login in OMERO::client
Location:
trunk/components
Files:
8 added
9 modified

  • blitz/resources/slice/API.ice (modified) (13 diffs)
  • blitz/resources/slice/Error.ice (modified) (2 diffs)
  • blitz/src/cpp/OMERO/client.cpp (modified) (2 diffs)
  • blitz/src/cpp/OMERO/client.h (modified) (1 diff)
  • blitz/src/ome/services/icy/fire/SessionManagerI.java (modified) (6 diffs)
  • blitz/src/ome/services/icy/impl/ServiceFactoryI.java (modified) (7 diffs)
  • blitz/src/ome/services/icy/util/AbstractSessionMessage.java (added)
  • blitz/src/ome/services/icy/util/CreateSessionMessage.java (added)
  • blitz/src/ome/services/icy/util/DestroySessionMessage.java (added)
  • blitz/src/ome/services/icy/util/ServantDefinition.java (added)
  • blitz/src/ome/services/icy/util/UnregisterServantMessage.java (modified) (4 diffs)
  • tools/licenses/.classpath (modified) (1 diff)
  • tools/licenses/classpath.xml (modified) (4 diffs)
  • tools/licenses/resources/ome/services/blitz-ome.services.licenses.ILicense.xml (added)
  • tools/licenses/resources/slice (added)
  • tools/licenses/resources/slice/LicensesAPI.ice (added)
  • tools/licenses/src/ome/services/licenses/LicenseSessionListener.java (added)

Legend:

Unmodified
Added
Removed
  • trunk/components/blitz/resources/slice/API.ice

    r1351 r1362  
    3838    sequence<string> StringSet; 
    3939 
    40     interface IAdmin 
     40    interface ServiceInterface 
     41    { 
     42    }; 
     43 
     44    interface IAdmin extends ServiceInterface 
    4145    { 
    4246     
    … …  
    8286    };   
    8387 
    84     interface IConfig 
     88    interface IConfig extends ServiceInterface 
    8589    { 
    8690      nonmutating string getVersion() throws ServerError; 
    … …  
    9296 
    9397 
    94     interface IPixels 
     98    interface IPixels extends ServiceInterface 
    9599    { 
    96100      nonmutating omero::model::Pixels retrievePixDescription(long pixId) throws ServerError; 
    … …  
    106110    dictionary<int, int> CountMap; 
    107111 
    108     interface IPojos 
     112    interface IPojos extends ServiceInterface 
    109113    { 
    110114      nonmutating IObjectList loadContainerHierarchy(string rootType, omero::api::LongList rootIds, omero::sys::ParamMap options) throws ServerError; 
    … …  
    127131    }; 
    128132 
    129     interface IQuery 
     133    interface IQuery extends ServiceInterface 
    130134    { 
    131135      nonmutating omero::model::IObject get(string klass, long id) throws ServerError; 
    … …  
    141145    }; 
    142146 
    143     interface ITypes 
     147    interface ITypes extends ServiceInterface 
    144148    { 
    145149      omero::model::IObject createEnumeration(omero::model::IObject newEnum) throws ServerError; 
    … …  
    148152    }; 
    149153 
    150     interface IUpdate 
     154    interface IUpdate extends ServiceInterface 
    151155    {  
    152156      void saveObject(omero::model::IObject obj) throws ServerError; 
    … …  
    157161    }; 
    158162 
    159     interface RawFileStore 
     163    interface RawFileStore extends ServiceInterface 
    160164    { 
    161165      void setFileId(long fileId) throws ServerError; 
    … …  
    164168    }; 
    165169 
    166     interface RawPixelsStore 
     170    interface RawPixelsStore extends ServiceInterface 
    167171    { 
    168172      void setPixelsId(long pixelsId) throws ServerError; 
    … …  
    189193    }; 
    190194 
    191     interface RenderingEngine 
     195    interface RenderingEngine extends ServiceInterface 
    192196    { 
    193197      omero::romio::RGBBuffer render(omero::romio::PlaneDef def) throws ServerError; 
    … …  
    227231    }; 
    228232 
    229     interface ThumbnailStore  
     233    interface ThumbnailStore extends ServiceInterface 
    230234    { 
    231235      void setPixelsId(long pixelsId) throws ServerError; 
    … …  
    240244    }; 
    241245 
    242     interface SimpleCallback { 
     246    interface SimpleCallback  
     247    { 
    243248      void call(); 
    244249    }; 
    … …  
    260265      ThumbnailStore* createThumbnailStore(); 
    261266 
     267      ServiceInterface* getByName(string name) throws ServerError; 
    262268      void setCallback(SimpleCallback* callback); 
    263269      void close(); 
  • trunk/components/blitz/resources/slice/Error.ice

    r1303 r1362  
    1010#define OMERO_ERROR_ICE 
    1111 
     12#include <Glacier2/Session.ice> 
     13 
    1214module omero 
    1315{ 
    … …  
    1719        string serverExceptionClass; 
    1820        string message; 
     21    }; 
     22 
     23    exception SessionCreationException extends Glacier2::CannotCreateSessionException 
     24    { 
    1925    }; 
    2026     
  • trunk/components/blitz/src/cpp/OMERO/client.cpp

    r1352 r1362  
    3939    Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(prx); 
    4040    Glacier2::SessionPrx session; 
    41     try 
    42       { 
    43         session = router->createSession(username, password); 
    44       } 
    45     catch(const Glacier2::PermissionDeniedException& ex) 
    46       { 
    47         cout << "permission denied:\n" << ex.reason << endl; 
    48       } 
    49     catch(const Glacier2::CannotCreateSessionException& ex) 
    50       { 
    51         cout << "cannot create session:\n" << ex.reason << endl; 
    52       } 
     41    session = router->createSession(username, password); 
    5342    sf = omero::api::ServiceFactoryPrx::checkedCast(session); 
    54      
     43 
    5544  } 
    5645   
    … …  
    9988  } 
    10089 
     90  Ice::ObjectPrx client::getByName(const string& name, const ::Ice::Context& ctx) { 
     91    return sf->getByName(name, ctx); 
     92  } 
     93 
    10194  void client::setCallback(const ::omero::api::SimpleCallbackPrx& cb, const ::Ice::Context& ctx) { 
    10295    sf->setCallback(cb, ctx); 
  • trunk/components/blitz/src/cpp/OMERO/client.h

    r1352 r1362  
    7474    omero::api::RenderingEnginePrx createRenderingEngine(const ::Ice::Context& ctx); 
    7575    omero::api::ThumbnailStorePrx createThumbnailStore(const ::Ice::Context& ctx); 
     76    Ice::ObjectPrx getByName(const std::string& name, const ::Ice::Context& ctx); 
     77 
    7678    /* 
    7779     * Closes the session AND all proxies created by it. 
  • trunk/components/blitz/src/ome/services/icy/fire/SessionManagerI.java

    r1311 r1362  
    99 
    1010import java.util.List; 
     11import java.util.Map; 
    1112 
     13import ome.conditions.InternalException; 
    1214import ome.logic.HardWiredInterceptor; 
    1315import ome.security.SecuritySystem; 
     16import ome.services.icy.config.IceFacetFactoryBean; 
     17import ome.services.icy.util.CreateSessionMessage; 
    1418import ome.system.OmeroContext; 
    1519import ome.system.Principal; 
    1620import ome.system.Roles; 
     21import ome.util.messages.MessageException; 
    1722import omero.constants.EVENT; 
    1823import omero.constants.GROUP; 
    … …  
    2126import org.apache.commons.logging.LogFactory; 
    2227import org.springframework.beans.BeansException; 
     28import org.springframework.beans.factory.BeanFactoryUtils; 
    2329import org.springframework.context.ApplicationContext; 
    2430import org.springframework.context.ApplicationContextAware; 
     31 
     32import Glacier2.CannotCreateSessionException; 
    2533 
    2634public final class SessionManagerI extends Glacier2._SessionManagerDisp 
    … …  
    4654            } 
    4755        } 
     56         
    4857    } 
    4958     
    … …  
    5463 
    5564    public Glacier2.SessionPrx create(String userId, 
    56             Glacier2.SessionControlPrx control, Ice.Current current) { 
     65            Glacier2.SessionControlPrx control, Ice.Current current)  
     66        throws CannotCreateSessionException { 
    5767 
    5868        Roles roles = securitySystem.getSecurityRoles(); 
    … …  
    7282        session.setInterceptors(CPTORS); 
    7383 
     84        Ice.Identity id = new Ice.Identity(); 
     85        id.category = ""; 
     86        id.name = Ice.Util.generateUUID(); 
     87        Ice.ObjectPrx _prx = current.adapter.add(session,id); 
     88        Glacier2.SessionPrx prx = Glacier2.SessionPrxHelper.uncheckedCast(_prx); 
     89         
    7490        if (log.isDebugEnabled()) { 
    7591            log.debug(String.format("Created session %s for user %s", session, 
    … …  
    7793        } 
    7894 
    79         return Glacier2.SessionPrxHelper.uncheckedCast(current.adapter 
    80                 .addWithUUID(session)); 
     95        CreateSessionMessage msg = new CreateSessionMessage(this,id.name,principal); 
     96        try { 
     97            context.publishMessage(msg); 
     98        } catch (CannotCreateSessionException ccse) { 
     99            throw ccse; 
     100        } catch (Throwable t) { 
     101            // FIXME this copying should be a part of ome.conditions.* 
     102            InternalException ie = new InternalException(t.getMessage()); 
     103            ie.setStackTrace(t.getStackTrace()); 
     104            throw ie; 
     105        } 
     106        return prx; 
    81107    } 
    82108     
  • trunk/components/blitz/src/ome/services/icy/impl/ServiceFactoryI.java

    r1306 r1362  
    88package ome.services.icy.impl; 
    99 
     10import java.lang.reflect.Constructor; 
     11import java.lang.reflect.InvocationTargetException; 
    1012import java.util.Collections; 
    1113import java.util.HashSet; 
    … …  
    2628import ome.api.ServiceInterface; 
    2729import ome.api.ThumbnailStore; 
     30import ome.conditions.InternalException; 
    2831import ome.logic.HardWiredInterceptor; 
    2932import ome.services.icy.fire.AopContextInitializer; 
    3033import ome.services.icy.fire.Session; 
     34import ome.services.icy.util.DestroySessionMessage; 
     35import ome.services.icy.util.ServantDefinition; 
    3136import ome.services.icy.util.ServantHelper; 
    3237import ome.services.icy.util.UnregisterServantMessage; 
    … …  
    3540import ome.system.ServiceFactory; 
    3641import omeis.providers.re.RenderingEngine; 
     42import omero.ServerError; 
    3743import omero.api.IAdminPrx; 
    3844import omero.api.IAdminPrxHelper; 
    … …  
    5359import omero.api.RenderingEnginePrx; 
    5460import omero.api.RenderingEnginePrxHelper; 
     61import omero.api.ServiceInterfacePrx; 
     62import omero.api.ServiceInterfacePrxHelper; 
    5563import omero.api.SimpleCallbackPrx; 
    5664import omero.api.ThumbnailStorePrx; 
    … …  
    8593import org.springframework.aop.framework.ProxyFactory; 
    8694import org.springframework.beans.BeansException; 
     95import org.springframework.beans.factory.BeanFactoryUtils; 
    8796import org.springframework.context.ApplicationContext; 
    8897import org.springframework.context.ApplicationContextAware; 
    8998import org.springframework.context.ApplicationEvent; 
    9099import org.springframework.context.ApplicationListener; 
     100 
     101import Ice.Current; 
     102import Ice.ObjectPrx; 
    91103 
    92104/** 
    … …  
    325337    // ========================================================================= 
    326338 
     339    public ServiceInterfacePrx getByName(String name, Current current) throws ServerError { 
     340        Ice.Identity id = getIdentity(current, name); 
     341        String key = Ice.Util.identityToString(id); 
     342 
     343        Ice.ObjectPrx prx = servantProxy(id, current); 
     344        if (prx == null) { 
     345            ServantDefinition sd = (ServantDefinition) context.getBean(name); 
     346            Object servant; 
     347            try { 
     348                Object ops = createServantDelegate(sd.getOperationsClass(), sd 
     349                        .getServiceClass(), key); 
     350                Constructor ctor = sd.getTieClass().getConstructor( 
     351                        sd.getOperationsClass()); 
     352                servant = ctor.newInstance(ops); 
     353                prx = registerServant(sd.getOperationsClass().cast(servant), current, id); 
     354            } catch (Exception e) { 
     355                // FIXME 
     356                omero.InternalException ie = new omero.InternalException(); 
     357                ie.message = e.getMessage(); 
     358                throw ie; 
     359            }             
     360        } 
     361        return ServiceInterfacePrxHelper.uncheckedCast(prx); 
     362    } 
     363     
    327364    public void setCallback(SimpleCallbackPrx callback, Ice.Current current) { 
    328365        throw new UnsupportedOperationException(); 
    … …  
    344381        } 
    345382        close(current); 
     383        DestroySessionMessage msg = new DestroySessionMessage(this,current.id.name,principal); 
     384        try { 
     385            context.publishMessage(msg); 
     386        } catch (Throwable t) { 
     387            // FIXME 
     388            InternalException ie = new InternalException(t.getMessage()); 
     389            ie.setStackTrace(t.getStackTrace()); 
     390        } 
    346391    } 
    347392 
  • trunk/components/blitz/src/ome/services/icy/util/UnregisterServantMessage.java

    r1304 r1362  
     1/* 
     2 *   $Id$ 
     3 * 
     4 *   Copyright (c) 2007 Glencoe Software Inc. All rights reserved. 
     5 *   Use is subject to license terms supplied in LICENSE.txt 
     6 */ 
     7 
    18package ome.services.icy.util; 
    29 
    … …  
    1320import ome.system.OmeroContext; 
    1421import ome.util.Filterable; 
     22import ome.util.messages.InternalMessage; 
    1523import omero.RType; 
    1624import omero.ServerError; 
    … …  
    2028 
    2129/** 
    22  * Provides helper methods so that servant implementations need not extend a 
    23  * particular {@link Class}. 
    24  *  
    2530 * @author josh 
    2631 *  
    2732 */ 
    28 public class UnregisterServantMessage extends ApplicationEvent { 
     33public class UnregisterServantMessage extends InternalMessage { 
     34 
     35    private static final long serialVersionUID = 3409582093802L; 
    2936 
    3037    String key; 
    … …  
    3340    public UnregisterServantMessage(Object source, String serviceKey, Ice.Current current) { 
    3441        super(source); 
    35         this.key = key; 
     42        this.key = serviceKey; 
    3643        this.curr = current; 
    3744    } 
  • trunk/components/tools/licenses/.classpath

    r1298 r1362  
    4141        <classpathentry exported="true" kind="var" path="M2_REPO/omero/romio/3.0-TRUNK/romio-3.0-TRUNK.jar"/> 
    4242        <classpathentry exported="true" kind="var" path="M2_REPO/omero/server/3.0-TRUNK/server-3.0-TRUNK.jar"/> 
     43        <classpathentry exported="true" kind="var" path="M2_REPO/omero/blitz/3.0-TRUNK/blitz-3.0-TRUNK.jar"/> 
     44        <classpathentry exported="true" kind="var" path="M2_REPO/omero/ice/3.1.1/ice-3.1.1.jar"/> 
    4345        <classpathentry exported="true" kind="var" path="M2_REPO/omero/client/3.0-TRUNK/client-3.0-TRUNK.jar"/> 
    4446        <classpathentry exported="true" kind="var" path="M2_REPO/org/acegisecurity/acegi-security/1.0.0-RC1/acegi-security-1.0.0-RC1.jar"/> 
  • trunk/components/tools/licenses/classpath.xml

    r1298 r1362  
    5959        <file name="omero/romio/3.0-TRUNK/romio-3.0-TRUNK.jar"/> 
    6060        <file name="omero/server/3.0-TRUNK/server-3.0-TRUNK.jar"/> 
     61        <file name="omero/blitz/3.0-TRUNK/blitz-3.0-TRUNK.jar"/> 
     62        <file name="omero/ice/3.1.1/ice-3.1.1.jar"/> 
    6163        <file name="omero/client/3.0-TRUNK/client-3.0-TRUNK.jar"/> 
    6264        <file name="org/acegisecurity/acegi-security/1.0.0-RC1/acegi-security-1.0.0-RC1.jar"/> 
    … …  
    103105        <include name="omero/romio/3.0-TRUNK/romio-3.0-TRUNK.jar"/> 
    104106        <include name="omero/server/3.0-TRUNK/server-3.0-TRUNK.jar"/> 
     107        <include name="omero/blitz/3.0-TRUNK/blitz-3.0-TRUNK.jar"/> 
     108        <include name="omero/ice/3.1.1/ice-3.1.1.jar"/> 
    105109        <include name="omero/client/3.0-TRUNK/client-3.0-TRUNK.jar"/> 
    106110        <include name="org/acegisecurity/acegi-security/1.0.0-RC1/acegi-security-1.0.0-RC1.jar"/> 
    … …  
    150154        <file name="omero/romio/3.0-TRUNK/romio-3.0-TRUNK.jar"/> 
    151155        <file name="omero/server/3.0-TRUNK/server-3.0-TRUNK.jar"/> 
     156        <file name="omero/blitz/3.0-TRUNK/blitz-3.0-TRUNK.jar"/> 
     157        <file name="omero/ice/3.1.1/ice-3.1.1.jar"/> 
    152158        <file name="omero/client/3.0-TRUNK/client-3.0-TRUNK.jar"/> 
    153159        <file name="org/acegisecurity/acegi-security/1.0.0-RC1/acegi-security-1.0.0-RC1.jar"/> 
    … …  
    199205        <include name="omero/romio/3.0-TRUNK/romio-3.0-TRUNK.jar"/> 
    200206        <include name="omero/server/3.0-TRUNK/server-3.0-TRUNK.jar"/> 
     207        <include name="omero/blitz/3.0-TRUNK/blitz-3.0-TRUNK.jar"/> 
     208        <include name="omero/ice/3.1.1/ice-3.1.1.jar"/> 
    201209        <include name="omero/client/3.0-TRUNK/client-3.0-TRUNK.jar"/> 
    202210        <include name="org/acegisecurity/acegi-security/1.0.0-RC1/acegi-security-1.0.0-RC1.jar"/> 

Download in other formats:

  • Unified Diff
  • Zip Archive

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/