Updating GlassFish Server Adapter with Eclipse 3.5 (Galileo) and 3.6 (Helios)

myfear | Jul 29, 2010 07:09 +0000
A coworker asked for this recently. If he tries to download the additional server adapter for GlassFish Java EE 5, Java EE 6 1.0.54 with his 3.5 Eclipse he gets the following error:
[... truncated to the relevant parts ;)]
Cannot complete the install because of a conflicting dependency.
Only one of the following can be installed at once:
Sun Application Servers and GlassFish Servers support 1.0.52
GlassFish Java EE 5, Java EE 6 1.0.54

He tried "check for updates" on the complete distribution but this does not work. Even downloading the packages and replacing them directly within Eclipse does not work. After some research, I believed I found a solution:

If you try to simply "install the 1.0.54 as a "new extension", you will get the above error because of the already installed .52.
What you really need is an update. Lets give it a try:

1) Start Eclipse 3.5.x. or 3.6.Mx (Make sure that the WTP (Web Tools Platform) plugins are installed.)
2) Start the installation procedure : select the Help>Software Updates>Find and Install... menu item.
3) Select "Search for new features to install" option and click Next.
4) Click New Remote Site...
5) Give a name (ie GlassFish Eclipse Site), enter the URL: https://ajax.dev.java.net/eclipse
6) Select this new site in the Sites to include in search list and click Next.
7) Select "GlassFish v2.x Java EE 5 and v3 Java EE 6 support" in the "Select the features to install" list and click Next.
8) Review the "Your original request has been modified." window and click Next.
9) Accept the terms of the license agreements and click Finish.
10) Wait for the installation to complete

This should be everything to do. But unfortunatualy this update fails due to a missing Manifest.mf within com.sun.enterprise.jst.server.sunappsrv_1.0.54.jar.
[...]
An error occurred while loading the manifest D:\Program Files\eclipse-jee-galileo-win32\plugins\com.sun.enterprise.jst.server.sunappsrv_1.0.54.jar.
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:114)
[...]

And: btw. This even does not work with 3.6. :(

If you are running Helios (3.6) you can make a new try. All the above steps with a different URL: http://download.java.net/glassfish/eclipse/helios.
The 11th step is to confirm that you are willing to install unsigned content. if you choose yes, you are asked to restart Eclipse. This works and you are done.

You are now able to create new Server Runtimes:
  • GlassFish 2.1 Java EE 5
  • GlassFish Server Open Source Edition 3 (Java EE 6)
  • Sailfin v2

I did not manage to get all this working with 3.5 :( Seems as if the whole server adaptor plugins situation is a mess at the moment. I hope, that this will be resolved shortly. Mainly because the GlassFish Plugins will move to the Oracle Enterprise Pack for Eclipse (OEPE) (compare this bug entry) and will be available at this url http://download.oracle.com/otn_software/oepe/helios/wtp in the future. This will happen with the next OEPE release (which is expected to arrive shortly). At the moment this page is not available.

Oracle: if you are reading this: Please provide updates for 3.5 also. Don't expect anybody to
a) use OEPE or
b) always update to the latest environments

If anybody knows a solution to this .. let me know ..

Oracle BPM 11g Integration with ADF and WebCenter Suite – Quick Overview

Andrejus Baranovskis | Jul 28, 2010 23:19 +0000
In May, I was blogging about new Oracle product release - BPM 11g. You can check this post - Oracle BPM 11g Integration with ADF and WebCenter Suite. I'm working now in this area and integrating BPM 11g Human Tasks into WebCenter Spaces 11g. Really good news for BPM people is that now we can create rich SOA type applications, it is possible to bring standard ADF Task Flows and Oracle BPM based ADF Task Flows together into WebCenter Spaces 11g Process Space.

I can access custom ADF Task Flows in WebCenter Spaces 11g, by declaring them and extending WebCenter resource catalog:


My custom ADF Task Flow is present in resource catalog - it brings filterable list of company employees and allows to modify employee details:


Through WebCenter Composer, this custom ADF Task Flow can be easily added to the Oracle BPM Group Spaces page:


From Oracle BPM Group Spaces page user can see and manage assigned BPM Human Tasks. Additionally, our custom ADF Task Flow for Employees data management is available on the same WebCenter Spaces 11g page:

JDK 1.6.0_21-b06 Eclipse vs. 1.6.0_21-b07 Oracle

myfear | Jul 28, 2010 03:24 +0000
Some confusion today about the latest 1.6.0_21 build. Oracle released the 1.6.0_21-b06 a few days ago. Beside some new features it also silently introduced one rebranding (With Java 1.6.0_21, the ("\\StringFileInfo\\%04x%04x\\CompanyName") has changed in the java.exe and javaw.exe programs from "Sun Microsystems, Inc" to "Oracle". ).
Any Eclipse version since 3.3 (released 2007) until and including the recent Helios release (2010) has been reported to crash with an OutOfMemoryError, because this flag decided whether the "-XX:MaxPermSize" argument needs to be used or not.(compare eclipse bug and Oracle JDK bug). There are a couple of workarounds available. Most basically they all talk about adding the -XX:MaxPermSize= VM argument manually. (Find a complete list here.)

This lead to some hard comments within the community and the bottom line was:
Making such a change in a Service Release, that breaks clients like Eclipse
(and probably others) seems like a no-no. Perhaps THEY could take it back and
release a jre 6u21a with the original vendor string. I claim that this can be
filed as a "critical" issue.
(Source: Martin Oberhuber 2010-07-14 11:01:34 EDT )

