This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Pages

Tuesday, September 17, 2013

Oracle BPEL email notification error Could not send Notification to ... since it has been marked as invalid address.

hello guys, just want to write a short tips for the same problem i have been experiencing. actually this problem i already experienced before, but since i don't put some notes, so i have to googling for the solution again. so in case i'm having same problem next time, i will just browse through my own blog to find a workaround.

so i'm testing a email notification from Oracle BPEL. but after a few notification, i don't accept the email anymore. and the console print error just like this post title.

so the solution is :
1. From the SOA Infrastructure Menu…Select Service Engines > Human Workflow.
2. Select the “Notification Management” tab
3. Under “Outgoing Notification” – “Search”, select the “View Bad Addresses” tab
4. The search should return your email address. If it does, highlight it and select the Remove button (X)
That will clear that message and you will be able to use that email address again.

actually, i also have a nice tips in sending html email from oracle BPEL. for temporary you guys could check this oracle forum, because i'm the one that post the discussion. oracle html email

Saturday, August 17, 2013

sync blackberry contact to gmail or vice versa

good day all, this few past day i was troubled with my blackberry 9810 contacts. it's give me trouble now because i just realize that when i buy a android smartphone, the contacts will be restore from gmail account(one of the option, and i choose this then other). but all my most latest and updated contact is located at my blackberry handheld. After bought the android smartphone i still use my blackberry handheld not just replace it with the new one. And the question is how can i restore my blackberry contact to the android with perfect ?

if you using a full blackberry services then it should have no problem, but in my case, i have not using the full blackberry service for a long time, and when i use that blackberry service, i don't know how can my blackberry contact has a few double contact entry. that's new problem.

so this few past day i try to find how to backup all my blackberry contact to gmail and then i remove the double contact entry and the android should sync automatically (if mobile data/wi-fi turned on).

gmail could import contact from CSV file but i've tried it and give no good result. i don't know whether the mistake is at the CSV format, or the backup contact data. how can i get the backup contact data is, i backup the contact using the desktop manager and then i get the CSV using magicberry.

and now let's we move to the successfull way. Make sure you have your blackberry with full Blackberry services, in this case my main cellphone number don't using a full services, so i bought a new number and register for a daily full blackberry services (this will have a cheaper solutions) and top up the number with a minimum amount voucher.

sync your blackberry contact to gmail, make sure the gmail get the latest contact from your blackberry. how to make sure, delete gmail account in the blackberry and re-add it, and choose the sync contact to the gmail. after that, check google.com/contact and check if the gmail contact is same like the blackberry contact. After that go to blackberry contact - options - choose the gmail account contact - and uncheck the sync contact wirelessly.

if you have double contact entry like mine, then delete it from your gmail contact, make sure the gmail contact is the main contact repository and then you click more button above the contact list. export all the contact to google csv format. why you have to do this, so if you fail to restore the contact to the blackberry or the gmail contact get the replace by the old blackberry contact you still can delete all the gmail contact and then re-import it from the csv you just exported.

after that back to your blackberry, contact - option and then type WIPE or RSET, it doesn't have to be capital. then if you choose yes, all your blackberry contact will be wiped. after a few minute, your blackberry will come up with empty contact. after that, go to contact - option, select the gmail account and then select sync contact wirelessly. in a few minutes (depend on your network) your blackberry contact will be restored from your gmail contact. you can re-check your blackberry contact with the gmail contact. it should be the same.

at last i can have a clean blackberry, gmail and android contact. and make my gmail as my main contact repository.

Friday, April 5, 2013

Oracle ADF Form validation from managed bean and show the pop-up error message

So i have a case that i create a BPM Process and auto-generate the task form and then i have to validate user input at the task form. by default, the Submit form button is cannot do validation. so i have to change the autogenerated button with other button.

this link would redirect you to the original tutorial i follow to create new button to do the validation function.
http://niallcblogs.blogspot.com/2011/05/bpm-adf-form-streamlining-saveapprove.html
for the default submit button section, you could search for <af:commandToolbarButton> with <f:attribute name="DC_OPERATION_BINDING" value="bindings.SUBMIT"/> value.
i just comment that section using '<!-- -->' typical comment in html.



