How to set runtime references in J2EE library DC's

Hi,
I'm building an custom logon module. This is well described in
http://help.sap.com/saphelp_nw04/helpdata/en/46/3ce9402f3f8031e10000000a1550b0/content.htm
I created the following DC:
1. simple java project DC that contains the login module class
2. J2EE library DC that will act as the deployable component.
The part "Make reference to the Security Provider service of the J2EE Engine." (2b) is where i get stumped:
http://help.sap.com/saphelp_nw04/helpdata/en/bf/93d84072378031e10000000a1550b0/content.htm
The example adds the reference direct to the provider.xml. I don't have that option when I develop the library as a DC.
It seems that while EAR file DC's allow the adding of runtime library references via the application-j2ee.xml file, it seems that is not possible for J2EE library DCs.
Specifically, I'm trying to get the follwing entry into the provider.xml:
<references>
  <reference provider-name="sap.com" strength="weak" type="interface">security_api</reference>
I saw one workaround in the SDN where they suggest to extract the provider.xml from the SDA and manually
add the references but this isn't really an option in our case.
Should I be deploying 'normal' EAR files in this case ? Have I overlooked something ?
thanks
Michael

Hi,
talk about overlooking the obvious . . . The appropriate public part is present in com.sap_SAP-JEE_1.
Adding that worked.
Michael

