Web container and EJB container

Web Container - EJB Container
What protocol used for communication and how do they communicate with each other?

Check out the J2EE blueprints:
http://java.sun.com/j2ee/blueprints/apmTOC.html

Similar Messages

  • Load-balancing and fail-over between web containers and EJB containers

    When web components and EJB components are run in different OC4J instances, can we achieve load-balancing and fail-over between web containers and EJB containers?
    null

    It looks like there is clustering, but not loadbalancing available for rmi
    from the rmi.xml configuration. The application will treat any ejbs on the
    cluster as one-to-one look-ups. Orion will go out and get the first ejb
    available on the cluster. See the docs on configuring rmi.xml (and also the
    note below).
    That is a kind-of failover, because if machine A goes down, and the
    myotherAejbs.jar are on machine B too, orion will go out and get the bean
    from machine B when it can't find machine A. But it doesn't go machine A
    then machine B for each remote instance of the bean. You could also specify
    the maximum number of instances of a bean, and as one machine gets "loaded",
    orion would go to the next available machine...but that's not really
    loadbalancing.
    That is, you can set up your web-apps with ejbs, but let all of the ejbs be
    remote="true" in the orion-application.xml file:
    <?xml version="1.0"?>
    <!DOCTYPE orion-application PUBLIC "-//Evermind//DTD J2EE Application
    runtime 1.2//EN" "http://www.orionserver.com/dtds/orion-application.dtd">
    <orion-application deployment-version="1.5.2">
    <ejb-module remote="true" path="myotherAejbs.jar" />
    <ejb-module remote="true" path="myotherBejbs.jar" />
    <ejb-module remote="true" path="myotherCejbs.jar" />
    &ltweb-module id="mysite" path="mysite.war" />
    ... other stuff ...
    </orion-application>In the rmi.xml you would define your clustering:
    <cluster host="230.0.0.1" id="123" password="123abc" port="9127"
    username="cluster-user" />
    Tag that is defined if the application is to be clustered. Used to set up
    a local multicast cluster. A username and password used for the servers to
    intercommunicate also needs to be specified.
    host - The multicast host/ip to transmit and receive cluster data on. The
    default is 230.0.0.1.
    id - The id (number) of this cluster node to identify itself with in the
    cluster. The default is based on local machine IP.
    password - The password configured for cluster access. Needs to match that
    of the other nodes in the cluster.
    port - The port to transmit and receive cluster data on. The default is
    9127.
    username - The username configured for cluster access. Needs to match that
    of the other nodes in the cluster.

  • Quick questions on the topic of Web Services and EJB POJOs

    I have been reading about Web Services and the data types that are aloud as operation parameters and return types. I was wondering what the standard practice for return types; is it to use the Entity classes straight and customize the WSDL instead of letting the EE container do it (avoid cyclic problems in the schema that can occur when using entity 1-to-many and many-to-1 mappings) or; is it to off load the data into a DTO/VO/Bean and let the EE container take care of all the schema mapping for the WSDL? I look at the EE tutorial and bought a EE book both use very basic examples that do not include connecting to a database or using EJB3 for the data store.
    Thanks for any information

    bump

  • Adaptative web service or EJB ?

    Hi everybody,
    I want consume a web service from  a system SAP R/3.
    Apparently, we can consume with component EJB ...
    What is the difference between a adaptative web service and EJB ?
    More security with EJB ?
    Thanks
    Rodolphe.

    Hi,
    We use for ejbs when we have to store data in database..
    if ejbs r like a medium for data transfer..where session bean contain ur business logic..
    u cn use webdynpro interface as well as jsp interface wid ejb..
    if u r using ejb u'll have to create an ejb projct first then u'll hav to create java proct which will contain ur wrapper class for fields.later on u'll have to create one application project tht wud b an Ear projct.nw u create a web service for session bean ..aftr doin this all u can test webservice which will b executed for ur business method.
    for more security u can use ejb security model :[http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Security.html]
    Web services r created for session bean..so that u cn directly access ur methods via url..
    for a detailed description of web service go through :- [http://help.sap.com/saphelp_nw04/helpdata/en/d6/f9bc3d52f39d33e10000000a11405a/content.htm]
    for ejb project go through this1 :[https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ca4a9c90-0201-0010-c389-8738cd51a88e]
    Regards,
    Khushboo

  • Strut and EJB

    Hi guys,
    I am trying to call EJB in my strut action classes using @EJB and got the error java.lang.NullPointerException while I use InitialContext to lookup for the EJB manually it works. The error indicates, to me that the container did not inject the EJB object at the run time. Can anyone explain to me why using annotation to inject the EJB in action classes would not work? Am I doing something wrong?
    Some environment info:
    ** Both my web application and EJB are on the same glassfish server
    ** The web application and EJB are not in the same .ear file, meaning they are separate applications
    thanks in advance, Kenny
    Edited by: user13433552 on 7/12/2010 16:36
    Edited by: user13433552 on 7/12/2010 16:36

    As far as I know, the JEE server can only inject into resources it "knows about", which are servlets, other EJBs, MDBs and for example JSF backing beans. Struts is not part of the JEE spec, so I guess it won't scan those classes.
    But perhaps Struts itself has a mechanism to inject EJBs into an action class?

  • Web services and basic auth

    Hi,
    I'm trying to set up a web service that should use basic authentication as security solution. I've used the admin console to define security policies and left the 'Check roles and Policies for' in 'Web applications and EJBs protected in DD' for my default realm.
    The security policy is set on the application inherited by the EJB and web service module.
    All is well when accessing the web services from a Java client but when I try to access them from a .Net client I get an '401: Unauthorized' response.
    If I change the 'Check roles and Policies for' setting to 'All Web applications and EJBs' the .Net client works but the Java client doesn't work anymore (it can't access the WSDL-file that it needs).
    I've tried to set up authorization settings in the web.xml for the web service module but it doesn't seem to make any difference.
    I use the WebLogic 8.1SP5 Server.

    What is VB?
    I know about J2ME, J2SE, J2EE, JMS, JNDI, JSP, JDBC, JAX-RPC, JAXP, JAXR, JAXM, JMX, JMI, JAF, JPDA and several other acronyms but I've never heard of VB.

  • Resource Bundle and EJB

    Hi All,
    Has anyone tried successfully loading a ResourceBundle properties file from within a EJB? I need to localize messages based on user locale. Hence the need for ResourceBundle.
    I read about set the EJB classloader's classpath with a reference to the resource bundle, but I don't know how and where to do this...
    Any help appreciated.
    Thanks and regards!

    Hi all,
    First, thanks all for your answers!! The suggestion from Warnerja has worked. I did packaged the resource files into a .jar file and imported it into my Enterprise App. Thus, I did make a reference in both web project and ejb project.
    Hello Dhinojosa, in answer to your question, my project objectives is provide full internationalization support to my application. My doubt is how to implement internationalization support on an application composed by one Web app project one Ejb project and both tiers have to access the resources...
    Thanks and regards,
    Flor.

  • Deploy PetStore Webapps and EJBs to different tiers

    Hi,
    Basically, the PetStore example deploys JSP/Web/EJBs to one node in one petstore.ear.
    I want to seperate the Web apps and EJBs to different nodes that running Weblogic
    by re-packaging the ear file to get a war file and ejb ear file. I deployed this
    war file to one node and ejb ear to another node. Is this the right approach?
    If so, how the JSP knows that the EJBs are in different node now?
    Thanks,
    Cathy

    Hi,
    Basically, the PetStore example deploys JSP/Web/EJBs to one node in one petstore.ear.
    I want to seperate the Web apps and EJBs to different nodes that running Weblogic
    by re-packaging the ear file to get a war file and ejb ear file. I deployed this
    war file to one node and ejb ear to another node. Is this the right approach?
    If so, how the JSP knows that the EJBs are in different node now?
    Thanks,
    Cathy

  • How to propagate JSP-Container-Login and EJB-Lookup?

    I think I have a very common problem which should be solved by multitudes of developers, but still I can't find sufficient info how to solve it. Here is my problem:
    - My App consists of 2 different EARs, one Web-EAR and one EJB-EAR
    - The Webapp uses digest authentication through web.xml security-constraint
    - Currently both EARs are using xml-based security-provider (jazn)
    - Any user has to log in to the webapp (this works)
    - the webapp delegates business-logic to EJB3 stateless SessionBeans
    - as long as I hardcode principal and password on the creation of the InitialContext, the authentication on the EJB-container works also fine
    - what I need is a propagation of the logged in webapp user to the EJB-container
    - I switched on subject-propagation as described in OC4J security guide chapter 18
    The problem: The propagation doesnt seem to work as expected. I still have to use (hardcoded) user/password credentials upon InitalContext-creation.
    - How can I reassure that subjectpropagation is switched in?
    - How do I have to instantiate the InitialContext in order to use propagation?
    This is what I do now:
    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.rmi.RMIInitialContextFactory");
    p.put(Context.PROVIDER_URL, ormi://localhost:23791/EJB-EAR);
    p.put(Context.SECURITY_PRINCIPAL, "myuser");
    p.put(Context.SECURITY_CREDENTIALS, "mypassword");
    Context = new InitialContext(p);
    When loggin into the web-container, the password of the logged-in user is not accessible anymore. Because of that I thought automatic subject-propagation shouold solve my problem. Did I misunderstood the concept of subjectpropagation (using ORMI)

    So far I have achived the following, but my problem is not really solved:
    As long as I use EJBs within the same EAR of my webapp everthing is fine.
    No need to proved credentials with the instantiation of the InitialContext. Also subject-propagation is not needed.
    At the moment I split ejb and webapp into separate EAR on the same OC4J-instance, I have to use the RMIInitialcontextFactory, to get acces to the EJBs at all. Subject-Propagation is obviusly on, because without the call of Subject.getSubject(AccessController.getContext) delivers null!
    So the remaining question is, how do I initiate the subject-propagation over RMI? Is there a special name under which I have to put my subject? Do I have to execute the actual ejb-method-call by subject.doAs.. and thus have to provide a wrapper for my EJB as a ProtectedObject?
    Anybody?

  • Security & Servlet engine and ejb container on different servers

              When you have the servlet container and the ejb container on different physical servers,
              how is the rmi connection meant to to be done while still maintaining the seucrity
              propagation from servlet to ejb tier?
              Assume that my user is already authenticated (forms) on the servlet tier. Do we then
              create a dedicated connection (InitialContext + url/username/password properties)
              to the ejb tier and store this connection in the HttpSession? (basically authenticating
              a 2nd time)
              OR,
              can the servlet container make a generic connection to the ejb container, and pass
              the users security context to the ejb tier transparantly?
              -Sam
              

    Nick Minutello <[email protected]> wrote:
              > Assuming that web container security is being employed, I guess the fundamental question
              > is: Is it necessary to create a "connection" (ie. an InitialConext) per user, or
              > can a "global" initial context be shared (in the end, the TCP connection is shared
              > anyway)?
              It doesn't create a 'connection' per user - when you use JNDI authentication (specifying
              principal and credentials when constructing InitialContext) it associates security info
              with the current thread for the duration of the request. If you cache InitialContext and
              use it later on some other thread it will not do anything.
              > Does it really matter?
              No ;-)
              > Thanks,
              > Nick
              > "Dimitri I. Rakitine" <[email protected]> wrote:
              >>Nick Minutello <[email protected]> wrote:
              >>
              >>
              >>> OK, so when I create the InitialContext, I just specify the URL (to call
              >>the remote
              >>> EJB container). The user ID and credentials are mapped automatically.
              >>
              >>> I obviously also need to cache the initialContext variable in my HTTPSession
              >>object?
              >>
              >>> What would happen if I had one InitialContext for the whole servlet engine
              >>- and
              >>> each thread used that. Would the thread (security) context still get passed
              >>- or
              >>> would the credentials for the original connection get used?
              >>
              >>If you use web-app security, container will associate security info with
              >>the current
              >>thread before invoking your servlet. If you do not use it and cache InitialContext,
              >>
              >>then the current user will always be 'guest' (except for the very first
              >>time when
              >>application calls 'new InitialContext()' with username/password.
              >>
              >>
              >>> Thankyou.
              >>> -Sam
              >>
              >>
              >>> "Vinod Mehra" <[email protected]> wrote:
              >>>>
              >>>>"Sam the bad cat" <[email protected]> wrote in message
              >>>>news:[email protected]...
              >>>>>
              >>>>>
              >>>>> When you have the servlet container and the ejb container on different
              >>>>physical servers,
              >>>>> how is the rmi connection meant to to be done while still maintaining
              >>>>the
              >>>>seucrity
              >>>>> propagation from servlet to ejb tier?
              >>>>>
              >>>>> Assume that my user is already authenticated (forms) on the servlet
              >>tier.
              >>>>Do we then
              >>>>> create a dedicated connection (InitialContext + url/username/password
              >>>>properties)
              >>>>> to the ejb tier and store this connection in the HttpSession? (basically
              >>>>authenticating
              >>>>> a 2nd time)
              >>>>>
              >>>>> OR,
              >>>>> can the servlet container make a generic connection to the ejb container,
              >>>>and pass
              >>>>> the users security context to the ejb tier transparantly?
              >>>>
              >>>>If the user has logged in already, ie the authenticated user is already
              >>>>in
              >>>>the execute
              >>>>thread, the identity should be propgated to the ejb tier transparantly,
              >>>>when
              >>>>you create the
              >>>>new initial context.
              >>>>
              >>>>--Vinod.
              >>>>
              >>>>
              >>>>>
              >>>>> -Sam
              >>>>>
              >>>>>
              >>>>
              >>>>
              >>
              >>--
              >>Dimitri
              >>
              Dimitri
              

  • Using Local EJB obect in web container that installed in on the same Web AS

    we can use the local ejb object in the application that runs in same JVM.
    The Web Container and EJB Container run in the same JVM when Web AS installed as Minimum Cluster Installation(one cluster node).
    But, what happened if we install the Web AS as Large Cluster Installation? Can we still use the local ejb objects in the Web Container?
    Best regards,
    Raja
    Message was edited by: Raja Nasrallah

    Hi Raja,
    Yes you can. When you use local EJB objects there's no remote communication and the web container will find them in the EJB container of the local cluster node. For the application providers this is transparent - they shouldn't care about the configuration of the cluster.
    Best regards,
    Vladimir
    PS: Please consider <a href="https://www.sdn.sap.com/sdn/index.sdn?page=crp_help.htm#lostme">rewarding points</a> for helpful answers.

  • Classes, Stateful EJBs and EJB Container

    Hi,
    We have several doubts about classes, servlets, and EJBs.
    We have been told that the instance of non-static classes from JSPs or servlets
    can be a problem if we have a big number of clients connecting to weblogic (or
    any other app server). Would it be a problem? Is it a better practice to instantiate
    those classes from EJBs?
    We have been told that EJBs are managed by the EJB container, and it uses a pool
    for serving them to clients, passivating and activating them. This would include
    the classes instantiated inside them. Is it true?
    If all our guesses are true, the better way to implement a search with pagination
    would be a stateful EJB, using handlers to save it in the client's session. But
    we've heard that stateful EJBs are really bad for server's perfomance. Is it true?
    We are using Weblogic 7.0. If so, what are they useful for???
    If they can be a problem, how to build that searching using stateless EJBs?
    Best regards,
    Ignacio Sanchez

    You're right, the concrete tag to use seems to be:
    <replication-type>InMemory</replication-type>
    Anyway, do you have any further explanation on Stateful's behaviour with many
    clients and pagination implementation?
    "Stanley Beamish" <[email protected]> wrote:
    >
    "Ignacio Sanchez" <[email protected]> wrote in message
    news:[email protected]...
    Thanks for your replies.
    Anyway, I still have some questions about stateful EJBs. In a clusteredenvironment,
    we've been told that stateful EJBs are only balanced before create()method. So,
    if we have already "created" the Remote interface, we're using it,and the
    server
    fails and must be balanced to another instance, what will happen? Willwe
    lost
    that Remote interface and data included in it?
    Not necessarily, you can enable replication, which means that your stateful
    EJB's state (values of i-vars) can be replicated across nodes in a cluster.
    Search through the WLS cluster documentation for details.
    SB
    And about your suggestion on pagination using stateless. Could youplease
    explain
    it in more detail? I haven't understood it well.
    Thank you very much for your attention.
    "Sri" <[email protected]> wrote:
    Hi,
    Look below for my coments.
    S
    "Ignacio Sanchez" <[email protected]> wrote:
    Hi,
    We have several doubts about classes, servlets, and EJBs.
    We have been told that the instance of non-static classes from JSPsor
    servlets
    can be a problem if we have a big number of clients connecting to
    weblogic
    (or
    any other app server). Would it be a problem? Is it a better practice
    to instantiate
    those classes from EJBs?It all boils down to your architecture. If you have a lot of clients
    connecting
    to web container then and if each client needs objects stored in session
    then
    you have to refactor your object distribution. But this could be avoided
    by separating
    static content from dynamic content (using proxies, load balancersetc),
    having
    more web containers etc. It's not necessary to instantiate these classes
    in EJBs
    always (then you are increasing your memory footprint). The generalguidelne
    is
    to do more heavy duty work as you go deeper into tiers hopefully handling
    less
    connections etc.
    We have been told that EJBs are managed by the EJB container, and
    it
    uses a pool
    for serving them to clients, passivating and activating them. Thiswould
    include
    the classes instantiated inside them. Is it true?
    True.
    If all our guesses are true, the better way to implement a search
    with
    pagination
    would be a stateful EJB, using handlers to save it in the client'ssession.
    But
    we've heard that stateful EJBs are really bad for server's perfomance.
    Is it true?
    We are using Weblogic 7.0. If so, what are they useful for???
    True if misused as stateful EJBs, just like HTTP sessions could bereplicated
    and could be activated/passivated.
    If they can be a problem, how to build that searching using stateless
    EJBs?
    You could cache searchs and pass identity and page numbers to theSLSB.
    Best regards,
    Ignacio Sanchez

  • Using local session bean interface from web container using EJB 3.0

    Hi,
    How can you use a local session bean interface from Java (rather than data controls) in a web container using EJB 3.0?
    I can use a remote interface by looking up InitialContext, but I can't find a local interface this way (even from another session EJB). I can use a local interface from an EJB using annotation "EJB", but as I understand, this is not available in the web container.
    If I try to add an ejb-jar.xml file, these seems to mess up by project...
    Hope you can help.
    Roger

    The portable way to retrieve an EJB reference in Java EE is to either inject it or look it up via the
    component's private naming environment. The simplest way is :
    @EJB
    private DocumentManager dm;
    The global JNDI name is only used as an implementation specific way to uniquely assign an
    identifier to a specific Remote EJB. It's best for this not to appear directly in the source code.
    There's more on global JNDI names in our EJB FAQ :
    https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html
    The alternative to annotations is to use an ejb-ref to declare the ejb dependency. The ejb-ref
    is declared in the standard deployment descriptor corresponding to the component doing the
    lookup. Each ejb-ref has an ejb-ref-name, e.g. <ejb-ref-name>DM_ref</ejb-ref-name>
    The code looks up the ejb-ref-name relative to the java:comp/env namespace to retrieve the
    EJB reference.
    DocumentManager dm = (DocumentManager)
    new InitialContext().lookup("java:comp/env/DM_ref");

  • Hybrid Web Container support of HTML5 Drag and Drop

    Good Morning Experts!
    Testing HTML5 drag and drop capabilities on iOS devices and simulators
    it doesnt appear to work. Searching Sybase/SAP documentation and
    unable to find whether Drag and Drop is supported in the Hybrid Web
    Container.
    I did test a jQuery plugin for drag and drop and it tested successfully on a BlackBerry Simulator (but not on iOS):
    http://www.stevefenton.co.uk/Content/Jquery-Mobile-Drag-And-Drop/
    Does the Hybrid Web Container support HTML5 Drag and Drop
    capabilities?
    Is there available documentation on HTML5 support for the Hybrid Web
    Container?
    Thanks!

    Bob do you know which one is the source? The link goes to a whole directory
    http://appliness.com/code/
    Haeme Ulrich
    ulrich-media GmbH <http://www.ulrich-media.ch>
    Unser Wissen, Ihr Können: Schulungen für Publishing.

  • Disappearing of Web Parts and a custom List Views containing XSL

    Hello!
    Recently, on the sites with Web Parts
    containing XSL or on List Views (.aspx-pages) containing
    XSL a message appears:
    Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator.
    Correlation ID:98bcff3d-5cc0-42b6-819c-41d36a4aa335
    And so it is as long as I do not take
    certain actions: indicated below as I
    struggled with this. In a day or two it
    repeats.
    Web Parts and List Views without XSL
    are displayed normal.
    Related LOGs for such Web Parts and List View containing XSL:
    Error while executing web part: System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Microsoft.Xslt.MethodCollection.ResolveMethodDef(Int32 tokenNum)
    at Microsoft.Xslt.MethodCollection.GetMethodInfo(Int32 methodNumber)
    at Microsoft.Xslt.STransform.GetCompiledTransform()
    at Microsoft.SharePoint.WebPartPages.BaseXsltListWebPart.LoadXslCompiledTransform(WSSXmlUrlResolver someXmlResolver)
    at Microsoft.SharePoint.WebPartPages.DataFormWebPart.GetXslCompiledTransform()
    at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)
    Herewith:
    1. Updates have been installed on the server
    with a further rebooting.
    2. No doubt the correctness of XSL:
    previously these web parts and list views were displayed.
    And it is displayed in SP Designer.
    My actions for troubleshooting (a day or two
    it reappears):
    For Web Parts containing XSL:
    - Server rebooting does not help.
    - Resaving of Web Part settings
    helps (Web Part menu -> Change Web Part -> OK).
    - Sometimes resaving of Web Part settings does not help. In this case restarting of Application Pool 'SharePoint - 80' with further
    resaving of Web Part settings helps.
    For List Views containing XSL:
    - Server rebooting does not help.
    - Server updating with futher rebooting
    helps.
    - Restarting of Application Pool 'SharePoint - 80'
    helps.

    Hi,
    According to your post, my understanding is that Web Parts and List Views with XSL were displayed unnormal.
    The error message is caused by that the time allowed for doing the XSL transformation was exceeded.
    In SharePoint 2010 the XSL transform cannot take longer than 1 second.
    There is now a hot fix available from Microsoft to resolve this issue,  the solution are at this page:
    http://support.microsoft.com/kb/2639184. 
    In addition, you can install  sharepointfoundation2010-kb2597136-fullfile-x64-glb.exe and use the PowerShell
    script below to make the change to the Timeout value
    If the issue still exists, you can perform an AppPool recycle in IIS.
    More information:
    http://englando.wordpress.com/2012/01/05/unable-to-display-this-web-part-xsltlistview-and-xsltdataview-web-part-issues-in-ie/
    http://hsdhaarsma.blogspot.in/2013/06/indexoutofrangeexception-in.html#!/2013/06/indexoutofrangeexception-in.html
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