from the niall blogs, when you submit your form, it just return "closeTaskFlow" string to end the taskflow process, previously i try it in a pop up new window, the window won't close after i submit the form.
if you are having same case, add a javascript to close your pop up window.


        FacesContext facesContext = FacesContext.getCurrentInstance();
        ExtendedRenderKitService service = Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
        service.addScript(facesContext, "window.opener = self;window.close();");


in your validation function, you can add this code to show a message pop up whether the form still has dirty data.


        FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, msg);
facesContext.addMessage(null, facesMsg);


at my case, i want to display a multiline error message in the pop up. you can do that with putting a <html> and <body> tag in the message. i got that from this tutorial.
http://mjabr.wordpress.com/2011/08/31/how-to-show-multi-lines-afmessage/

credit to original author :)


Oracle AppModule Error when run

I got an error when trying to test a AppModule that i already set up using the integratedWeblogicServer. i got a error pop up from the JDEV, the error code is like this :

(oracle.jbo.ConfigException) JBO-33001: Configuration file /tester.xcfg is not found in the classpath.

and the error code from the console is like this :


MDS-01370: MetadataStore configuration for metadata-store-usage "mstore-usage_1" is invalid.  
MDS-01368: Variable "oracle.home" used in configuration document is not defined either as system property or as envrionment variable.

oracle.mds.config.MDSConfigurationException: MDS-01330: unable to load MDS configuration document  
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "mstore-usage_1" is invalid.  
MDS-01368: Variable "oracle.home" used in configuration document is not defined either as system property or as envrionment variable.

trying to google the solution and find an interest one. try to set up your ORACLE.HOME environment variable. and point it to your <JDEV> folder. Remember to restart your JDEV before you test it.

voila, the AppModule should be run succesfully now !

Sunday, March 31, 2013

Sony waterproof smartphone at CES 2013


If it lights up, beeps or boops, you can bet that Sony makes one. The electronics giant has its logo on all manner of products, but at CES this year, it confessed to taking its eye off the ball.

"We used to make people say wow all the time," said a disembodied voice over a loudspeaker at Sony's press conference. "Our unique combination of artists and engineers set out to create a surprise everyday. We forgot the power of that for a while." Humble, and surprisingly wistful.

A refocused Sony is now hoping to recapture the public's wonder, and purchasing power, with a new quad-core smartphone, the Xperia Z. This is after another show of humility in November 2012, when it admitted that its phones can't compete with likes of the iPhone 5 and Galaxy S3. The fact that this new phone is waterproof might just inspire a few wows.

Elbowing into the top phone tier with Apple and Samsung will be tough work, but we've never seen a more apt attitude than what Sony displayed this year at CES. We look forward to giving the Xperia Z a full review, perhaps while in the bath.

Saturday, March 30, 2013

Lenovo ThinkPad Edge 431 & 531

Pada pagelaran CES(Consumer Electronic Show) 2013 yang di adakan di awal Januari 2013 di Las Vegas, Para Raksasa IT berlomba untuk unjuk gigi memperlihatkan teknologi dan produk teranyar mereka. Lenovo tidak mau ketinggalan dan memperkenalkan 2 produk baru nya di lini Thinkpad EDGE. yaitu EDGE 431 & 531.

Beberapa hal yang tampak sangat berbeda dari thinkpad edge ini adalah, design trackpad yang didesain ulang, 2 tombol yang terletak diatas trackpad yang biasanya digunakan bersamaan dengan TrackPoint, sekarang telah disatukan ke dalam trackpad (Clickpad-Style). ya 2 tombol tersebut dapat dibilang merupakan ciri khas dari lini Thinkpad, tetapi dengan dihilangkannya 2 tombol tersebut, Lenovo menggantikannya dengan bidang TouchPad yang lebih luas.