In consideration to Eclipse and other potentially affected users, Oracle has restored the Windows Company Name property value to "Sun Microsystems".
The change affected only the Windows version of the JRE, not the versions for Solaris and Linux. To accommodate this update the Windows build version will increase from 6u21-b06 to 6u21-b07. Solaris and Linux distributions will continue to ship build 6u21-b06.

This all feels like it is Oracle to blame again. Partly right:
a) for doing changes, that were not documented
b) for not testing their "own" products with a major IDE (Eclipse) on a major Dev OS (Windows).

But: It is also true, that the changed field is a platform specific field, which never should have been the basis for any configuration decisions taken in Eclipse. Therefore both parties have failed on this somehow.

Btw: The JDK7 releases will change all branding from Sun to Oracle, including the java.vendor and java.vm.vendor properties.

Oracle ACE and ACED at DOAG Conference and Exhebition 2010

myfear | Jul 28, 2010 00:52 +0000
Today the program for the German DOAG Conference and Exhibition 2010 was published. There are quite some ACEs on the agenda and I thought I share it to you.
If you are in Germany in November, you should visit the DOAG Conference. More than 300 sessions and for the first time separate JAVA and MySQL Tracks! Look at the complete conference program to find out more.

16.11.2010
12:00 - 12:45,
Benutzeroberflächen in SOALandschaften
Torsten Winterberg, OPITZ CONSULTING GmbH, Oracle ACE Director

13:00 - 13:45
Strategien auf dem Weg zum Cloud Computing
Björn Bröhl, OPITZ CONSULTING GmbH, Oracle ACE Director

15:00 - 15:45:
MYSQL: MySQL Idiosyncrasies that bite
Ronald Bradford, Oracle ACE Director

15:00 - 15:45:
Normalisierung von CDC Events mit Complex Event Processing (CEP)
Guido Schmutz, Trivadis AG, Oracle ACE Director

16:00 - 16:45:
Edition-Based Redefinition: Live in SQL*Plus,
Prof. Daniel Morgan, University of Washington, Oracle ACE Director

17.11.2010
10:00 - 10:45:
MYSQL: PBXT: A Transactional Storage Engine for MySQL
Paul McCullagh, PrimeBase Technologies GmbH, Oracle ACE Director

10:00 - 10:45:
Java Enterprise Edition 6
Markus Eisele, msg systems ag, Oracle ACE Director

12:00 - 12:45,
Advanced Oracle Troubleshooting - Live Session
Randolf Geist, Freelance Consultant, Oracle ACE

15:00 - 15:45,
Use Constraints to Improve the Performance
Joze Snegacnik, DbProf d.o.o., Oracle ACE Director

16:00 - 16:45,
State Engine als SCA Komponente in Oracle SOA Suite 11g
Guido Schmutz, Trivadis AG, Oracle ACE Director

18.11.2010
13:00 - 13:45,
Aus alt mach neu
Markus Eisele, msg systems ag, Oracle ACE Director

Oracle Forms 11g and Apex using external events

I remembered an old post of Roel Hartman where he integrated a form into apex.
He used a part of OraFormsFaces by Wilfred van der Deijl: the CommunicatorBean.
Using this CommunicatorBean forms could react on “external messages”.
Now with Forms 11g reacting on external events, this CommunicatorBean isn’t necessary any more(sorry Wilfred).

This is how I did it using external events…
First things first: set up the advanced queueing mechanism.
Check this tutorial which includes setting up advanced queueing.
I created a little form based on emp(nothing fancy)…

The new feature in forms:

With the following properties:

What should forms execute when this event happens?
This has to be specified in the When-event-raised trigger.

In this case we retrieve the payload and extract the empno from it.
The empno is used to set the default where clause on the block.
When there’s an empno on the queue, forms will query that employee.
That’s all for the forms part…
Now I created a little Apex page with two regions:

The Employee details will be our form.
So I put our form in the HTML using an iframe:

Using a “select list” it’s possible to select an employee.

This is the result:

Now the purpose of the select list is to choose an employee and show the detail information in our form.
In order to do this, the select list calls a javascript function.

This javascript function is created in the HTML header

The code behind this:

<script language=”JavaScript” type=”text/javascript”>
function getEmployee (){
var emp = $x(‘P2_EMPNO’);
// send request
var ajaxRequest = new
htmldb_Get(null,&APP_ID.,’APPLICATION_PROCESS=get_emp’,0);
ajaxRequest.add(‘P2_EMPNO’,emp.value);

// get response
ajaxResult = ajaxRequest.get();
ajaxRequest = null;
}
</script>

This javascript function calls an application process and uses the empno as parameter.
The application process put the empno on the queue.

When changing the select list, the form is queried

This is a solution to integrate forms into another application whether it’s Apex, ADF or another web applicaton.
When it can put something on the queue, forms can react on it.
And yes, I could do it using the javascript feature in Forms 11g. I know…
And for Apex it’s probably a better solution, as we can skip the AQ part and make calls to and from forms in Javascript.


ADF Task Flow Region interaction with Parent Action activity

Edwin Biemond | Jul 26, 2010 13:04 +0000

When you use Task Flows in your ADF 11g Web Application then you probably need to have some ADF Region interaction with other Regions or its containing JSF page. In this blogpost I will show you can control a dynamic Region from a other Region ( Task Flow ) with a Parent Action Activity. Off course you change the bean used for the dynamic region from backing bean scope to session bean scope and call this bean from every Task Flow. This works perfectly but you ADF has a better solution for this and you don't need to change the scope of the dynamic Task Flow bean.

