• 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 2362

Show
Ignore:
Timestamp:
05/08/08 16:52:55 (7 months ago)
Author:
jmoore
Message:

ticket:894 working on Blitz/RMI synchronization

  • Added return type checks to ApiConsistencyCheck?
  • Changed @NotNull Integers and Longs to int and long
  • Changed mandatory nullables in ThumbnailStore to RLong and RInt
  • Fixed return type mismatch in resetDefaultsNoSave
Location:
trunk/components
Files:
6 modified

  • blitz/resources/omero/API.ice (modified) (2 diffs)
  • blitz/src/ome/services/blitz/util/ApiConsistencyCheck.java (modified) (11 diffs)
  • common/src/ome/api/IAdmin.java (modified) (6 diffs)
  • common/src/ome/api/RawPixelsStore.java (modified) (3 diffs)
  • server/src/ome/logic/AdminImpl.java (modified) (5 diffs)
  • server/src/ome/services/RawPixelsBean.java (modified) (30 diffs)

Legend:

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

    r2358 r2362  
    297297        omero::model::RenderingDef createNewRenderingDef(omero::model::Pixels pixels) throws ServerError; 
    298298        void resetDefaults(omero::model::RenderingDef def, omero::model::Pixels pixels) throws ServerError; 
    299         void resetDefaultsNoSave(omero::model::RenderingDef def, omero::model::Pixels pixels) throws ServerError; 
     299        omero::model::RenderingDef resetDefaultsNoSave(omero::model::RenderingDef def, omero::model::Pixels pixels) throws ServerError; 
    300300        void resetDefaultsInImage(long imageId) throws ServerError; 
    301301        omero::sys::LongList resetDefaultsInCategory(long categoryId) throws ServerError; 
    … …  
    486486        bool setPixelsId(long pixelsId) throws ServerError; 
    487487        void setRenderingDefId(long renderingDefId) throws ServerError; 
    488         Ice::ByteSeq getThumbnail(int sizeX, int sizeY) throws ServerError; 
    489         omero::sys::IdByteMap getThumbnailSet(int sizeX, int sizeY, omero::sys::LongList pixelsIds) throws ServerError; 
    490         omero::sys::IdByteMap getThumbnailByLongestSideSet(int size, omero::sys::LongList pixelsIds) throws ServerError; 
    491         Ice::ByteSeq getThumbnailByLongestSide(int size) throws ServerError; 
    492         Ice::ByteSeq getThumbnailByLongestSideDirect(int size) throws ServerError; 
    493         Ice::ByteSeq getThumbnailDirect(int sizeX, int sizeY) throws ServerError; 
    494         Ice::ByteSeq getThumbnailForSectionDirect(int theZ, int theT, int sizeX, int sizeY) throws ServerError; 
    495         Ice::ByteSeq getThumbnailForSectionByLongestSideDirect(int theZ, int theT, int size) throws ServerError; 
     488        Ice::ByteSeq getThumbnail(omero::RInt sizeX, omero::RInt sizeY) throws ServerError; 
     489        omero::sys::IdByteMap getThumbnailSet(omero::RInt sizeX, omero::RInt sizeY, omero::sys::LongList pixelsIds) throws ServerError; 
     490        omero::sys::IdByteMap getThumbnailByLongestSideSet(omero::RInt size, omero::sys::LongList pixelsIds) throws ServerError; 
     491        Ice::ByteSeq getThumbnailByLongestSide(omero::RInt size) throws ServerError; 
     492        Ice::ByteSeq getThumbnailByLongestSideDirect(omero::RInt size) throws ServerError; 
     493        Ice::ByteSeq getThumbnailDirect(omero::RInt sizeX, omero::RInt sizeY) throws ServerError; 
     494        Ice::ByteSeq getThumbnailForSectionDirect(int theZ, int theT, omero::RInt sizeX, omero::RInt sizeY) throws ServerError; 
     495        Ice::ByteSeq getThumbnailForSectionByLongestSideDirect(int theZ, int theT, omero::RInt size) throws ServerError; 
    496496        void createThumbnails() throws ServerError; 
    497         void createThumbnail(int sizeX, int sizeY) throws ServerError; 
    498         bool thumbnailExists(int sizeX, int sizeY) throws ServerError; 
     497        void createThumbnail(omero::RInt sizeX, omero::RInt sizeY) throws ServerError; 
     498        bool thumbnailExists(omero::RInt sizeX, omero::RInt sizeY) throws ServerError; 
    499499        void resetDefaults() throws ServerError; 
    500500      }; 
  • trunk/components/blitz/src/ome/services/blitz/util/ApiConsistencyCheck.java

    r2302 r2362  
    66import java.util.Arrays; 
    77import java.util.Collection; 
     8import java.util.Date; 
    89import java.util.HashMap; 
    910import java.util.List; 
    … …  
    1516import ome.parameters.Filter; 
    1617import ome.parameters.Parameters; 
     18import ome.system.EventContext; 
    1719import ome.system.Principal; 
     20import ome.system.Roles; 
     21import omeis.providers.re.RGBBuffer; 
    1822import omeis.providers.re.codomain.CodomainMapContext; 
    1923import omeis.providers.re.data.PlaneDef; 
    2024import omero.RInt; 
     25import omero.RList; 
     26import omero.RLong; 
     27import omero.RObject; 
    2128import omero.RString; 
     29import omero.RTime; 
    2230import omero.RType; 
    2331import omero.ServerError; 
    … …  
    3341 * @author Josh Moore, josh at glencoesoftware.com 
    3442 * @since 3.0-Beta3 
     43 * @see <a href="http://trac.openmicroscopy.org.uk/omero/ticket/894">ticket:894</a> 
    3544 */ 
    3645public class ApiConsistencyCheck implements BeanPostProcessor { 
    … …  
    4453        if (arg0 instanceof ServantDefinition) { 
    4554 
    46             List<String> differences = new ArrayList<String>(); 
    47  
    48             ServantDefinition sd = (ServantDefinition) arg0; 
    49             Class ops = sd.getOperationsClass(); 
    50             Class api = sd.getServiceClass(); 
    51  
    52             Method[] opsMethods = ops.getDeclaredMethods(); 
    53             Method[] apiMethods = api.getDeclaredMethods(); 
    54  
    55             Map<String, Method> opsMap = map(opsMethods); 
    56             Map<String, Method> apiMap = map(apiMethods); 
     55            final List<String> differences = new ArrayList<String>(); 
     56 
     57            final ServantDefinition sd = (ServantDefinition) arg0; 
     58            final Class ops = sd.getOperationsClass(); 
     59            final Class api = sd.getServiceClass(); 
     60 
     61            final Method[] opsMethods = ops.getDeclaredMethods(); 
     62            final Method[] apiMethods = api.getDeclaredMethods(); 
     63 
     64            final Map<String, Method> opsMap = map(opsMethods); 
     65            final Map<String, Method> apiMap = map(apiMethods); 
    5766 
    5867            for (String name : opsMap.keySet()) { 
    … …  
    6877            } 
    6978 
    70             for (String name : apiMap.keySet()) { 
    71                 Method opsMethod = opsMap.get(name); 
     79            for (final String name : apiMap.keySet()) { 
     80 
     81                final Method apiMethod = apiMap.get(name); 
     82                final Method opsMethod = opsMap.get(name); 
     83 
    7284                if (opsMethod == null) { 
    7385                    differences.add("Missing method: " + name); 
    … …  
    7587                } 
    7688 
    77                 Class[] opsParams = opsMethod.getParameterTypes(); 
    78                 Class[] apiParams = apiMap.get(name).getParameterTypes(); 
     89                final Class[] opsParams = opsMethod.getParameterTypes(); 
     90                final Class[] apiParams = apiMethod.getParameterTypes(); 
    7991 
    8092                // Blitz always has one more for the Ice.Current 
    … …  
    8698                    continue; 
    8799                } 
     100 
     101                // Check actual values 
    88102                for (int i = 0; i < apiParams.length; i++) { 
    89103                    Class apiType = apiParams[i]; 
    … …  
    91105                    if (!matches(apiType, opsType)) { 
    92106                        differences.add(String.format( 
    93                                 "Parameter type mismatch: %s & %s", apiType, 
    94                                 opsType)); 
     107                                "Parameter type mismatch in %s: %s <> %s", 
     108                                apiMethod, apiType, opsType)); 
    95109                        continue; 
    96110                    } 
    97111                } 
    98112 
     113                // Now check the return type 
     114 
     115                Class opsReturn = opsMethod.getReturnType(); 
     116                Class apiReturn = apiMethod.getReturnType(); 
     117 
     118                if (!matches(apiReturn, opsReturn)) { 
     119                    differences.add(String.format( 
     120                            "Return type mismatch in %s: %s <> %s", apiMethod, 
     121                            apiReturn, opsReturn)); 
     122                } 
    99123            } 
    100124 
    … …  
    127151     */ 
    128152    public static boolean matches(Class apiType, Class opsType) { 
    129         if (apiType == opsType) { 
     153 
     154        // Check for equality 
     155        if (apiType == opsType || apiType.equals(opsType)) { 
    130156            return true; 
    131157        } 
    132158 
    133         if (apiType.equals(opsType)) { 
    134             return true; 
    135         } 
    136  
    137         if (apiType.equals(Long.class) && opsType.equals(long.class)) { 
    138             return true; 
    139         } 
    140  
    141         if (IObject.class.isAssignableFrom(apiType) 
    142                 && omero.model.IObject.class.isAssignableFrom(opsType)) { 
    143             return true; 
    144         } 
     159        final ApiCheck check = new ApiCheck(apiType, opsType); 
     160 
     161        // 
     162        // Blacklist. If any of these match, we return false. 
     163        // 
     164 
     165        if (check.matches(Integer.class, int.class) 
     166                || check.matches(Long.class, long.class) 
     167                || check.matches(Double.class, double.class) 
     168                || check.matches(Float.class, float.class)) { 
     169            return false; 
     170        } 
     171 
     172        // 
     173        // Whitelist. If any one these match, we return true. 
     174        // 
    145175 
    146176        if (apiType.isArray() 
    … …  
    150180        } 
    151181 
    152         if (Collection.class.isAssignableFrom(apiType) 
    153                 && List.class.isAssignableFrom(opsType)) { 
    154             return true; 
    155         } 
    156  
    157         if (Permissions.class.isAssignableFrom(apiType) 
    158                 && omero.model.Permissions.class.isAssignableFrom(opsType)) { 
    159             return true; 
    160         } 
    161  
    162         if (String.class.isAssignableFrom(apiType) 
    163                 && RString.class.isAssignableFrom(opsType)) { 
    164             return true; 
    165         } 
    166  
    167         if (Integer.class.isAssignableFrom(apiType) 
    168                 && int.class.isAssignableFrom(opsType)) { 
    169             return true; 
    170         } 
    171  
    172         if (Integer.class.isAssignableFrom(apiType) 
    173                 && RInt.class.isAssignableFrom(opsType)) { 
    174             return true; 
    175         } 
    176  
    177         if (Class.class.isAssignableFrom(apiType) 
    178                 && String.class.isAssignableFrom(opsType)) { 
    179             return true; 
    180         } 
    181  
    182         if (Parameters.class.isAssignableFrom(apiType) 
    183                 && omero.sys.Parameters.class.isAssignableFrom(opsType)) { 
    184             return true; 
    185         } 
    186  
    187         if (Filter.class.isAssignableFrom(apiType) 
    188                 && omero.sys.Filter.class.isAssignableFrom(opsType)) { 
    189             return true; 
    190         } 
    191  
    192         if (Principal.class.isAssignableFrom(apiType) 
    193                 && omero.sys.Principal.class.isAssignableFrom(opsType)) { 
    194             return true; 
    195         } 
    196  
    197         if (PlaneDef.class.isAssignableFrom(apiType) 
    198                 && omero.romio.PlaneDef.class.isAssignableFrom(opsType)) { 
    199             return true; 
    200         } 
    201  
    202         if (CodomainMapContext.class.isAssignableFrom(apiType) 
    203                 && omero.romio.CodomainMapContext.class 
    204                         .isAssignableFrom(opsType)) { 
    205             return true; 
    206         } 
    207  
    208         if (Details.class.isAssignableFrom(apiType) 
    209                 && omero.model.Details.class.isAssignableFrom(opsType)) { 
     182        if (check.matches(Collection.class, List.class) 
     183                || check.matches(CodomainMapContext.class, 
     184                        omero.romio.CodomainMapContext.class) 
     185                || check.matches(Date.class, RTime.class) 
     186                || check.matches(Details.class, omero.model.Details.class) 
     187                || check.matches(Class.class, String.class) 
     188                || check.matches(EventContext.class, 
     189                        omero.sys.EventContext.class) 
     190                || check.matches(Filter.class, omero.sys.Filter.class) 
     191                || check.matches(Integer.class, RInt.class) 
     192                || check.matches(IObject.class, omero.model.IObject.class) 
     193                || check.matches(IObject.class, RObject.class) 
     194                || check.matches(List.class, RList.class) 
     195                || check.matches(Long.class, RLong.class) 
     196                || check.matches(Parameters.class, omero.sys.Parameters.class) 
     197                || check.matches(PlaneDef.class, omero.romio.PlaneDef.class) 
     198                || check.matches(Permissions.class, 
     199                        omero.model.Permissions.class) 
     200                || check.matches(Principal.class, omero.sys.Principal.class) 
     201                || check.matches(RGBBuffer.class, omero.romio.RGBBuffer.class) 
     202                || check.matches(Roles.class, omero.sys.Roles.class) 
     203                || check.matches(String.class, RString.class)) { 
    210204            return true; 
    211205        } 
    … …  
    261255    } 
    262256} 
     257 
     258/** 
     259 * Class to be used as a simple white or black list for checking consistency. To 
     260 * perform a white list, create an {@link ApiCheck} with the start value of 
     261 * false. Then 
     262 *  
     263 */ 
     264class ApiCheck { 
     265 
     266    final Class apiType; 
     267    final Class opsType; 
     268 
     269    public ApiCheck(Class api, Class ops) { 
     270        this.apiType = api; 
     271        this.opsType = ops; 
     272    } 
     273 
     274    boolean matches(Class apiTest, Class opsTest) { 
     275        return apiTest.isAssignableFrom(apiType) 
     276                && opsTest.isAssignableFrom(opsType); 
     277    } 
     278} 
  • trunk/components/common/src/ome/api/IAdmin.java

    r2328 r2362  
    5858     *             if id does not exist. 
    5959     */ 
    60     Experimenter getExperimenter(@NotNull 
    61     Long id); 
     60    Experimenter getExperimenter(long id); 
    6261 
    6362    /** 
    … …  
    9695     * @return Experimenter. Never null. 
    9796     */ 
    98     String lookupLdapAuthExperimenter(@NotNull 
    99     Long id); 
     97    String lookupLdapAuthExperimenter(long id); 
    10098 
    10199    /** 
    … …  
    109107     *             if id does not exist. 
    110108     */ 
    111     ExperimenterGroup getGroup(@NotNull 
    112     Long id); 
     109    ExperimenterGroup getGroup(long id); 
    113110 
    114111    /** 
    … …  
    143140     * @return non-null array of all {@link Experimenter users} in this group. 
    144141     */ 
    145     Experimenter[] containedExperimenters(@NotNull 
    146     Long groupId); 
     142    Experimenter[] containedExperimenters(long groupId); 
    147143 
    148144    /** 
    … …  
    156152     *         user. 
    157153     */ 
    158     ExperimenterGroup[] containedGroups(@NotNull 
    159     Long experimenterId); 
     154    ExperimenterGroup[] containedGroups(long experimenterId); 
    160155 
    161156    /** 
    … …  
    168163     *         found, an exception will be thrown. 
    169164     */ 
    170     ExperimenterGroup getDefaultGroup(@NotNull 
    171     Long experimenterId); 
     165    ExperimenterGroup getDefaultGroup(long experimenterId); 
    172166 
    173167    // ~ Updating users and groups 
  • trunk/components/common/src/ome/api/RawPixelsStore.java

    r1807 r2362  
    1313 
    1414// Application-internal dependencies 
    15 import ome.annotations.NotNull; 
    1615 
    1716/** 
    … …  
    2322 *         Josh Moore &nbsp;&nbsp;&nbsp;&nbsp; <a 
    2423 *         href="mailto:josh.moore@gmx.de"> josh.moore@gmx.de</a> 
    25  * @version 3.0 <small> (<b>Internal version:</b> $Revision$ $Date: 
    26  *          2005/06/08 15:21:59 $) </small> 
     24 * @version 3.0 <small> (<b>Internal version:</b> $Revision$ $Date: 2005/06/08 
     25 *          15:21:59 $) </small> 
    2726 * @since OME2.2 
    2827 */ 
    … …  
    3837     * @see ome.io.nio.PixelBuffer#getPlaneSize() 
    3938     */ 
    40     public Integer getPlaneSize(); 
     39    public int getPlaneSize(); 
    4140 
    42     public Integer getRowSize(); 
     41    public int getRowSize(); 
    4342 
    44     public Integer getStackSize(); 
     43    public int getStackSize(); 
    4544 
    46     public Integer getTimepointSize(); 
     45    public int getTimepointSize(); 
    4746 
    48     public Integer getTotalSize(); 
     47    public int getTotalSize(); 
    4948 
    50     public Long getRowOffset(@NotNull 
    51     Integer y, @NotNull 
    52     Integer z, @NotNull 
    53     Integer c, @NotNull 
    54     Integer t); 
     49    public long getRowOffset(int y, int z, int c, int t); 
    5550 
    56     public Long getPlaneOffset(@NotNull 
    57     Integer z, @NotNull 
    58     Integer c, @NotNull 
    59     Integer t); 
     51    public long getPlaneOffset(int z, int c, int t); 
    6052 
    61     public Long getStackOffset(@NotNull 
    62     Integer c, @NotNull 
    63     Integer t); 
     53    public long getStackOffset(int c, int t); 
    6454 
    65     public Long getTimepointOffset(@NotNull 
    66     Integer t); 
     55    public long getTimepointOffset(int t); 
    6756 
    68     public byte[] getRegion(@NotNull 
    69     Integer size, Long offset); 
     57    public byte[] getRegion(int size, long offset); 
    7058 
    71     public byte[] getRow(@NotNull 
    72     Integer y, @NotNull 
    73     Integer z, @NotNull 
    74     Integer c, @NotNull 
    75     Integer t); 
     59    public byte[] getRow(int y, int z, int c, int t); 
    7660 
    77     public byte[] getPlaneRegion(@NotNull 
    78     Integer z, @NotNull 
    79     Integer c, @NotNull 
    80     Integer t, @NotNull  
    81     Integer count, @NotNull 
    82     Integer offset); 
    83      
    84     public byte[] getPlane(@NotNull 
    85     Integer z, @NotNull 
    86     Integer c, @NotNull 
    87     Integer t); 
     61    public byte[] getPlaneRegion(int z, int c, int t, int count, int offset); 
    8862 
    89     public byte[] getStack(@NotNull 
    90     Integer c, @NotNull 
    91     Integer t); 
     63    public byte[] getPlane(int z, int c, int t); 
    9264 
    93     public byte[] getTimepoint(@NotNull 
    94     Integer t); 
     65    public byte[] getStack(int c, int t); 
    9566 
    96     public void setRegion(@NotNull 
    97     Integer size, Long offset, @NotNull 
    98     byte[] buffer); 
     67    public byte[] getTimepoint(int t); 
    9968 
    100     public void setRow(@NotNull 
    101     byte[] buffer, @NotNull 
    102     Integer y, @NotNull 
    103     Integer z, @NotNull 
    104     Integer c, @NotNull 
    105     Integer t); 
     69    public void setRegion(int size, long offset, byte[] buffer); 
    10670 
    107     public void setPlane(@NotNull 
    108     byte[] buffer, @NotNull 
    109     Integer z, @NotNull 
    110     Integer c, @NotNull 
    111     Integer t); 
     71    public void setRow(byte[] buffer, int y, int z, int c, int t); 
    11272 
    113     public void setStack(@NotNull 
    114     byte[] buffer, @NotNull 
    115     Integer z, @NotNull 
    116     Integer c, @NotNull 
    117     Integer t); 
     73    public void setPlane(byte[] buffer, int z, int c, int t); 
    11874 
    119     public void setTimepoint(@NotNull 
    120     byte[] buffer, @NotNull 
    121     Integer t); 
     75    public void setStack(byte[] buffer, int z, int c, int t); 
     76 
     77    public void setTimepoint(byte[] buffer, int t); 
    12278 
    12379    public int getByteWidth(); 
    124      
     80 
    12581    public boolean isSigned(); 
    126      
     82 
    12783    public boolean isFloat(); 
    128      
     84 
    12985    public byte[] calculateMessageDigest(); 
    13086 
  • trunk/components/server/src/ome/logic/AdminImpl.java

    r2326 r2362  
    302302 
    303303    @RolesAllowed("user") 
    304     public Experimenter getExperimenter(final Long id) { 
     304    public Experimenter getExperimenter(final long id) { 
    305305        Experimenter e = iQuery.execute(new UserQ(new Parameters().addId(id))); 
    306306 
    … …  
    338338 
    339339    @RolesAllowed("user") 
    340     public String lookupLdapAuthExperimenter(Long id) { 
     340    public String lookupLdapAuthExperimenter(long id) { 
    341341        return LdapUtil.lookupLdapAuthExperimenter(jdbc, id); 
    342342    } 
    343343 
    344344    @RolesAllowed("user") 
    345     public ExperimenterGroup getGroup(Long id) { 
     345    public ExperimenterGroup getGroup(long id) { 
    346346        ExperimenterGroup g = iQuery.execute(new GroupQ(new Parameters() 
    347347                .addId(id))); 
    … …  
    376376 
    377377    @RolesAllowed("user") 
    378     public Experimenter[] containedExperimenters(Long groupId) { 
     378    public Experimenter[] containedExperimenters(long groupId) { 
    379379        List<Experimenter> experimenters = iQuery.findAllByQuery( 
    380380                "select e from Experimenter as e left outer " 
    … …  
    386386 
    387387    @RolesAllowed("user") 
    388     public ExperimenterGroup[] containedGroups(Long experimenterId) { 
     388    public ExperimenterGroup[] containedGroups(long experimenterId) { 
    389389        List<ExperimenterGroup> groups = iQuery 
    390390                .findAllByQuery( 
    … …  
    655655    @RolesAllowed("user") 
    656656    public ExperimenterGroup getDefaultGroup(@NotNull 
    657     Long experimenterId) { 
     657    long experimenterId) { 
    658658        ExperimenterGroup g = iQuery.findByQuery( 
    659659                "select g from ExperimenterGroup g, Experimenter e " 
  • trunk/components/server/src/ome/services/RawPixelsBean.java

    r2305 r2362  
    2626import javax.interceptor.Interceptors; 
    2727 
    28 // Third-party libraries 
    29 import org.apache.commons.logging.Log; 
    30 import org.apache.commons.logging.LogFactory; 
    31 import org.jboss.annotation.ejb.LocalBinding; 
    32 import org.jboss.annotation.ejb.RemoteBinding; 
    33 import org.jboss.annotation.ejb.RemoteBindings; 
    34 import org.springframework.transaction.annotation.Transactional; 
    35  
    36 // Application-internal dependencies 
    3728import ome.api.IPixels; 
    3829import ome.api.IRepositoryInfo; 
    … …  
    4637import ome.model.core.Pixels; 
    4738import ome.services.util.OmeroAroundInvoke; 
    48  
    4939import omeis.providers.re.RenderingEngine; 
     40 
     41import org.apache.commons.logging.Log; 
     42import org.apache.commons.logging.LogFactory; 
     43import org.jboss.annotation.ejb.LocalBinding; 
     44import org.jboss.annotation.ejb.RemoteBinding; 
     45import org.jboss.annotation.ejb.RemoteBindings; 
     46import org.springframework.transaction.annotation.Transactional; 
    5047 
    5148/** 
    … …  
    5350 *         Josh Moore&nbsp;&nbsp;&nbsp;&nbsp; <a 
    5451 *         href="mailto:josh.moore@gmx.de"> josh.moore@gmx.de</a> 
    55  * @version 3.0 <small> (<b>Internal version:</b> $Revision$ $Date: 
    56  *          2005/07/05 16:13:52 $) </small> 
     52 * @version 3.0 <small> (<b>Internal version:</b> $Revision$ $Date: 2005/07/05 
     53 *          16:13:52 $) </small> 
    5754 * @since OMERO3 
    5855 */ 
    … …  
    6158@Stateful 
    6259@Remote(RawPixelsStore.class) 
    63 @RemoteBindings({ 
    64     @RemoteBinding(jndiBinding = "omero/remote/ome.api.RawPixelsStore"), 
    65     @RemoteBinding(jndiBinding = "omero/secure/ome.api.RawPixelsStore", 
    66                    clientBindUrl="sslsocket://0.0.0.0:3843") 
    67 }) 
     60@RemoteBindings( { 
     61        @RemoteBinding(jndiBinding = "omero/remote/ome.api.RawPixelsStore"), 
     62        @RemoteBinding(jndiBinding = "omero/secure/ome.api.RawPixelsStore", clientBindUrl = "sslsocket://0.0.0.0:3843") }) 
    6863@Local(RenderingEngine.class) 
    6964@LocalBinding(jndiBinding = "omero/local/ome.api.RawPixelsStore") 
    7065@Interceptors( { OmeroAroundInvoke.class }) 
    71 public class RawPixelsBean extends AbstractStatefulBean implements RawPixelsStore { 
     66public class RawPixelsBean extends AbstractStatefulBean implements 
     67        RawPixelsStore { 
    7268    /** The logger for this particular class */ 
    7369    private static Log log = LogFactory.getLog(RawPixelsBean.class); 
    … …  
    7672 
    7773    private Long id; 
    78      
     74