Fitur lainnya adalah, Lenovo memperkenalkan cara baru untuk mengisi ulang daya di notebook. fitur tersebut dinamakan Onelink. dimana akan ada 1 device baru yang akan terhubung ke notebook Lenovo, dan device tersebut selain sebagai adaptor, juga dapat difungsikan untuk slot USB, HDMI, dan slot kabel LAN(ethernet).  Lenovo juga menyebutkan dimana OneLink akan menjadi standar pengisian daya untuk kedepannya.


Selain 2 fitur tersebut, spesifikasi notebook ini tidak berubah banyak dari tipe pendahulunya (Thinpad Edge 430 dan 530). dimana menggunakan chipset prosesor generasi terakhir dari Intel (generasi 3 Ivy Bridge), motherboard yang dapat menggunakan RAM hingga 16GB, Harddisk dengan kapasitas hingga 1TB, dan GPU hingga 2GB.

Kabarnya notebook ini akan dipasarkan di US pada bulan Mei, dan ketika tulisan ini dibuat, memang di situs Lenovo US nya memberikan keterangan produk tipe ini belum siap. Dan mengenai ketersediaannya di pasar Indonesia, pun belum dapat di konfirmasikan oleh pihak Lenovo Indonesianya melalui account FB.


Saturday, March 16, 2013

Java(TM) is required to display to display some elements on this page (mozilla firefox & google chrome)

Ya saya penasaran sekali dengan pesan error yang terdapat di judul ketika membuka sebuah situs. pesan error ini merupakan pesan error yang sudah amat jarang saya dapati. biasanya jika mendapati pesan error seperti itu maka dugaan yang muncul adalah plugin yang belum terinstall atau sudah out of date.

ketika ingin menginstall plugin mengikuti peringatan dan pesan error yang ditampilkan oleh browser, maka saya akan di redirect ke halaman situs Java untuk mendownload JRE terakhir dari Java. dimana pada saat tulisan ini dibuat versi itu menunjukkan Java 7 build 17. dikarenakan saya belum ingin berpindah dari Java 6, dan kekhawatiran yang juga muncul jika menggunakan Java 7, beberapa development project saya akan terganggu maka saya membatalkan perintah untuk mengupdate JRE saya.

Kemudian saya mencoba menggali lebih dalam lagi, karena sebelum saya menggunakan JDK/JRE yang sekarang (Java 6 build 38) saya sudah pernah melihat adanya Java plugin di dalam browser firefox saya. tetapi kenapa sekarang tidak muncul baik di firefox (versi 19) maupun di chrome (versi 24) saya.

Setelah mencoba mencari artikel penjelasan terkait mengenai cara setting java plugin dengan JRE 6 build 38, akhirnya saya menemukan beberapa artikel yang dapat menjelaskan kenapa Java plugin JDK 6 build 38 saya tidak terdeteksi oleh Firefox dan Chrome saya. Salah satu source yang memiliki penjelasan cukup jelas ada disini, dimana intinya adalah : untuk JRE/JDK yang versi nya dibawah / sebelum Java 7 build 11, maka dikhawatirkan ada celah keamanan yang dapat dimanfaatkan oleh hacker. Maka itu, tiap-tiap browser dengan versi terbaru, akan menandai JDK/JRE tersebut sebagai sebuah plugin yang diblacklist, dan harus diupgrade dengan versi yang telah dianggap tidak memiliki celah keamanan.

Ya saya akan segera mengupgrade versi JDK saya ke JDK 7 build 17 dan mencoba kembali mengakses situs yang hendak saya kunjungi.
Apabila anda masih mengalami masalah dalam menggunakan Java applet walau telah update JDK/JRE ke versi terakhir, maka pastikan anda juga menginstall JDK/JRE versi 32bit. karena saya mengalami masalah yang sama, dikarenakan saya hanya menginstall JDK versi 64 bit di notebook saya, dan memang notebook saya menggunakan OS 64 bit.

Tuesday, March 12, 2013

ERROR java.lang.NullPointerException ketika menyalakan program SQL Developer