For this blogpost I made an Example with one JSPX page and this page contains two Regions. The first is the Top TF and the second is a dynamic Region with Center 1 & 2 TF. Start is part of the JSPX page and can call the Center 1 & 2 methods directly in the dynamic region bean.
For showing the Center Task Flows from the Top Task Flow you can use the Parent Action activity. 

Here is the code of the main JSPX page with in the start facet ,the two buttons which can call the backingbean methods.
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
  <jsp:directive.page contentType="text/html;charset=UTF-8"/>
  <f:view>
    <af:document id="d1" title="Example">
      <af:form id="f1">
        <af:panelStretchLayout id="psl1" startWidth="239px" topHeight="95px">
          <f:facet name="center">
            <af:region value="#{bindings.dynamicRegion1.regionModel}" id="centerRegion"/>
          </f:facet>
          <f:facet name="start">
            <af:panelHeader text="Start" id="ph1" inlineStyle="width:239px; height:423px;">
              <f:facet name="toolbar">
                <af:toolbar id="t1">
                  <af:commandToolbarButton text="Center1"
                                           id="ctb1"
                                           action="#{backingBeanScope.MainRegionHandler.showCenter1TF}"/>
                  <af:commandToolbarButton text="Center2"
                                           id="ctb2"
                                           action="#{backingBeanScope.MainRegionHandler.showCenter2TF}"/>
                </af:toolbar>
              </f:facet>
            </af:panelHeader>
          </f:facet>
          <f:facet name="top">
            <af:region value="#{bindings.top1.regionModel}" id="centerTop"/>
          </f:facet>
        </af:panelStretchLayout>
      </af:form>
    </af:document>
  </f:view>
</jsp:root>
The dynamic region bean with the showCenter1TF and showCenter2TF methods.
package nl.whitehorses.adf.tf.view.beans;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;

import oracle.adf.controller.TaskFlowId;
import oracle.adf.view.rich.context.AdfFacesContext;

public class MainRegionHandler {

    private String taskFlowIdCenter1 = "/WEB-INF/center1.xml#center1";
    private String taskFlowIdCenter2 = "/WEB-INF/center2.xml#center2";
    private String taskFlowId = taskFlowIdCenter1;

    public MainRegionHandler() {
    }

    public TaskFlowId getDynamicTaskFlowId() {
        return TaskFlowId.parse(taskFlowId);
    }

    public String showCenter1TF() {
        taskFlowId = taskFlowIdCenter1;
        AdfFacesContext.getCurrentInstance().addPartialTarget(getUIComponent("centerRegion"));  
        return null;
    }

    public String showCenter2TF() {
        taskFlowId = taskFlowIdCenter2;
        AdfFacesContext.getCurrentInstance().addPartialTarget(getUIComponent("centerRegion"));  
        return null;
    }

    private UIComponent getUIComponent(String name) {
        FacesContext facesCtx = FacesContext.getCurrentInstance();
        return facesCtx.getViewRoot().findComponent(name);
    }

}
From the Start facet on the main page it is easy to show the right Center Task Flow. From the Top Task Flow you need to do more. First you need to change the parent Task Flow. ( this works in a bounded or unbounded Task Flow ). Add two Method Call activities and a Wildcard Control Flow Rule.
You will later call the goCenter1 and goCenter2 Control Flow cases  from the Top Task Flow. This will activate the method call which call the right method in the dynamic region bean. After a successful invocation, it will use the return Control Flow case to return to the page.
The property window of the showCenter1TF Method Call activity looks like this. Here you need to provide the Method value and provide the Fixed Outcome.
Next step is to change the Top Task Flow where you also need to add a Wildcard Control Flow Rule together with two Parent Action activities.
The Parent Action property window looks like this. Here you need to provide the Parent Outcome , this must match with the Control Flow Case of the parent Task Flow and here is the Outcome also return.


And at last the Top fragment with the two buttons which calls the right Control Flow Case.
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
          xmlns:f="http://java.sun.com/jsf/core">
  <af:panelHeader text="Top TF" id="ph1"
                  inlineStyle="width:995px; height:84px;">
              <f:facet name="toolbar">
                <af:toolbar id="t1">
                  <af:commandToolbarButton text="Center1"
                                           id="ctb1"
                                           action="showCenter1TF"/>
                  <af:commandToolbarButton text="Center2"
                                           id="ctb2"
                                           action="showCenter2TF"/>
                </af:toolbar>
              </f:facet>
  </af:panelHeader>
</jsp:root>
That's all and here is the example workspace.

We All Are One

As of the evening of Tuesday July 27, the Website merger, which was originally described in late June via the FAQ below, will have come to pass. We are re-publishing and updating the FAQ accordingly.

We are not oblivious to the impact of these changes on regular users. A massive amount of work has gone into making the changes as smooth as possible, but we won't get it 100% right immediately. As we receive your feedback, we will make adjustments on an ongoing basis. (For example, we have already rolled back the Java API redirects that caused so much consternation in the community and are working on a more acceptable permanent solution there.)

So, without further ado...

What's happened?

On July 27, we completed the migration of all non-obsolete content from developers.sun.com, java.sun.com, and BigAdmin to a completely re-architected, re-designed Oracle Technology Network site. This site - which offers different entry points for Java Developers, Database Admins and Developers, System Admins and Developers, and Architects - reflects the full diversity of this huge technical end-user community.

Whenever possible, we have preserved the familiar information architecture of Sun's sites, so that if you were a user of those sites, you will find what you're looking for.

Will all my bookmarks break?

No. We have implemented 1:1 redirects for the most popular and important content (such as Java APIs) that has moved. For other content, folder-level redirects are available, so instances of 404s should be uncommon. Furthermore, domain-level URLs (e.g., java.sun.com) will continue to work.

I'm only interested in what I'm interested in. Will I be able to ignore everything else?

Yes. As explained previously, we have created new entry points that will allow Java developers, for example, to browse to the Java APIs with a minimal number of clicks.

Will oracle.com/technetwork/java focus exclusively on Java Technology, just as java.sun.com does?

Yes. There is no change in the content strategy for supporting Java developers in a Technology-focused manner. For Oracle-specific development and deployment options, product pages are also be available for those interested in them.

What will happen to docs.sun.com?

There is no imminent migration planned at the current time and you can continue to use this URL for the foreseeable future.

What about forums, blogs, and wikis?

The integration of forums, blogs, and wikis are separate projects on a different timeline, and we will report on their status as soon as appropriate.

How do I report problems?

The Community Feedback Discussion Forum (registration required) is the best channel for reporting problems. Yes, there may be some rough edges for a while, but we are committed to an ongoing process of continuing improvement.

Will I automatically become an Oracle Technology Network Member?

No, to become an Oracle Technology Network member you will have to specifically opt-in. Membership is free and entitles you to free software downloads under the Oracle Technology Network Developer license, read/write access to Oracle Discussion Forums, and your choice of several monthly developer newsletters. If you currently have a Sun.com identity, please stand by for communications from us about this process.

How can I stay up to date, as well as provide feedback about the integration of these communities to Oracle?

First of all, we welcome (and need!) your feedback about this process via this blog. Second, you can follow and participate in our Twitterstream (@oracletechnet), where all major announcements will be made. Regardless of the channel you use, we will answer your questions as quickly as possible.