Similar Messages

  • How to set runtime parameter for the entire system

    Hi,
    I have a problem with setting runtime parameters in jre v1.6.0_07. I have an XP computer with multiple users and to use the application eavery user must set the runtime parameter once by going to java control panel -> Java -> Java applet runtime settings -> view. How can i automate this? I have multiple users and there may be more users logging in so manually sending the C:\<userProfileDirectory>\Application Data\Sun\Java\Deployment\deployment.properties file to all profiles is not a solution. Same question here but no solution. Every user must get this parameter when they log in, they may be new users or existing users. The software I'm trying to use is browser based, we don't trigger an exe or something from local to run the software.
    In C:\<userProfileDirectory>\Application Data\Sun\Java\Deployment\deployment.properties file there is a line like this;
    deployment.javapi.jre.1.6.0_07.args=
    This works for a single user. I've read the instructions in [deployment guide|http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html] but the properties file we put in C:\WINDOWS\Sun\Java\Deployment does not support ".args=" command. Anyone encountered or have a solution for this problem?
    Thanks.

    Hi,
    got solution for this problem? I am also having the same problem.
    Thanks.

  • How to Set Item limit for Picture library Slideshow webpart in SharePoint 2013

    Picture library Slideshow webpart is using the default view "All Pictures" and if I set a filter condition in the view, the images are displaying based on it but if I set an Item limit as "5" or any number in the "All Pictures"
    view it is not reflecting in the slideshow webpart.
    Any suggestion would be a great help as the users want to see only the latest 5 images in the slideshow webpart.
    Thanks & regards,
    Asha

    I don't think so there is any way to set a item count limit on Picture Library Slideshow web wart.
    Web Part setting only allows to provide library and View, In List view also you can only set Item Limit to be shown on the 'List View'. Slideshow web part take all the items in the list and show, view is only used to provide which field needs to be shown.
    There could be 2 options:
    - Write a JavaScript to limit the count, and in the view add Sorting by 'Created' date. You can get some example on how to modify "Library Slideshow web part" javascript here: http://blog.vgrem.com/2013/04/27/beyond-the-slideshow-web-part-capabilities-in-sharepoint-2010/
     This link does not have solution of what you want, but it gives a very well idea on what you can look and modify. It will not be that straight forward for sure.
     - Create a custom webpart, it could be a easier approach. As there are many slideshow Javascript library present, and through code you will just need do a query and pull data from library with required number of items to be shown.
    get2pallav
    Please click "Propose As Answer" if this post solves your problem or "Vote As Helpful" if this post has been useful to you.

  • How to set AI reference voltage DAQmx

    I can't figure out how to set an internal reference voltage for analog input. I am using DAQmx Create Channel, AI voltage.

    If you're trying to set a ground, there's the AI GND pins.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to set up a Video clip library?

    Is there a simple way of setting up a video clip library for example along the lines of Aperture's still photograph library? Aperture uses a system of folders,projects and albums that provides a framework for classifying and storing pictures together with metadata and brief written descriptions. Video clips would need to be accompanied by a thumbnail and time code data.
    T5G5

    There are also FootTrack and iDive. While they are not as sophisticated as CatDV, they also do not cost as much.

  • How to set local path for load library

    Hi,
    How do i set local path for native dll as i dont want to set the path in the environment variable.
    can i do like this
    System.loadLibrary("c:\abc");
    Thanks

    I believe that System.load() does exactly the same thing, but accepts fully qualified filenames. So give that a try.
    Failing that.... maybe you can add -Djava.library.path=
    to your command line to explicitely override the path set ?
    regards,
    Owen

  • How to set httponly cookies in J2EE 5

    Hi folks,
    I ma using Tomcat 6 which implements Servlet API 2.5 (part of the J2EE 5). I know I could set the usehttponly="true" in the context.xml to turn on all cookies to httponly. However, if I only need to set certain cookies to be httponly, how to do it in J2EE 5? I do not find Cookie.setHttponly() method in J2EE 5.
    Thanks in advance!
    Billy

    Either the support document cited above is in error or (more likely) has just not been updated for IOS 8.
    It states that:
    AirPrint printers connected to the USB port of an Apple AirPort Base Station or AirPort Time Capsule are not supported with AirPrint. Connect your AirPrint printer to your network using Wi-Fi, or connect it to a LAN port on your AirPort device using Ethernet.
    I have an early HP LaserJet P1102w and found that it can be set up to work wirelessly even if it is connected by USB to either a MAC or Airport/Time Capsule.
    The trick is to install it each way and label each in the system preferences accordingly,  (a separate icon for each version)
    Examples: the wireless  HP P1102 - Air Print, the USB cabled HP P1102w - USB, and the Airport/TC HP P1102w - Airport (or TC or LAN name)
    My iPhone 5s also found the HP1102w using AirPrint.
    Additionally the wireless printer connection will display the printer Options and Supplies just like the USB wired connection -- the Airport/TC connection will not.
    So even if you use the USB/Airport/TC route, you can still quickly switch to the wireless or USB to check the toner (or ink)
    Hope some find this useful.
    Equip:
    HP P1102w (with latest firmware update from HP)
    MacbookPro & Macbook Pro Retina (both running OSX 10.9.5 - Mavericks)
    TimeCapsule (latest Airport Utility & Firmware)
    iPhone 5s ( iOS 8.0.2)

  • How to set Environment Settings for J2EE?

    hi i don't know java but know a little vb6
    i would like make and compile this:
    http://java.sun.com/developer/technicalArticles/peer/
    i downloaded all components... but can't figure out how to do:
    Table 1: Environment Settings for Compiling and Running J2EE Applications
    thanks..
    Message was edited by:
    Hopelessone

    You can't enter sites in a list to make Firefox remember names and passwords for specific sites.
    If the password manager is enabled (remember passwords is check-marked) then Firefox will ask via a pop-up from the key icon that appears on the location bar whether you want to remember that name and password and that name will then appear in the list in the password manager window.
    *http://kb.mozillazine.org/Password_Manager
    *https://support.mozilla.org/kb/make-firefox-remember-usernames-and-passwords
    Websites can use autocomplete=off to prevent Firefox from saving the name and password.<br />
    You can remove autocomplete=off with a bookmarklet to make Firefox save the name and password in such a case.
    *http://kb.mozillazine.org/User_name_and_password_not_remembered

  • How to set runtime block and its items navigation

    this is my procedure to set a navigation in a block. but with this i m unable to how to navigate to second block.
    first block name is TRANS1
    and second block name TRANS2
    i need this navigation procedure because some items are getting invisible at the run time.i m using ORACLE 8i and FORM 6i.
    PROCEDURE NAVIGATION_SEQUENCE IS
         V_LOOP NUMBER;
         V_PREITEM VARCHAR2(100);
         V_MAXLOOP1 NUMBER;
         V_MAXLOOP2 NUMBER;
    BEGIN
    NULL;
         SET_ITEM_PROPERTY('TRANS1.T_DATE',NEXT_NAVIGATION_ITEM,'TRANS1.T_VRDATE');
         IF :PARAMETER.F$BOOKTYPE = 'DB' THEN
         SET_ITEM_PROPERTY('TRANS1.T_VRDATE',NEXT_NAVIGATION_ITEM,'TRANS1.T_VRNO');
         SET_ITEM_PROPERTY('TRANS1.T_VRNO',NEXT_NAVIGATION_ITEM,'TRANS1.T_MAID');
         ELSE
         SET_ITEM_PROPERTY('TRANS1.T_VRDATE',NEXT_NAVIGATION_ITEM,'TRANS1.T_MAID');
         END IF;
         SET_ITEM_PROPERTY('TRANS1.T_MAID',NEXT_NAVIGATION_ITEM,'TRANS1.T_AGID');
         SET_ITEM_PROPERTY('TRANS1.T_AGID',NEXT_NAVIGATION_ITEM,'TRANS1.T_DUEDAYS');
         SET_ITEM_PROPERTY('TRANS1.T_DUEDAYS',NEXT_NAVIGATION_ITEM,'TRANS1.T_DUEDATE');
         V_PREITEM := 'TRANS1.T_DUEDAYS';
         IF GET_ITEM_PROPERTY('TRANS1.T_DF1',VISIBLE) = 'TRUE' THEN
         SET_ITEM_PROPERTY('TRANS1.T_DF1',NAVIGABLE,PROPERTY_TRUE);
         SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF1');
         V_PREITEM := 'TRANS1.T_DF1';
         END IF;     
         IF GET_ITEM_PROPERTY('TRANS1.T_DF2',VISIBLE) = 'TRUE' THEN
         SET_ITEM_PROPERTY('TRANS1.T_DF2',NAVIGABLE,PROPERTY_TRUE);
         SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF2');
         V_PREITEM := 'TRANS1.T_DF2';
         END IF;     
         IF GET_ITEM_PROPERTY('TRANS1.T_DF3',VISIBLE) = 'TRUE' THEN
         SET_ITEM_PROPERTY('TRANS1.T_DF3',NAVIGABLE,PROPERTY_TRUE);
         SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF3');
         V_PREITEM := 'TRANS1.T_DF3';
         END IF;     
         IF GET_ITEM_PROPERTY('TRANS1.T_DF4',VISIBLE) = 'TRUE' THEN
         SET_ITEM_PROPERTY('TRANS1.T_DF4',NAVIGABLE,PROPERTY_TRUE);
         SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF4');
         V_PREITEM := 'TRANS1.T_DF4';
         END IF;     
         IF GET_ITEM_PROPERTY('TRANS1.T_DF5',VISIBLE) = 'TRUE' THEN
         SET_ITEM_PROPERTY('TRANS1.T_DF5',NAVIGABLE,PROPERTY_TRUE);
         SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF5');
         V_PREITEM := 'TRANS1.T_DF5';
         END IF;     
         IF GET_ITEM_PROPERTY('TRANS1.T_DF6',VISIBLE) = 'TRUE' THEN
         SET_ITEM_PROPERTY('TRANS1.T_DF6',NAVIGABLE,PROPERTY_TRUE);
         SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF6');
         V_PREITEM := 'TRANS1.T_DF6';
         END IF;     
    end NAVIGATION_SEQUENCE;

    hi Volberg
    thanks for your reply
    dear friend in my form, some of the block item i have to disable(make invisible).
    this is my requirement.
    V_PREITEM is a variable which contain the name of last item, which i already set in navigation.
    look at all 'IF' condition.
    1st V_PREITEM := 'TRANS1.T_DF1';
    2nd V_PREITEM := 'TRANS1.T_DF2';
    in other words V_PREITEM variable having last item name.
    IF GET_ITEM_PROPERTY('TRANS1.T_DF1',VISIBLE) = 'TRUE' THEN
    SET_ITEM_PROPERTY('TRANS1.T_DF1',NAVIGABLE,PROPERTY_TRUE);
    SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF1');
    V_PREITEM := 'TRANS1.T_DF1';
    END IF;
    IF GET_ITEM_PROPERTY('TRANS1.T_DF2',VISIBLE) = 'TRUE' THEN
    SET_ITEM_PROPERTY('TRANS1.T_DF2',NAVIGABLE,PROPERTY_TRUE);
    SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF2');
    V_PREITEM := 'TRANS1.T_DF2';END IF;
    IF GET_ITEM_PROPERTY('TRANS1.T_DF3',VISIBLE) = 'TRUE' THEN
    SET_ITEM_PROPERTY('TRANS1.T_DF3',NAVIGABLE,PROPERTY_TRUE);
    SET_ITEM_PROPERTY(''||V_PREITEM||'',NEXT_NAVIGATION_ITEM,'TRANS1.T_DF3');
    V_PREITEM := 'TRANS1.T_DF3';
    END IF;

  • Measuring Phase Difference of acquired sound input - How to set the reference

    I am trying to measure the phase difference between two audio inputs.(Left and Right Channel of my sound card)
    Both are free running 1kHz audio samples which come in and out of phase.
    When the samples are in phase everything seems to be working correctly and shows no phase difference.
    However once the signals start to go out of phase +-10deg the result keeps jumping around.
    It appears to be the fact that it is changing the reference to determine the phase.
    When I view the output phase of a channel it is a sawtooth waveform moving from 250deg and then wraps round to -110deg
    What I want is to fix one input at 0 degrees and see the others inputs phase difference against it. 
    Is there a way to set one signal as the reference or an alternative strategy?
    Thanks in advance for any assistance. 
    PLEASE NOTE THAT THE acquire.jpg IS ACTUALLY THE VI.
    It would not upload as the vi. Please rename extension to acquire.vi to view it. 
    Message Edited by EuanB on 05-15-2009 01:54 AM
    Message Edited by EuanB on 05-15-2009 01:55 AM
    Message Edited by EuanB on 05-15-2009 01:57 AM
    Message Edited by EuanB on 05-15-2009 01:57 AM
    Message Edited by EuanB on 05-15-2009 01:59 AM
    Solved!
    Go to Solution.
    Attachments:
    In Phase.jpg ‏835 KB
    Out of Phase.jpg ‏857 KB
    acquire.jpg ‏33 KB

    I did some modifications to my first vi. Now is the amplitude problem removed. At least in then I simulate. You may test in real world:smileytongue:
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)
    Attachments:
    demo_v2.vi ‏33 KB

  • How to set "Resource references" ?

    Hi,
    I'm a novice on EJB.
    I want to use EntityBean to access a Cloudscape database. I create a database named "MyDB" in a directory C:\db.
    When using J2ee deploy tool to build a enterprise bean, I need to specify the coded name of "Resource Refs". Can I just write "jdbc/MyDB" without specify any directory ?
    Thank you.

    I looked at J2ee verbose's output messages, and I got the following message:
    c:\j2sdkee1.3.1\repository\gnrtrTMP\BorrowerApp\borrower\BorrowerBean_PM.j
    ava:69: ')' expected
    return (void) partition.afterEjbCreate(this);
    I don't have BorrowerBean_PM.java, so I guess it is an automatically generated file.
    Please Help!

  • How to set Tomcat server to read library files from webapps \lib

    I am trying to put all the web apllication used library files into their own directories instead of puting at the <tomcat-home>\common\lib\
    but it doesnt seem to be working, the server keep telling me that
    the library file could not found, what action should i take to let the server know that my library files is in the <tomcat-home>\webapps\<webapp>\lib?
    thank

    What library files are you referring to here?
    Things like struts.jar or jstl.jar used in a web app? They should be fine in WEB-INF/lib
    Or things like database drivers?
    In order to use connection pooling the database driver has to be in /common/lib, because the server needs to access that code.
    Have you tried putting them in /shared/lib?
    That makes files accessible to all web apps, but not to the server.

  • Alignment tool - how to set reference object?

    I am new to Flash but have used Illustrator and InDesign for years. I am wondering if someone can explain how to set the reference object by which all other objects are aligned; e.g. Illustrator ->select all objects then a second click on the reference object and all other objects take their cue.
    InDesign you lock the reference object and that determines the rest.
    In Flash it seems that either both objects move or the one that I wish to remain in position jumps rather than the other way around.
    Thanks

    I don't know if you can set a reference object in Flash.  I have always just followed the general rule of aligning into the direction where the alignment basis would not move... meaning if I am aligning to the left, then the leftmost item I would select would be the reference, and if need be I would move other objects to the right of it first.

  • Runtime reference from Java DC project

    I have a Java DC prjoect which access CAF service through localejb calling.
    If this DC is used as library in web module, we can defined its runtime reference in application-j2ee-engine.xml of enterprise applicaton, and it works fine.
    The problem comes when we used the Java DC in webdynpro DC, the runtime reference defined in Library references(cafruntimeapilib) and Sharing references(sap.com/cafruntime~ear) of Web Dynpro Reference seems not work, and we always have java.lang.NoClassDefFoundError: com/sap/caf/rt/exception/CAFRetrieveException,   ClassNotFoundException, ...
    Any one knows how to slove this probleam?

    Hi,
    Thanks for your reply.
    The JAVA DC is wraped by a lib dc, and it is deployed and used as Library reference in Dynpro DC.
    The NoClassDefFoundError is throwing by Spring(in JAVA DC). Does Spring's class loader follow the DC reference setting?
    Caused by: java.lang.NoClassDefFoundError: com/sap/caf/rt/exception/CAFRetrieveException
         at java.lang.Class.getDeclaredConstructors0(Native Method)
         at java.lang.Class.privateGetDeclaredConstructors(Class.java:1641)
         at java.lang.Class.getConstructor0(Class.java:1953)
         at java.lang.Class.getConstructor(Class.java:1027)
         at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:573)
         at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:117)
         at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
         at org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean.afterPropertiesSet(SimpleRemoteStatelessSessionProxyFactoryBean.java:101)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1203)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
         at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
         at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
         at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:401)
         at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:121)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:800)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:718)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)
         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
         at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:757)
    Regards,
    TS

  • How do I create a runtime library reference from a J2EE library DC?

    I've created a J2EE library DC that references some classes in an already deployed library.  The referenced jar file has been correctly deployed, as it's successfully used by some other components.  I can build the DC, since I've created created a compile-time reference to the local copy of the target jar file.
    Unfortunately, I can't figure out how to create a runtime reference from my J2EE library to the already deployed library - there just doesn't appear to be any place to put the reference, at least using a gui-based function in NWDS.  Unlike WebDynpro, which has a 'references' configuration option, J2EE lib's don't appear to have anything similar.
    Where/How can I do this?
    BTW, the Visual Administrator function 'ClassLoader Viewer ' is a very handy tool for diagnosing ClassDefNotFoundError errors....

    Hello Ken,
    well it seems to be not a trivial thing.
    1) Build your library DC.
    2) Create folder "server" in root DC folder "_comp".
    3) Extract provider.xml from generated SDA file to "server" folder.
    4) Add references in provider.xml:
        <references>
          <reference type="library" strength="weak">
            sapxmltoolkit
          </reference>
          <reference type="library" strength="weak">
            com.sap.lcr.api.cimclient
          </reference>
          <reference type="service" strength="weak">
            tc~sec~securestorage~service
          </reference>
        </references>
    5) Rebuild DC. Deploy.
    6) Enjoy!
    Useful links:
    http://help.sap.com/saphelp_webas630/helpdata/en/b5/22123b8d92294fac207283f3e8756e/content.htm
    http://help.sap.com/saphelp_webas630/helpdata/en/09/5d963be736904c96cbdfe93793eb42/TEMPLATE_image002.gif
    Best regards, Maksim Rashchynski

Maybe you are looking for

  • Pdb font problem on windows xp

    Hello! I am new here. I have hindi pfb (and pfm) font. There are hundres of files typed using this font in page maker 5 on windows 98 operating system. Now the windows 98 is upgraded to windows xp. The fonts are again installed using atm. Using these

  • After updating to iOS 5, my most recent backup is gone!  HELP!!

    The iPhone update began Wednesday night; before starting, I attempted to do a backup a few times, and it failed.  As the update began, the backup refused to work then as well. After a couple attempts with errors, I checked the list of backups in "Pre

  • Saving a photo to iPhoto from Apple Mail no longer works in iPhoto 9.4.2?

    With the update of iPhoto to 9.4.2, I can no longer Save photos directly to iPhoto from Mail.

  • More than one paint method?

    Hi Im wondering if it is possible to have more than one paint method. It should look something like this. public class MyApplet extends JApplet { public void paint(Graphics g) { // the normal paint method public void SecondPaint(Graphics gr) { // sho

  • Using dbms_passthrough to build a view

    Gurus, Can i create a view in oracle to access data frm a MysqlDB using dbms_passthrough. I have created a procedure to get the data from remote system to oracle db using dbms_passthrough but was wondering if this can be done using a view Edited by: