How to use BC4J with JDeveloper 9i in a Team

Hello
I'm not sure if I'm to stupid, but to say the truth I didn't found the clue how to share a BC4J Application between several develeopers. Maybe someone can give me a hint.
That's my situation:
Our team is going to develop a web application using BC4J and BC4J-JSP, nothing special I think.
But my problem is, that BC4J and especially the wizards refer to a lot of different files. Even simple changes often result in multiple files being changed in different parts of the project.
Creating a view link between view objects in two packages for example changes the view objects in both packages. Also the project (.jpr) file or several "BC4J.xcfg" files are changed very often.
So it is not easy to find parts of code from which I can say they are owned by one developer and others which are owned by another. Most often, if you have to merge the work of different developers, you have to edit the BC4J-XML-Files using an external editor. Or did someone find a better way? Please tell me!
So, what is the best way to share code between developers?
Should I partition the application by packages?
- advantage:
it allows a fine partitioning
- disadvantages:
it has the great danger that BC4J makes changes in other packages which will be overseen when merging.
Should I create a projects for each developer and distribute code between the projects using libraries?
- advantage: no unseen changes will happen, as the libraries are readonly.
- disadvantages: no view links between view objects in different projects (Libraries) are possible! Also a lot of "load errors" can occure when updating a library, which have to be manually corrected in the dependent projects.
Are source code management systems a real help in this problem or do they just "manage" the problem? I already tried SCM and PVCS but was not very happy with the way of working. As JDeveloper is not "really easy" to use with theese tools.
So I would like to get any hints how other developers are dealing with this problem. Are you using BC4J with JDeveloper 9i in a team? Please tell me how do it and how you have partitioned your application.
Thanks in advance
Frank Brandstetter