Also, if you are a Java developer, consider subscribing to Oracle's Java Developer Newsletter, which is a great source of technical and community information pertaining to Java development as well as Oracle's Java-based middleware and IDEs. We will also communicate important admin/Solaris-related news through a new Solaris Community Newsletter. (Subscribe to all of Oracle's Developer and Admin newsletters here.)

And, we're off...

iPad for Business? About the why …

myfear | Jul 26, 2010 05:09 +0000
I am playing around a bit with the iPad since some weeks. And a while ago I told you, that I am not going to buy one. This did not change for me personaly. But what I have seen is, that there is growing interest in the device and the possible usecases with business customers. This is hard to believe on the first look. But if you take some time to think about this, you know why. This is a brief introduction into the topic. Why there is such a hype about the iPad for business and what are the basics behind it.
Upcomming posts will talk about the technical details and design approaches. Stay tuned for this.

The younger history
Apple sold more than 3 million devices in the 80 days after its introduction in the US. The press release states that the iPad is
.. a revolutionary and magical product that allows users to connect with their apps, content and the Internet in a more intimate, intuitive and fun way than ever before.
(Source: Apple Sells Three Million iPads in 80 Days)
It's hard to follow, if you are not an Apple fanboy, but what is shure is, that Apple is able to build up a magical hype around their product like they did before with others. A more recent survey done by Citrx shows that 56% of the companys are willing to buy iPads.
Note that this informal survey was completed by 558 individuals who came to the Citrix web site and had an interest in the iPad. This means they are predominantly Citrix customers who understand the capability to safely enable access to company apps and data in the data center.
(Source: Citrix blog

Built-in Apps for business?
Apple launched a seperate iPad for business page. If you google around for the words iPad and business you get there directly. According to this, Apple is willing to let you go into business with their built-in applications. These are namely:
  • Email, Calendar, and Contacts.
  • Safari web browser.
  • iWork for iPad (Keynote, Pages, and Numbers)
Beside this, you get built-in security and easy configuration together with beautifull accessories. But, hey, is this realy the way, Apple likes to see their products beeing used in business? As a briefcase, a whiteboard and a dashboard replacement with email and calendar? Next big thing for Apple in terms of business is the basic integration approach for enterprise infrastructure. If you are willing to integrate the iPad to your enterprise you can look at Apple's
Enterprise Deployment Scenarios (PDF). They describe how to integrate the iPad into enterprise environments. Based on the following products and standards:
  • Microsoft Exchange
  • IMAP, CalDAV, and LDAP
  • Virtual Private Network (VPN)
  • WPA2 Enterprise/802.1X
  • Digital Certificates
  • Device Configuration Overview
  • Over-the-Air Enrollment and Configuration
All this sounds quite nice. But I was still missing the real usecases behind this.

What is ready to add?
Let's look at this in more detail. If you are not comfortable with the built-in apps and you are willing to use more of your business applications and infrastructure, than you have to go for the apps. Apps is an abbreviation for application. An app is a piece of software. Many vendors refer to their services as "App". But to me it seems as if this is more closer related to iOS apps than to any other product or service. The Appstore hosts roughly 225.000 Apps (May 2010, see source). There even is a separate apps for work category. The number of showcased applications is not too big. A category search for "business" apps on the appstore reveals more apps but there are enough not realy related inbetween. But you might find usefull things like a FedEx.
The most usable thing you can get is the Citrix Receiver App for the iPad. It gives you access to all of your corporate Windows applications and desktops. (visit the product page for more information)

Why should you care for the iPad?
That's all nice information. But what about reading sooo much text on a development blog? And why the hell should you care about the iPad?
According to the results of the Citrix survey, most people are willing to use the iPad for increased mobility (80%) and improved productivity (74%). 62% of the participators are hoping to get business information and dashboards on it. If you compare this to the sold devices and the available apps, you get a business case. If you have a customer working with your apps, he is most likely going to have an iPad soon. Go: Make your applications ready for the it and sell it to him!

Upcomming: What and how to create. Stay tuned ...

Team Coding Installation for Oracle PL/SQL

Gerger Consulting | Jul 26, 2010 01:32 +0000
If you write a lot of PL/SQL code, you must have thought of it at least once. It is probably when your teammate accidentally overwrote the same package that you saved seconds ago. Yes, I am talking about Team Coding.

If you are using SQL Navigator or TOAD for Oracle, you are just couple of clicks away to refine your PL/SQL development experience. In this article, I will outline the steps to install Team Coding to your Oracle Database to use with SQL Navigator. If you are using TOAD for Oracle, then I recommend you reading this article instead.

Now that you are still with me...

First things first, I haven't tried these installation steps on all possible versions of Oracle or SQL Navigator, but I believe they would work for most of them. In the office, we are using Oracle DB versions 10.2.0.1.0 and 10.2.0.4 and SQL Navigator version 5.1.

Here are the steps you need to follow:
  1. Using SQL Navigator, connect to Oracle DB as SYS user or a user that has SYSTEM privileges
  2. From the menubar, select Tools->Server-Side Installation Wizard. Just click Next in the first screen.
  3. If they are not already selected, select "Base SQLNAV Repository" , "Explain Plan Support" , "Team Coding Support" and click Next.
  4. In the next screen, you are asked for user credentials and TNS connection name. Once you provide the information and click connect, all available tablespaces will be filled to the tablespace combobox. You should choose the tablespace that holds the Database objects that are going to be versioned. In our environment, we use the "USERS" tablespace for development, so I picked "USERS" and clicked Next.
  5. In this step, type a password for the SQLNAV user that the installation scripts will create. Click Next.
  6. Do not change the defaults in the next three screens in the Wizard and just click Next to let installation create necessary roles to handle team coding configuration.
  7. Click the Install button, and go get a cup of coffee.
  8. Connect to Oracle using the SQLNAV user and password you typed at step 5.
  9. From menubar, select Team Coding -> Status. You should see that "Team Coding" is installed but not yet enabled, and all your permissions are checked.
  10. Click Settings, and select only "Enable Team Coding" and click OK. Now you should see that Team Coding is enabled.
This completes the installation of Team Coding.
To see Team Coding in action, open a PL/SQL package that is covered by Team Coding and attempt to modify it in the editor. It won't work. This is because you haven't checked out the package yet. Click the small icon in the toolbar  to check out the package. Now you should be able to edit it. When you done coding, simply check in the package, so that it becomes available to other developers for editing.

One thing that we realized after using Team Coding is that, it uses OS user to log you in, and it fails to protect packages if two separate developers use the same OS user, like "Administrator". So Team Coding works better if every developer logs in to his computer with a uniqure OS user.
This is obviously not a source code versioning system. It is merely a locking mechanism that prevents accidental overwrites. Later, I will post another tutorial to integrate Team Coding with CVS.
Serkan Kasapbaşı

ADF 11g Skinning: Three ways to change look and feel

luc bors | Jul 26, 2010 00:53 +0000
On the JDeveloper ADF forum there are many questions on how to change the look and feel of components. In this post I'll explain three ways to do that.Setting skin Selector propertyFor this we need to define a custom skin.<?xml version="1.0" encoding="ISO-8859-1"?><skins xmlns="http://myfaces.apache.org/trinidad/skin"> <skin> <id>mySkin.desktop</id> <family>MySkin</family> <extends>

Managing ADF Security Using Oracle Enterprise Manager 11g

Recently I had a long meeting on customer side, to discuss and describe various ADF Security management strategies in production environment. Good news - at the end, everyone left this meeting happy and with correct understanding of benefits given by ADF Security. I will describe how you can manage Application and Enterprise security roles, as well as Permissions, after ADF application deployment on production WebLogic server.

Download sample application - ApplicationRoles.zip. This application contains one Application level role - accountants, for testing purposes it is mapped to Enterprise level role - Accountants:


There is test user defined - dev1, granted with Enterprise role:


Application contains one JSPX page and one ADF Task Flow with fragment. JSPX page is granted to be viewable for any authenticated user:


ADF Task Flow only to accountants Application role:


Sample application is configured not to migrate any users or groups defined inside local jazn-data.xml. This means we will consume users and groups defined in WebLogic server, without uploading those ones from development environment:


After deploying application, I can see there are no users uploaded from development environment, thats what I want:


Now, when deployment is done, we can open application control screen in Oracle Enterprise Manager 11g. There is Security group in the menu - it gives access to application policies and roles. This means we can manage ADF Security directly, even after application was deployed on the server, without redeployment:


I can see two Application Policies defined based on authenticated-role and accountants roles:


We can access Application Role - accountants:


And see details for this role:


Interesting thing, I can still see that Application Role accountants is mapped to Accountants group (Enterprise Role). It should not be visible, because with deployment profile I have declared not to upload any users or groups from development environment. I will try to delete this mapping:


However, delete operation fails with error - such role is not found:


This means it is good practice to remove any mapping between Application and Enterprise Roles in development environment, before doing actual deployment:


After removing role mapping in jazn-data.xml and redeploying, I can see correct picture - no Groups assigned to Application Role:


Now I will switch to WebLogic console, and I will define new Group (Enterprise Role) - FinanceG. This role may come from Active Directory, etc:


I have defined new user on WebLogic server as well - john:


This user is granted with group - FinanceG:


Now its time to open Oracle Enterprise Manager 11g and map FinanceG group with Application Role - accountants:


Through Oracle Enterprise Manager 11g we can browse and assign groups from WebLogic server. All users from FinanceG group, will be able to access resources protected by accountants Application Role:


Login as user john, granted FinanceG group:


Both - page and ADF Task Flow are rendered:


If I would login as user scott, who is not granted with FinanceG group:


Region from ADF Task Flow will not be rendered, thats correct because user scott is not authorized to access this region without accountants Application Role:


Let's say organization security policy is changing and it is not allowed anymore to show Countries page without proper role assignment. You may think, application change and redeployment will be required. However, there is easy way - we can change Application Policies directly in Oracle Enterprise Manager 11g. Open Application Policies screen and select main page permission granted to authenticated role:


Grant this permission to accountants Application Role:


Remove authenticated role from the list:


Application becomes secured completely only by accountants Application Role:


All users from different groups, not mapped with accountants Application Role, will be unauthorized to access application (user scott in this case):

JavaOne Schedule Builder is Live!

JAVAONEJT060309509.1024x768.jpg Use Schedule Builder to Plan Your JavaOne 2010 Experience

To get the most out of a conference, you've got to have a strategy. The good news is, when you register for an Oracle conference, you can kick off your plans with Schedule Builder.

Simply log in and search through hundreds of sessions and hands on labs to find what interests you, enroll in sessions, and build your own agenda.

You can use our Recommend Sessions engine to pinpoint sessions, demos, and exhibits that are relevant to you. Conduct searches by using keywords or user-generated tags. Create personalized agendas to plan your week. Plus, set reminders and much more.

Best of all, you can even use Schedule Builder to enroll in sessions and get early access to them at the conferences.
 
Haven't registered for a conference yet? Check out the Content Catalog to see all the GREAT content and Register Today!

Attend Java University at Oracle OpenWorld

Learn About the Hottest Technical Topics
computerlab.jpg
Don't miss an exceptional training opportunity. Attend our 12th annual Java University training event on Friday, September 24, 2010, at Oracle OpenWorld, Moscone Center, San Francisco.

Choose from full-day and half-day sessions such as Developing Java Technology Applications with the Java Persistence API 2.0. This course covers how to use Java Persistence API to develop and deploy data-driven applications with Java EE and Java SE. Or choose Designing and Implementing Secure Java Web Services to design, implement, deploy, and maintain secure Web services and Web service clients.

For only US $750, you can add Java University to your conference package. Check out all the classes. And register now! See you at Java U.

Oracle Open World 2010: Forms in the Middle of Middleware

People attending Open World to have a closer look at fusion technologies and how to integrate them in your existing applications, need to check out the following session:

  • ID#: S315945
  • Title: Oracle Forms in the Middle of Middleware with Oracle Product Management
  • Track: Application Servers, Application Grid, and Development
  • Date: 22-SEP-10 Time: 13:00 – 14:00
  • Venue: Marriott Marquis Room: Salon 9

Together with Grant Ronald we will talk you through the possible scenario’s to modernize your existing forms applications. After each scenario we will demo the functionalities and showcase some of the success stories we’ve conducted together with our benelux customers.

The different scenario’s include upgrading to 11g to use the event-driven architecture, integrate with existing applications such as apex, .net, google maps, bpel, …

In other words if you’re using fusion technologies such as BPEL, OSB, ADF, … you can easily integrate these with your existing forms applications using the new features provided in 11g.


Unboxing the JavaRoadTrip t-shirt

myfear | Jul 21, 2010 01:45 +0000
Java developers, architects, programmers, and enthusiasts: get ready for a real adrenaline rush. Java Road Trip: Code to Coast tour as it journeys to 20 cities across the United States showcasing Oracle's commitment to everything Java.

I caught them during ODTUG Kaleidoscape earlier this year and brought some t-shirts home. One of them was a present for a fellow co-worker of mine. He got it yesterday and here is the process of unboxing it. It was not too easy taking the pictures. He was quite excited!

Packed as a surf board. Wrapped up ;)

Ripping away the fancy paper

Trying to figure out what it realy is ..

Uncovering the print

Yes, it's a t-shirt ...

Links and Tips for OpenWorld, JavaOne and OracleDevelop 2010

myfear | Jul 20, 2010 23:25 +0000
Even if I still did not get my confirmation it is time to use the so called summer hole (even in germany we call it like this :)) to browse around and get ready for the number one event with Oracle and Java. This is a brief list of things to remember, to do, to see and links to visit prior or during your stay at one of the three conferences in San Francisco this year.