Maybe you are looking for

  • SSRS: Setting Header from Top/Footer from Bottom

    Hello there guys We're using RDLC-Files to create some word reports. In our previous version, where we used RDL-Files on SQL 2008 R2, the Margin-Properties (Header from Top / Footer from Bottom) didn't get set at all an was always 0. This behaviour w

  • Bypassing authority check in function module

    hi experts I have developed an abap  report on material bom explosion using function module cs_bom_explosion Its working fine and all data are coming ok since I HAVE THE AUTHORITY OF T CODE CS03.. pls note all bom fn modules checks for authorization

  • Starting SQL Server Agent service

    I have a brand new 64-bit laptop and have installed both SQL Server 2014 and SQL Server 2012sp1, but neither instance is able to start its SQL Sever Agent Service.  The error is 1053:  'The service did not respond to the start or control request in a

  • How to enable record history for custom forms

    Hi All, I have developed a custom form but i am unable to view the record history when queried and it throws an error saying 'Record history not available here'. can some one help me in sorting out the problem. Thank you

  • I can't RDP my VM anymore suddently after shutting it down for one day

    I can't RDP my machine suddenly after shutting it down for one day. can anyone help please ? If it's this reliable we don't need it but we will make this decision later. we prepared this machine for demo today spending one week on it and today when w