Sudah beberapa kali ketika saya ingin menggunakan SQL Developer, muncul error seperti berikut

 java.lang.NullPointerException  
      at oracle.jdevimpl.vcs.svn.SVNProfile.canActivate(SVNProfile.java:162)  
      at oracle.jdevimpl.vcs.generic.GenericClient.fireCanActivate(GenericClient.java:1629)  
      at oracle.jdevimpl.vcs.generic.GenericClient.canActivate(GenericClient.java:237)  
      at oracle.jdevimpl.vcs.VCSManagerImpl$6.addinsLoaded(VCSManagerImpl.java:391)  
      at oracle.ide.IdeCore.fireIdeEvent(IdeCore.java:864)  
      at oracle.ide.IdeCore.access$100(IdeCore.java:136)  
      at oracle.ide.IdeCore$3.run(IdeCore.java:836)  
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)  
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:666)  
      at java.awt.EventQueue.access$400(EventQueue.java:81)  
      at java.awt.EventQueue$2.run(EventQueue.java:627)  
      at java.awt.EventQueue$2.run(EventQueue.java:625)  
      at java.security.AccessController.doPrivileged(Native Method)  

saya coba googling dan menemukan solusi pemecahannya di oracle forum. solusinya adalah mematikan plugin Subversion. langsung saja ke menu Versioning - configure dan matikan Versioning support for Subversion. setelah itu restart SQL Developer dan error yg muncul akan segera hilang.

hope it helps. CTOA ~

Monday, March 11, 2013

Add approver and subscriber to a workitem in Rational Team Concert Extension

Another function that i use in Extending Rational Team Concert :


 private void addApprover(ISaveParameter saveParameter, String superior1, String superior2, String approvalType, String approverListName)  
   throws TeamRepositoryException  
  {  
   IWorkItem newState = (IWorkItem)saveParameter.getNewState();  
   IContributorHandle owner = newState.getOwner();  
   if (owner != null)  
   {  
    IContributorHandle superiorHandle = getSuperiorHandle(superior1);  
    if (superiorHandle == null) {  
     System.out.println("----internal user not found----");  
    }  
    IApprovals approvals = newState.getApprovals();  
    IApprovalDescriptor descriptor = approvals.createDescriptor(approvalType, approverListName);  
    IApproval approval = approvals.createApproval(descriptor, superiorHandle);  
    approvals.add(approval);     
   }  
  }  
  private IContributorHandle getSuperiorHandle(String superiorID)  
   throws TeamRepositoryException  
  {  
   IContributorService contributorService = (IContributorService)getService(IContributorService.class);  
   return contributorService.fetchContributorByUserId(superiorID);  
  }  

and this one is to add the subscriber

  IContributorHandle ownerToSubscribe = blockingWorkItem.getOwner();  
  if (ownerToSubscribe != null) {  
      ISubscriptions subscriptions = thisWorkItem.getSubscriptions();  
      subscriptions.add(ownerToSubscribe);  
  }  

Get ProjectID and teamAreaId in Rational Team Concert Extension plugin

i use this code to get the project ID from Rational Team concert

 newState = (IWorkItem)saveParameter.getNewState();   
 IProjectAreaHandle pAreaHandle = newState.getProjectArea();   
 IAuditableCommon common = (IAuditableCommon)getService(IAuditableCommon.class);   
 IProjectArea pArea = (IProjectArea)common.resolveAuditable(pAreaHandle, ItemProfile.createFullProfile(IProjectArea.ITEM_TYPE), null);   
 String projectID = pArea.getName();   

and this one to get the teamAreaId

 ICategoryHandle ich = newState.getCategory();  
 IWorkItemCommon workItemCommon = (IWorkItemCommon)getService(IWorkItemCommon.class);  
 String teamAreaID = workItemCommon.resolveHierarchicalName(ich, monitor);  

hope this code can help the other developer that want to try to customizing Rational Team Concert. if you guys want to ask question, please drop comment or e-mail me for a faster response. thanks :)

check workItemType and predecessor in Rational Team Concert extension plugin