Visiting the US - p&p
Get yoursel a visa or at last an esta certificate.
Make yourself familiar with the needed prerequisites for entering the US. The http://travel.state.gov/ is a great source of information. If you are unshure about anything, ask the US embassy in your home country. They are very helpful (at last in germany). It is not too big trouble to enter the US but you need some papers and patience. Be shure to have everything needed to enter the US weeks before entering the plane. That saves you a lot of pain.

Staying in San Francisco
For your convenience, Oracle has negotiated the lowest rates possible for Oracle OpenWorld San Francisco 2010. So it is possibly the best to check the official Oracle OpenWorld 2010 Housing page for the latest information. There is a list with the offical conference hotels, where you should find a place to take a nap. You should book as early as possible.

Onsite
Make a plan! Content catalog. All sessions will be accessible only if you have scheduled them within your schedule builder. You can access this thing through the registration page. Don't be a fool and simply try to rush into any session withou prior registration. That will not work in most of the cases (even if in some it will).

must-attend
There are many smaller to bigger events happening around OOW, J1 and OD in SF. The ones, you can't afford to miss are the following:

Welcome Keynote
Sunday: 5:30PM Oracle executives Judith Sim, Charles Rozwat, Safra Catz, and Steve Miranda along with Ann Livermore, executive vice president, HP Enterprise Business. Nice intro into OpenWorld.