Hi,
I'm not sure whether my answer is good enough for you, but it might help.
First of all, you have to use JDev 9.0.3, because 9.0.2 has big problems with associations/view links between objects in different projects.
Creating a view link between view objects in two packages for example changes the view objects in both packages. Also the project (.jpr) file or several "BC4J.xcfg" files are changed very often.This is not completely true in 9.0.3, as you may choose not to create an accessor in the imported object (and usually you don't need it neither!). As for bc4j.xcfg, there is a trick: define a "standard" database connection name to use all over your project! This will prevent modifying these files all the time!
Should I create a projects for each developer and distribute code between the projects using libraries?
- advantage: no unseen changes will happen, as the libraries are readonly.
- disadvantages: no view links between view objects in different projects (Libraries) are possible! Also a lot of "load errors" can occure when updating a library, which have to be manually corrected in the dependent projects.I would say, projects for each application component, which by chance will be managed by a single developer at a time.
As for the disadvantages, in 9.0.3 you are able to properly create associations and links using read-only objects. Hopefully, the release version will solve some generation inconsistencies...
Concerning the errors that occur when modifying a library, this might be balanced by the relative independence of the components... If you are able to develop following the dependency tree, you will not meet the problem very often.
Are source code management systems a real help in this problem or do they just "manage" the problem? I already tried SCM and PVCS but was not very happy with the way of working. As JDeveloper is not "really easy" to use with theese tools.Indeed, I do not have a SCMS really able to manage merges in the BC4J XML files... We rather try not to arrive there!
So I would like to get any hints how other developers are dealing with this problem. Are you using BC4J with JDeveloper 9i in a team? Please tell me how do it and how you have partitioned your application.I really hope that my hints will help.
Regards,
Adrian

Similar Messages

  • How to use CVS with JDeveloper

    Hi all!
    I'm starting a new project and I would like to know how to use CVS with JDeveloper. This is my first project where I will have two more people working with me and I don't know what the better approach is. Should I use CVS that come with JDeveloper (option Internal to Oracle JDeveloper 10g) or should I configure an external repository? In both cases, I don't know what I have to do to have CVS working properly with JDeveloper. Actually I tried to create a new CVS connection in CVS navigator (using the access method Password Server), but when I test I receive the message: Could not open connection to CVS server: general socket failure, sure I must doing something wrong.
    I'm using JDeveloper 10.1.3.0.4
    Thanks in advance.

    Thanks for you help John!
    I installed cvsnt and when I try to create a new CVS connection inside JDeveloper I receive the message: authorization failed: server adminf29786.dixamico.com.br rejected access to /Diversos/DownLoad/CVS/usr/local/cvsroot for user JMartins
    I using pserver method and JMartins is my user in windows
    There is something that I'm curious about, when I was installing CVSNT I didn't configure any user and password, is there any default user/password?
    Thanks!

  • How to use ant with Jdeveloper 11g

    Hello, as we develop our app with ADF Faces & EJB 3.0 we are using tomcat 6.x + openEJB 3.0 as a sort of app server. So we need to build application archive 2 differrent methods (collapsed war for tomcat and ear for Jdev's integrated WLS). Besides, some xml files need to be modificated depending on target server. So we are going to use ant to build archives.
    My questions:
    - Where should I copy built archive for deployment on integrated WLS (should I copy it in ant's target or Jdev can do it for me)? Or there is another way to do the following: when one presses Run button on a page ant builds an archive for local WLS and then app is deployed and the page is opened in a new browser tab (just like default Jdev behaviour)?
    - Where can I find tutorial on integration of Jdev & ant?

    Here is a good example [http://biemond.blogspot.com/2009/04/weblogic-jdeveloper-ant-tasks.html]

  • Using Struts with JDeveloper, BC4J and OC4J 9.0.2

    Is it feasible to use Struts with JDeveloper 9.0.2, BC4J 9.0.2 and OC4J 9.0.2? We have an application that uses the BC4J JBO tags in version 9.0.2. We wish to use Struts and we want to retain the use of the JBO tags. Is there a way to do this without upgrading to 9.0.3?

    Here are two related questions:
    Can we upgrade to oracle9iAS 9.0.3 yet still use JDeveloper 9.0.2 and BC4J/JBO 9.0.2?
    Can we upgrade to JDeveloper 9.0.3 and BC4J/JBO 9.0.3 yet still deploy to oracle9iAS 9.0.2?

  • Using MySQL with JDeveloper 3.2 in a BC4J JSP Application

    Hi!
    I'm trying to create a BC4J JSP application using MySQL.
    I'm using the mm.mysql-2.0.4-bin.jar which I've registered in
    IDE and ClassPath. I created a connection with the option Other
    JDBC.
    I tested successfully the connection in the Connection Manager.
    After, I created a new project with BC4J. Using the 'tester' I
    got an error: no suitable driver.
    While editing the created view object I got a SQLException when
    I clicked in Attribute Mapping.
    How to solve this problem? I realized that other people here had
    this kind of problem but nobody gave a definitive solution.
    Thanks.

    Ok, I'm doing exactly the same Jdevloper BC4J over mySQL.
    I got one step further.
    In order to solve your problem:
    1. Add AddJavaLibFile ../lib/mysql_comp.jar (or whereever
    is your mysql driver) in bin/jdev.conf.
    resart the application
    In that case your driver will be available for all tasks.
    It works for me.
    My problem:
    When I run the Tester for my generated module, I obtain:
    No attribute with the Primary key property was found...
    Can you emeil me the procedure if you find how to use
    BC4J over mysql

  • BC4J with Jdeveloper 10.1.3.1.0

    Hi,
    I am new to jdeveloper. Can I use BC4J with this version ? I am looking for some sample code where it shows how to call my own Packages from a from and how to control my own transaction. Can anyone point me to some good samples ?
    Thanks
    Naresh

    ADF BC in 10.1.3 is the newest version of BC4J.
    You can find a complete developer guide for working with ADF BC as well as a tutorial here:
    http://www.oracle.com/technology/products/adf/learnadf.html
    (the left side of the page).

  • HOWTO: Use BC4J With or Without DB Triggers

    This HowTo describes how to use BC4J, database sequences and triggers
    and what are the ramifications.
    INTRODUCTION
    BC4J has the ability to work with database sequences in order to obtain a
    unique value when inserting records. BC4J also has the ability to
    work either with a 'before insert' trigger which automatically creates
    a new unique value for the primary key or without a trigger. When not using
    a database trigger, BC4J also has the ability to obtain the sequence value
    and set the primary key value.
    Before discussing the ramifications of using one approach or the other, let's
    show examples of how to use both approaches:
    BC4J & sequences WITH a database trigger
    and
    BC4J & sequences WITHOUT a database trigger
    HOWTO DEMONSTRATION STEPS
    To illustrate both scenarios a simple database setup script is provided which
    creates two tables:
    CUSTOMER_NT which DOES NOT have a before insert trigger and
    CUSTOMER_WT which DOES have a trigger.
    Database Install Script:
    <code>
    drop trigger customer_insert_trigger;
    drop table customer_wt;
    drop table customer_nt;
    drop sequence customer_wt_seq;
    drop sequence customer_nt_seq;
    create sequence customer_wt_seq start with 1;
    create sequence customer_nt_seq start with 101;
    create table customer_wt(
    id number,
    name varchar2(30),
    constraint
    customer_wt_pk
    primary key (id)
    create table customer_nt(
    id number,
    name varchar2(30),
    constraint
    customer_nt_pk
    primary key (id)
    prompt Inserting data...
    insert into customer_wt (id, name)
    values (customer_wt_seq.nextval, 'Mickey');
    insert into customer_wt (id, name)
    values (customer_wt_seq.nextval, 'Goofy');
    insert into customer_nt (id, name)
    values (customer_nt_seq.nextval, 'Daffy');
    insert into customer_nt (id, name)
    values (customer_nt_seq.nextval, 'Porky');
    commit
    prompt Creating trigger
    create trigger customer_insert_trigger
    before insert on customer_wt for each row
    begin
    select customer_wt_seq.nextval into :new.id from dual ;
    end;
    </code>
    The next step is to create the DEFAULT Entity Objects and View Objects using
    the Business Components Wizard.
    USING BC4J WITH A DATABASE TRIGGER
    Let's modify the entity object CustomerWt so it can use the database trigger.
    Edit the entity object CustomerWt by right-clicking in the navigator.
    Click on the 'Attribute Settings' tab and edit the ID attribute.
    - Uncheck 'Mandatory'checkbox. This allows you to insert without a value for the primary key
    - Check 'Refresh after Insert'. This obtains the value from the database generated by the trigger.
    - Check 'Updateable While New'. Id is only updateable when inserting.
    Click finish to complete the wizard. Save all and recompile the project.
    Now let's test our work.
    In the navigator right-click the application module and select 'Test..'. This will launch
    BC4J's built in tester. Connect to the application.
    In the tester double-click the CustomerWtView view object to run a test edit form.
    After the edit form renders, navigate through the existing records using the navigate
    buttons on the edit form. Now let's insert a record to execute the trigger.
    click on the '+' button to insert a record. Enter a value in the 'Name' field and commit the change.
    Observe that a new value has automatically been inserted into the Id field.
    That's it! You have successfully used BC4J and a database trigger.
    Now let's try it without a trigger..
    USING BC4J WITHOUT A DATABASE TRIGGER
    Now edit the entity object CustomerNT so it doesn't need a database trigger.
    Similar to before, edit the entity object CustomerNt by right-clicking in the navigator.
    Click on the 'Attribute Settings' tab and edit the ID attribute.
    - Uncheck 'Mandatory'checkbox.
    - Check 'Updateable While New'.
    An additional step is also required. The Create method will have to be modified to extract
    the value of the sequence.
    In the Edit EntityObject Wizard click the Java tab and select Create method and click Finish.
    The create method is generated in your Java fil e. In the Workspace view of the Navigator,
    expand the CustomerNt entity object in the navigator. Double-click
    CustomerNtImpl.java to open it in the Source Editor. In the Structure pane, double-click
    create(AttributeList). Modify the Create method so it looks like this:
    <code>
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl s = new SequenceImpl("customer_nt_seq", getDBTransaction());
    Integer next = (Integer)s.getData();
    setId(new Number(next.intValue())); }
    </code>
    Save and compile the project.
    Now test the ViewObject CustomerNtView using the tester as before.
    In the edit form of CustomerNTView click on the '+' to insert a record. Observe that
    just as before a new value has automatically been inserted in the ID field!
    TO USE A DB TRIGGER OR NOT TO USE A DB TRIGGER.
    Using a Database trigger sometimes preferable if you have non BC4J applications
    also sharing the database. In this case it is still safest to just let the database
    update it's own primary keys.
    If you don't have any other non-BC4J applications sharing the database, then not using
    a database trigger is perfectly acceptable and can have slightly better performance.
    The important thing to remember is that the option is yours to use either approach!
    null

    Thank you for the reply Jonathon. I am using a ViewObject which
    consist of several tables. I haven't tried the DB trigger
    approach but just using the BC4 approach in overriding the
    create method.
    Here is the parent class create as a part of the
    FasNameImpl.java file which does the job correctly.
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl l_seq = new SequenceImpl
    ("SEQ_CUSTOMER_ID",getDBTransaction());
    Integer l_next = (Integer)l_seq.getData();
    setCustomerId(new Number(l_next.intValue()));
    This is when I triedpassing the value to the child table. But I
    can't figure it out. I think the link is working fine if I had a
    ViewLink deployed but it doesn't look like it's doing the job
    for ViewObject.
    I am trying to call the childclass.method
    (FasCustomer.setCustomerId(l_next);
    But I am getting error.
    Thanks a lot for your suggestions,
    Kamran
    703 696 1121

  • Help me!! How to use JavaScript with JSP ??

    I am using JDeveloper and I created a screen in JSP which uses a bean for database connectivity and retriving info onto the page.
    The page has a ListBox where list items are populated from the database.My requirement is
    whenever the list is changed the page shuold be refreshed with the selected item info.
    I tried to use 'JavaScript' for triggering the event with 'onChange' event of the ListBox.But the event is not getting invoked. I think JavaScript is not working with JSP.
    Please help me with how to Use javaScript with JSP or any other alternative where I can meet my requirement.
    I have one more question...I have gone through the JSP samples in OTN and I am trying do download the sample 'Travel servlet' which show list of countries...etc
    I have also gone through the 'readme' but I don't know how to extract .jar file.
    I would be great if you could help me in this.
    Thanks!!
    Geeta
    null

    We have a similar need. We have used Cold Fusion to display data from Our Oracle Database. We have a simple SElect Box in HTML populated with the oracle data. When someone selects say the State of Pennsylvania. then we have an On change event that runs a Javascript to go get all the cities in Pennsylvania.
    Proble we are having is that inorder for the Javascript to work , we currently have to send all the valid data.
    Do you know of any way to dynamically query the the Oracle database in Javascript

  • How to use Terminal with KeySpan USB serial adaptor cable?

    I own a KeySpan model USA-19HS to use with our MacBookPro when working on clients networking equipment that require serial communication. I have used ZTerm with excellent luck, but it costs, and is yet another application that I dont really want. I would like to know if any one out there has exacing instructions on how to use Terminal with this adaptor. If I could write a file that had, say, the couple most common settings (9600-8-n-1, 57600-8-n-1, et cetera) that I could simply click on, to open a new Terminal window with those settings, then simply close that, and open a new window (apple+n) in order to get back to a default settings terminal window. All feedback is most appreciated.
    Thanks so much, Jason Sjobeck

    Hi, Jason. Welcome to the Discussions.
    You wrote: "All feedback is most appreciated."OK.
    1. Have you considered discussing this with Keyspan Support?
    2. Have you read the section "OSX has Terminal.app - why do I need ZTerm?" on the ZTerm Home Page? That seems to explain why one needs an app like ZTerm.
    3. A quick search of Keyspan's FAQ for your product and terminal doesn't yield much more than how to find the serial ports using Terminal.
    Likewise, this Google search also yields little, and variants of that search of such weren't particularly help either.
    It appears your inquiry seems to be a somewhat esoteric topic.
    4. Apparently, ZTerm X is a bit long in the tooth and there's no Universal Binary for it. It sounds, however, like you've tried it running on your MBP under Rosetta, yes?
    5. In researching alternatives to ZTerm for you, I note the followng:• The comment from "Reverb" on this page suggests C-Kermit or Kermit as a free alternative.
    • This tip on Mac OS X Hints cites Minicom as another option.6. You may want to try your question on the Unix Discussion.
    Good luck!
    Dr. Smoke
    Author: Troubleshooting Mac® OS X

  • How to use variables with

    I need to get the number of lines in internal table, which would
    be easy, using DESCRIBE TABLE itab LINES lines. But the problem
    is, that I get the name of this internal table in the field of
    another internal table, so I have to use the name of internal
    table as variable, but I don't know how to use variables with
    DESCRIBE TABLE (or if this is possible).

    Hi,
    REPORT ZPRUEBA782 .
    define two tables with diferent structures.
    data: begin of table1 occurs 0,
    registro type i,
    end of table1.
    data: begin of table2 occurs 0,
    registro type i,
    repid like sy-repid,
    end of table2.
    data: rows type i.
    start-of-selection.
    fill them with data
    do 1000 times.
    table1-registro = sy-tabix.
    append table1.
    enddo.
    do 1757 times.
    table2-registro = sy-tabix.
    table2-repid = sy-repid.
    append table2.
    enddo.
    call a form that receives as input the table and returns the number
    of rows as output.
    perform howmanyrows tables table2 changing rows.
    break-point. "evaluate the number of rows
    perform howmanyrows tables table1 changing rows.
    break-point. "evaluate the number of rows
    end-of-selection.
    form howmanyrows tables itable changing rows.
    rows = 0.
    loop at itable.
    add 1 to rows.
    endloop.
    endform.
    You can try it if you don't find a better solution.
    Cheers,
    Chaitanya.

  • How to Use Gmail With Apple's Mail?

    Answer:
    Now Itis not a Problem, Please go to this link and know how to solve this problem, Ihave configuir this in my mac pro. Have enjoy.
    http://picturemuseum.blogspot.com/2011/08/how-to-use-gmail-with-apple-mail.html
    http://mobilesuggestion.blogspot.com/2011/08/how-to-use-gmail-with-apples-mail.h tml

    I notice that it's possible to have sticky posts in these forums. See
    http://forum.java.sun.com/forum.jspa?forumID=534
    the Concurrency forum for an example. Posting a link to the FAQ in a sticky post might reduce the number of FAQs asked here by maybe 1%? Or posts like this one might do well as a sticky?

  • How to use Count with Date Parameters

    Hello,
    I am having issues using the Count() function in conjunction with date parameters.
    This is a Siebel report and in my report I have 2 date parameters(From Date, To Date). In a nutshell I am basically trying to count Opportunities that has a start date within the given date period. However I don't see a reasonable way to put my date parameters within the Count() function. The reason being is that I need to have a huge chunk of code to convert the dates into a common format that can be compared, and it won't even fit within the code block in my rtf template. I am not even sure how to put multiple conditional statements inside a Count() function since all the examples I have seen are very simple.
    Anyone have a suggestion on how to use Count() with date parameters?
    Thanks.

    Any chance you can get the date formats in the correct format from siebel?
    I don't know Siebel - so I can't help you with that. If you get the correct format it is just
    <?count(row[(FromDate>=date) and  (date<=ToDate))?>
    Otherwise the approach would probably need to use string function to get year/monthd/day from the date
    and store it into a varialbe and compare later the same way
    <?variable@incontext:from; ....?>
    <?variable@incontext:to; ...?>
    <?count(row[($from>=date) and  (date<=$to))?>
    Potentially you can use the date functions such as xdofx:to_date to do the conversion
    [http://download.oracle.com/docs/cd/E12844_01/doc/bip.1013/e12187/T421739T481158.htm]
    But I am not sure if they are available in your siebel implementation.
    Hope that helps

  • How to use javap with jar files ?

    how to use javap with jar files ?
    thanks

    As long as the jar is on the class path, your gold. So,
    javap -classpath myjar.jar mypackage.MyClass
    Chuck

  • How to use log4net with C# clients

    Hi,
    Can anybody please give an example of how to use log4net with C# clients? Foe java clients you can use the
    <logging-config>
    <destination>log4j</destination>
    How do we use it with C# clients? Any example will be appreciated.
    Thanks.
    -ali

    Ali,
    The following is an example on how to define a custom logger (including log4net) in tangosol-coherence-override.xml for coherence .NET client; you need Coherence .NET client 3.7.1 patch 1.
    <coherence xmlns="http://schemas.tangosol.com/coherence">
    <logging-config>
    <destination>common-logger</destination>
    <logger-name>log4net</logger-name>
    <severity-level>9</severity-level>
    <message-format>(thread={thread}): {text}</message-format>
    <character-limit>8192</character-limit>
    </logging-config>
    </coherence>
    You also need to configure log4net in app.config. Please see the following web page for more information:
    http://netcommon.sourceforge.net/docs/2.0.0/reference/html/ch01.html
    -Luk

  • How to use assert with wireless toolkit?

    Hi,
    I am trying to find out how to use assert with wireless toolkit. I have found that I need to pass "-source 1.4" to the java compiler. But I can't find any documentation on how to do it.
    I'm using J2ME Wireless Toolkit 2.2.
    thanks
    Ludde

    Here's a quote from an article on Java World at http://www.javaworld.com/javaworld/jw-11-2001/jw-1109-assert.html
    "To support the new assertion facility in J2SE 1.4, the Java platform adds the keyword assert to the language, an AssertionError class, and a few additional methods to java.lang.ClassLoader."
    So I really think it's part of 1.4.

Maybe you are looking for

  • How can I write to text file colorful texts

    I save system events in a text file,for example when system give warning message i want to write it red

  • Building ADF  application Using Maven

    I have a requirement to build the Adf application using Maven. My JDeveloper version is 11.1.1.3 and I imported the Maven plugins. When I create the new Fusion application , pom.xml is getting created in model project but not in viewcontroller projec

  • SATA Disks Issues with OEL 5.8 uek 64Bit

    Hi Oracle Linux Experts/Tech Gurus!, We are facing lot of issues with SATA disks at both Internal and External, if we use any SATA USB External Disk it make server hang and sometimes restart We face this issues with external SATA ARRAY connected at D

  • CAML query to select data in specfic range

    CAML query to select data in specfic range. I have a list-A and it has a column 'Col1' which has thousands records, I want to fetch data in a specific range as: select Col1,Col2 from list-A where Col1 > 100 and Col1 < 600

  • External HD suddenly won't show up in finder

    I have an Iomega external HD that I've had connected to my iMac for several years now. All of a sudden, it has disappeared from the finder. System Report shows it is connected, but neither rebooting the computer, the HD nor both has caused it to reap