in this article i will try to share some code for Customizing Rational Team Concert.

this code is to get the workItemType
 
  private void checkWorkItemType(ISaveParameter saveParameter, AdvisableOperation operation, IAdvisorInfoCollector collector, IProgressMonitor monitor)  
   throws TeamRepositoryException  
  {   
  IWorkItem newState = (IWorkItem)saveParameter.getNewState();  
  newState = (IWorkItem)saveParameter.getNewState();  
  String workItemType = newState.getWorkItemType();  
 }  

this one is to check the predecessor. and iterate over the collection of predecessor item.

 
 private boolean checkIfRfcTicket(ISaveParameter saveParameter, AdvisableOperation operation, IProgressMonitor monitor)  
   throws TeamRepositoryException  
  {   
  List blockingDependencies = saveParameter.getNewReferences().getReferences(  
      WorkItemEndPoints.PREDECESSOR_WORK_ITEMS);  
       if (blockingDependencies.isEmpty()) {  
           System.out.println("-----NO DEPENDENCIES-----");  
       }       
       else  
      {  
       for (Iterator iterator = blockingDependencies.iterator(); iterator.hasNext(); )  
       {  
        IReference dependency = (IReference)iterator.next();  
        if ((!dependency.isItemReference()) ||   
         (!(((IItemReference)dependency).getReferencedItem() instanceof IWorkItemHandle))) {  
         continue;  
        }  
        IWorkItemHandle blockingWorkItemHandle = (IWorkItemHandle)((IItemReference)dependency).getReferencedItem();  
        ISaveParameter target = saveParameter.getSaveOperationParameter().findSaveParameter(blockingWorkItemHandle);  
        IAuditableCommon auditableCommon = (IAuditableCommon)getService(IAuditableCommon.class);  
        IWorkItem predecessorWorkItem;  
        if (target != null)  
         predecessorWorkItem = (IWorkItem)target.getNewState();  
        else {  
         predecessorWorkItem = (IWorkItem)auditableCommon.resolveAuditable(  
          blockingWorkItemHandle, IWorkItem.FULL_PROFILE, monitor);  
        }           
       }  
      }  
  }  

IBM Websphere Commerce Server

June 2012, i move to a new company. still a software house and work as a Java Developer. in this new company, my first project is to custom an IBM e-Commerce product, name Websphere Commerce Server. although my company is focusing on Rational Product, we also involved in this Websphere product. so the story is like this : a Singapore based company win a WCS project in Indonesia, and they looking local partner that capable to join their development team. so they chose us. this project is already start from end of 2011. so i join in the middle development phase.

IBM Rational Team Concert

From June 2011 to May 2012 i am working in one of IBM Business Partner in Jakarta, Indonesia. this Business partner is focusing in IBM Rational product line. and my last project in this company is developing an extension plug-in for Rational Team Concert.

for me, this project in very interesting and challenging. because this is my first creating plugin for a ready use product. this product is totally different from my first project in this company : Websphere commerce server (IBM e-Commerce product), i will write more about the eCommerce project in another article, that will explain how can a Rational Business Partner also doing an Websphere project. 

back to Rational Team Concert Extension, is already prepared with a SDK so developer can create plugin to fulfilled the project needs. And they provide a doc to explain the step to create an extension and then how to deploy and test it from the RTC itself. but even IBM already provide the SDK, the documentation and how-to customizing the plugin is very hard to find. lucky me, our Project Manager could contact the Jazz StartUp Team member, one of those that i rememer is Ralph Schoon. i can get a few sample code how to do the customization. 

Ralph says that i could search and find the sample code in the SDK from the eclipse, but poor me, i can't find the example that he mean.

a few function that i could custom in RTC is like : checking workitem type, checking whether a process is require attachment to be upload or not, adding the approver/reviewer into the predecessor / successor workitem, get the process template type, etc. for the approver / reviewer i had to connect to the LDAP server and run some query to get the supervisor of the related user.

i will separate a few sample code in another article. stay tune :)