Welcome Reception
After Sunday's opening keynote session Oracle OpenWorld 2010 gets kicked off with an authentic Oktoberfest celebration. Raise a stein (or two) of the finest German ale with fellow Oracle customers, partners, developers, and technology enthusiasts from around the globe. Located in the Howard Street Tent and Yerba Buena Oktoberfest Beer Gardens.

The FMW Keynote
Tuesday: 8:00AM Thomas Kurian, executive vice president, Product Development, Oracle, and Thomas Kilroy, senior vice president and general manager at Intel, speak Tuesday morning. This will not be too crowded. But also a very intersting Keynote for the middleware people.

The Larry Ellison Keynote
Wednesday: 2:30PM Larry Ellison presents his Oracle keynote Wednesday afternoon, joined by a key executive from Infosys. This is the place, where all the "show" is happening. Be there early. Don't think about 30 minutes. Think about 1 or more hours!

Appreciation Event
Happening Wednesday, Sept 22 on Treasure Island. Grammy Award Winners the Black Eyed Peas and Eagles cofounder Don Henley as headline acts, the 2010 event promises to be the ultimate in thank-you celebrations. Complimentary shuttle service to and from Treasure Island will be provided

It's a Wrap!
Happening Thursday, Sept 23 in the Yerba Buena Gardens and the Howard Street Tent. Have some beer and wrap up with your friends and partners.


stay connected
There are many many social activities going on during the conferences. You should check the relevant groups and accounts for the individual offerings. Here is a brief list. It might not be complete but a start:

Facebook
Oracle OpenWorld
JavaOne and Oracle Develop
Java
Oracle

Twitter
Oracle OpenWorld
JavaOne
Oracle Develop
Oracle Technology Network

LinkedIn
Oracle OpenWorld
JavaOne and Oracle Develop

Oracle Mix
Oracle OpenWorld
JavaOne
Oracle Develop

Blogs
Oracle OpenWorld Blog
OTN Blog

walking around in SF
Even if you schedule is packed, you have to walk around a bit in SF. It's easy and you should not miss this opportunity. There are many sources of information avalable about visiting San Francisco. I personaly like to use printed visitor guides in my own language. But there is also a hugh amount of information online. The local's Guide for People Visiting SF is a good example. All the online sources are not intended to substitute for your own good judgement. Take care of yourself and try to be a nice visitor. The SF people know what's happending during OOW. If you carry your badge around, you will find some stores where you get a rebate on your shopping. Watch out for more information on this.

must-see
My personal "must-see"s are:
The San Francisco Cable Cars, Fishermans Wharf, Alcatraz Island. If you are into buildings or photography you could also run around and look for the tallest buildings in San Francisco. Except the Alcatraz tour all this are easy good for easy visiting. You don't have to register or walk around too much and they fit into a free afternoon. But please remember: There are so many other things to see! Take the time to make up your own "must-see" list before visiting. It's worth it!

afterwards
On demand preview gives you a first idea about the information you get from the On demand website during and after the show. You have to register for this option and pay a bit but it's worth it. You can search all sessions from one central repository. See
Keynotes, General Sessions and Executive Solution Sessions as streaming video with synchronized slides, scrolling transcripts, and downloadable MP3s and MP4s, look at
1700+ Conference Sessions in streaming audio with downloadable MP3s PowerPoints, white papers and more.

And finaly you I hope, you will have a save trip back home!
If I missed your favorite or did something wrong, let me know. Comments are open! Happy to read about yours!

What is still missing inside Oracle Forms?

Mark | Jul 20, 2010 05:10 +0000
I was wondering what java component is still missing inside Oracle Forms.

I've already made some beans which could do the following:

  • Graphics/Charts with jFreeChart

  • PDF documents (from the database and from an URL)

  • Images

  • URL's through the enhance webbrowser

  • chat bean through the XMPP protocol



With java components it is possible to enhance your Oracle Forms, but which component is still missing for Oracle Forms?

How to Set v$session.program From a Universal Connection Pool (UCP)

Pas Apicella | Jul 19, 2010 18:33 +0000
The follow shows how you can ensure connections created from your Oracle Universal Connection Pool (UCP) clients can be uniquely identified using the Oracle JDBC driver property v$session.program. The property is an Oracle JDBC driver property so what we do here is the following.

1. Set the factory class to "oracle.jdbc.OracleDriver" using the method PoolDataSource.setConnectionFactoryClassName()
2. Use the PoolDataSource.setConnectionFactoryProperties() method to specify the driver properties that each Connection will use.

So here is a basic class showing how to set v$session.program and verify it did this correctly from SQL*Plus.


TestUCPJDBCProps.java

package demo;

import java.io.IOException;

import java.sql.Connection;
import java.sql.SQLException;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import oracle.ucp.UniversalConnectionPoolAdapter;
import oracle.ucp.UniversalConnectionPoolException;
import oracle.ucp.admin.UniversalConnectionPoolManager;
import oracle.ucp.admin.UniversalConnectionPoolManagerImpl;
import oracle.ucp.jdbc.PoolDataSource;
import oracle.ucp.jdbc.PoolDataSourceFactory;


public class TestUCPJDBCProps
{
  private PoolDataSource pds = null;
  private Properties props = new Properties();
  private UniversalConnectionPoolManager mgr = null;
  private String poolName = "PasUCPTest";
  
  public TestUCPJDBCProps() throws SQLException, UniversalConnectionPoolException
  {  
    mgr = UniversalConnectionPoolManagerImpl.getUniversalConnectionPoolManager();
    
   // Create pool-enabled data source instance.
    pds = PoolDataSourceFactory.getPoolDataSource();
    // PoolDataSource and UCP configuration
    
    //set the connection properties on the data source and pool properties
    pds.setUser("scott");
    pds.setPassword("tiger");
    pds.setURL("jdbc:oracle:thin:@//beast.au.oracle.com:1523/linux11gr2");
    pds.setConnectionFactoryClassName("oracle.jdbc.OracleDriver");
    pds.setInitialPoolSize(2);
    pds.setMinPoolSize(2);
    pds.setMaxPoolSize(20);
    pds.setConnectionPoolName(poolName);
    props.put("v$session.program", "scott-ucp-j2seclient");
    pds.setConnectionFactoryProperties(props);
    
    mgr.createConnectionPool((UniversalConnectionPoolAdapter)pds);
    
    mgr.startConnectionPool(poolName);

  }

  public void run () throws SQLException, IOException
  {
    List connList = new ArrayList();
    
    for (int i = 0; i < 5 ;i++ ) 
    {
      //Get a database connection from the datasource. 
      Connection conn = pds.getConnection();
      System.out.println("Retrieved a connection from pool");
      connList.add(conn);
    }

    System.out.println("Press Enter to finish the demo -> ");
    System.in.read();
      
    // close all connections
    for (int j = 0; j < connList.size() ; j++) 
    {
      ((Connection)connList.get(j)).close();
    }
    
  }
  
  public void stopPool () throws UniversalConnectionPoolException
  {
    mgr.stopConnectionPool(poolName);  
  }
  
  public static void main(String[] args) throws IOException
  {
    System.out.println("Started UCP JDBC Property Test at " + new Date());
    TestUCPJDBCProps test;

    try
    {
      test = new TestUCPJDBCProps();
      test.run();
      test.stopPool();
    }
    catch (Exception e)
    {
      e.printStackTrace();
      System.exit(-1);
    }
    
    System.out.println("Ended UCP JDBC Property Test at " + new Date());
  }
} 

SQL*PLus Output

SCOTT@linux11gr2> @query-scott.sql

SCOTT sessions

USERNAME PROGRAM                   STATUS
-------- ------------------------- --------
SCOTT    sqlplus.exe               ACTIVE
SCOTT    scott-ucp-j2seclient      INACTIVE
SCOTT    scott-ucp-j2seclient      INACTIVE
SCOTT    scott-ucp-j2seclient      INACTIVE
SCOTT    scott-ucp-j2seclient      INACTIVE
SCOTT    scott-ucp-j2seclient      INACTIVE

6 rows selected.

SCOTT@linux11gr2>

The SQL for the query above was as follows.

set head on feedback on

set pages 999
set linesize 120

prompt
prompt SCOTT sessions

col machine format a25
col username format a15
col username format a8
col program format a25

select
username,
program,
status,
last_call_et seconds_since_active,
to_char(logon_time, 'dd-MON-yyyy HH24:MI:SS') "Logon"
from v$session
where username = 'SCOTT'
/
http://feeds.feedburner.com/TheBlasFromPas

Warning: E-Business Suite Issues with Sun JRE 1.6.0_21

jceecolorlogo2.gifMy colleagues in the Java division shipped Java Runtime Edition 1.6.0_21 (a.k.a. JRE 6u21, internal version 1.6.0_21-b06) last week.  See the 1.6.0_21 Update Release Notes for details about what has changed in this release.

Unfortunately, this release of JRE 6u21 (1.6.0_21-b06) still has the 'Mismanaged Session Cookie' issue that we reported in earlier articles.  This can cause a failure of the following E-Business Suite functions with certain desktop and browser combinations, notably for IE 6 and 7 users:
  • 'File -> Export' functionality
  • Opening attachments in forms
  • Opening an HTML form to a new window from forms.
  • Opening an Applet in a new window from forms
  • Trying to login again after forms session timeout fails
A JRE plug-in release with fixes for these issues is only available through patch 9915543.  Patch 9915543 contains JRE 1.6.0_20-b05.  This fixed version is not available as a download from Sun or through the Java Update Mechanism (which continues to offer only JRE 1.6.0_20-b02).  This fix will not be available through the normal Sun distribution channels until the release of JRE 1.6.0_22 (6u22).

A fixed version of the JRE 1.6.0_21 (6u21) plug-in is expected to be made available through a special patch download in the near future.

Summary of options for EBS sysadmins

At this stage, your options are to:
  1. Remain on JRE 1.6.0_17; wait for JRE 1.6.0_22
  2. Deploy any standard JRE release later than 1.6.0_17, with the understanding that some of your users may encounter issues related to "Mismanaged session cookies"
  3. Deploy JRE 1.6.0_20-b05 (released via patch 9915543)
I understand that this is a frustrating state of affairs and I apologize for the continued delay in resolving this once and for all.  We're continuing to work with our colleagues in the Java division to get this set of fixes into the main JRE codelines.  I'll post updates here as soon as I have more information to share.

The preceding is intended to outline our general product direction.  It is intended for information purposes only, and may not be incorporated into any contract.   It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decision.  The development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of Oracle.

Early Bird Discount Extended!

ThumbsUp.jpg You thought about it. You marked your calendar. But time slipped by. And you missed the last day to save on registration for JavaOne 2010.

Relax. We understand, which is why we've extended the deadline to July 30.

You can still register to attend the world's greatest gathering of Java developers at a BIG discount! Sign up by July 30 for JavaOne.

Don't wait. This is the last opportunity to save.

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 71 bytes) in /home1/oranainf/public_html/wp-includes/taxonomy.php on line 1518