Wednesday, 9 November 2016

Pilot for a day in Bangalore

Ever thought of being a co-pilot without any prior training or experience. Jupiter aviation service in Jakkur, Bangalore is providing these kinds of experience to aviation enthusiasts. 

For more information on this, go to below link
http://www.bangaloreaerosports.com/Info.html

Actually the Bangalore Aero Sports is conducting aviation classes for hobby flyers and also organize a 20 mins flying experience for people to enjoy flying. This is happening in Jakkur Aerodrome in Bangalore International Airport Road.


Jupiter Aviation Service hangar in Jakkur Aerodrome

The flight which I tried was a Microlight X-air flight which is a 2 seater lightweight air craft and the pilot who accompanied me was Retired Fighter Pilot Ashok Mehta. He told he has more than 40 years of experience in flying and most inspiring was his service to Indian Air Force and his ambition after his retirement; I came to know more about his from below link

http://silvertalkies.com/flying-high/
 
Microlight flight which I tried


Total flight experience was 20 mins including taxi, take-off, flying and landing. The pilot first briefed about the flight for a while and contacted the control room for take off, once everything was fine, we started the flight. During take-off and landing, he would be having the full control. We can try flying only when it is is air; from the air, we could experience a spectacular view of the Bangalore city. Maximum altitude we reached was 800 ft above sea level. Once the flight was in air, he taught a little about changing the direction of flight and taking the flight up/down.



The best time for experiencing is early in the morning when the weather is cool with clean sky. After landing, we spent sometime taking snaps with the microlight flight.


Few snaps in front of microlight flights

Thanks to my wife for giving such a surprise and a wonderful experience on my birthday <3.

Monday, 5 September 2016

Mauritius Island : Paradise in earth

MAURITIUS, if needs to be explained in a word 'its a best place in the world to spend the best time with our best partner'.

Geographically it is an island created by a volcanic eruption and located in the Indian Ocean off Africa's SouthEast coast. It is a very small island which is just 45km width and 65km length and almost entirely surrounded by coral reefs. Best time to visit the island as heard from local people is between September and February.


In Mauritius Aiport with maximum natural lighting


Preplanning


Since the destination is not the motherland, a considerable amount of preplanning is necessary to protect us from country's policy, financial burdens, racial discrimination, ethical issues, medical expenses and any untraumatic situations.


Mauritius' major income is on its tourism, hence it provides free visa on arrival for most of the visitors; India is also one of the countries whose citizen can gain access to Mauritius without a prior visa. The visa is they provide is valid for 60 days.

Next important planning is on the financial expenditure. Of course, everyone wants to get the best goods and services at the best price. Things we need to consider are flight tickets, accommodation, local transportation, communication charges, sightseeing, and sea activities. 

Flight booking:


For the flights, there are lots of websites to compare and consider where to book. An important item to note is to book with a little transit time when I was looking, I could find flights to Mauritius from Mumbai only. Air India and Air Mauritius are the two operators who have direct flights.


Ready to board Mauritius Flight


Hotel booking:


Accommodation I felt like Mauritius is cheaper than India and to find a right stay browse thoroughly for the list of hotels available. I used http://www.booking.com to shortlist the accommodations and to finalize one. The booking.com website helps to find out the perfect accommodation of our choice like whether we need a stay with kitchen, non-smoking rooms, type of view etc. And they show the final price in INR.


Seafood lovers can enjoy the Mauritius cuisine to the core as there are lots of varieties; for vegetarians, it is very difficult to survive for a day as they use fish oil even for preparing vegetarian food. For vegetarians, it is good to book a studio apartment where can enjoy cooking our own food and feel heavenly.


Mont Choisy Beach Villa - Exterior view
Mont Choisy Beach Villa - Interior view


View from Mont Choisy Beach Villa


 For More information on Mont Choisy Beach VIlla and availability   http://www.montchoisybeachvillas.com/


Communication:


If we use our SIM card of Indian networks then our bill will shoot out, best is it deactivate the SIM after landing. For communication within Mauritius and to India, we can take local SIM card, the major operator there are Orange and Emtel. There are two ways to buy Mauritius SIM card, either we can buy that from the airport terminal in India after taking the boarding pass or from the airport terminal post office in Mauritius. I purchased the Emtel SIM card from Mumbai airport, choose the plan that suits the need, I choose the one which has more data packets. 

The advantage of buying the SIM in India airport is we can insert the SIM and configure it when we wait for our flight and as soon as we land in Mauritius it gets activated. For me, even before the immigration check, the SIM got activated with the complete feature of voice and data.


Local Commutation:


Choices for commuting with Mauritius are as follows public transportation, taxi, self-driven cars. Public transports are very cheap but not convenient as we have to wait for a long time and we have to change multiple buses to reach the destination. Taxi services are very reliable and quick but very expensive. So the last option is with self-driven cars, roads in Mauritius are properly marked and has sufficient sign boards in necessary places. I booked a rental car from http://www.rentalcars.com/ website. Again we could find lots of choices in selecting the car ranging from 800cc engine with manual gear to Jaguar models.

As soon as we collect our baggage and exit the airport gate, we could see all the rentals companies. They will ask us to provide passport copy, driving license and a security deposit. The security deposit can be paid either by credit card or cash. Debit card will not be accepted,  


1. Public Transport
2. With Rental Car


Currency Conversion:



Ideally, this should be the first step of preplanning as Mauritius will not take India rupees. We won't be very much comfortable to carry huge cash in hand, carry a decent cash reserve and keep remaining in cards. Before leaving, good to check the status of debit card and credit cards, whether it is enabled for international usage and what are the charges when we use etc., Better to have a couple of additional cards. Within airport, we could find plenty of Forex counters shouting '0% commission, good deal, good deal..., come here'. 

Mauritius currency with Tamil text

What to expect in Mauritius:


It is very fascinating to read about the geography and history of Mauritius. It is a volcanic island by geography and is used as a colony by Dutch, French and British (Read more from https://mauritiusattractions.com/about-mauritius-i-15.html).

The country is completely surrounded by water and we can drive and cover the whole land in a day. Even though it is small, it is self-contained with its vegetation, rivers, mountains, lakes, nature park, forest, waterfalls etc to keep the survival cycle active. The country is divided into many districts but since the beauty of Mauritius is on spending time in beaches. We could find lots of hotels and resorts around the beach areas. If interested in water sports and activities then Northern Mauritius is the best choice, for the lonely lovers, east and south east of Mauritius is perfect. Down south has lots of scenic roads and small hills, view of the sea from hill top is a spectacular view and shouldn't be missed.  

The first day in Mauritius we took rest in the day and thought of roaming in the evening but to our surprise nothing was open and all the roads are deserted. Here all business activities will be closed between 5 pm and 6 pm, so if we need to stock anything, we should plan accordingly. Only few cafe's and restaurants we can see open after 6.


Indian in Mauritius:


We could see lots of Hindus who are mostly third or fourth generations of Indian migrants sent by Britishers on indentured labor for the sugar plantation. These Hindus still maintain the Indian culture, customs, and attires. The time we went was during Ganesha festival, and we witnessed the  'visarjan' function followed by a grand and tasty meal to everyone. We could even see the people wear traditional Indian dresses.


Mauritians celebrating Indian festival



Sea Activities:


There are a countless number of sea activities like full day catamaran cruise, sunset cruise, speed boat, underwater scooter ride, underwater walk, deep sea dive etc etc., Either we could book prior to arrival from https://mauritiusattractions.com/ website or after going there. The advantage of buying directly is we could negotiate the price and get some discounts if we are taking multiple rides. Montchoisy and La Cuvette beaches in North have lots of sea activities.


Underwater Seawalk




In  La Cuvette beach



Food:


When it comes to food, for vegetarian it is extremely difficult. Foods we could find are Panini, which is like a bread sandwich, french fries. We found dhol poori, is like our Indian wraps, they kept veg masala inside the roti and gave. We can find Alouda Pillay in the food market, their Alouda is a must try, I think falooda is changed to the local slang like Alouda. Fresh cut fruits and mangos are served in streets which are good. And tender coconut is tastier as per them but we felt our Indian tender coconut is far better than this one. On thing to be very cautious when we buy in street shop is, some seller quote extreme price if found to be a tourist, in such cases it is better to refuse without talking anything. Another interesting item we tried was 'Vannila tea' in caudan waterfront, it is really a wonderful tea to try.  There is one Punjabi cafe in Caudan waterfront which serves samosa, dosa, paratha etc.

1. Dhol Poori
2. Alouda
3. Panini with french fries

Enjoy the self-drive


Roads in Mauritius are clearly marked and has proper sign boards. Roads are broad enough and no potholes. The drive is very smooth and easy. In many places of the road, we could see irrigations with overhead watering technique. Petrol pumps are there in decent distances, even our Indian Oil has lots of fuel stations. While driving, we could find lots of beautiful spots to stop and take snaps.

Drive from North to South will be an awesome experience as it would be a good stretch. On the way we could see Chamarel village, seven color sands, Chamarel waterfalls and can spend time in Le Morne Beach, which is a white sand beach.


1. Tortoise in Chamarel
2. Chamarel falls
3. Chamarel seven colour sand

Le Morne Beach


Shopping


As a souvenir people buy dodo (extinct flightless bird) carved wooden articles, handcrafted bags, keychain, vanilla. Flea market and craft market in the best place for shopping 



Monday, 15 August 2016

Sakleshpur : Weekend getaway from Bangalore

Saklespur is yet another perfect weekend destination from Bangalore. Road to Saklespur is awesome as it is in Bangalore<-> Mangalore highway.

Like chikmagalur, this place also famous for its homestay in coffee estates and forests. Many venture to this town for a peaceful stay or enjoy the nature or for trekking. Also this town is close to religious towns like kukke subramanya and dharmasthala.

We stayed in Brindhavan estate which is on the Saklespur to Virajpet road. This homestay is a newly constructed homestay which was only 2 months old when we went. It has couple of rooms, one dormitory, few games and campfire shelter. In their estate, they grow coffee, betel nuts, pepper and other spices. 

Brindhavan Estate homestay

The food provided in the homestay was very tasty and they prepared native dishes like akki roti, bamboo curry, mushroom, etc. They served all 3 times food in banana leaf which added additional taste.

Homestay guy told, he will show other part of his estate where we would get a nice view point. While going, I thought this would be going to be another peak point from where we would see bottom. But once we each the point, we did hold our breath for a while, it was a spectacular landscape view full of lush green lands. Even he mentioned lots of movie shooting will take place in areas surrounding Sakleshpur.

Panoramic view of the landscape
Selfie in the landscape

If venturing to Sakleshpur during monsoon then drive from Saklespur to kukke subramanya via Bisle Ghat road is a must try one. The distance is short (guess around 30 kms) but the travel time would be 3 hours, the drive was an amazing & thrilling experience. Since it was monsoon when we went, we could see lots of water falls, streams and heavy flow of water in road. 

Falls in Bisle Ghat road
1. Selfie in water stream on Bisle Ghat road
2. Lush green plants
3. Adventurous Bisle Ghat road


Saturday, 30 July 2016

Chikmagalur : Weekend Getaway from Bangalore

If planning for a best, short & relaxed weekend getaway from Bangalore then Chikmagalur is a good destination.


Driving to Chikmagalur:


Driving ourself to Chikmagalur itself is a wonderful experience. Bangalore > Nelamangala > Kunigal > CR Pattana > Hassan > Belur > Chikmagalur. From Bangalore till Hassan, it is NH75 road  with proper marking. There are not many restaurants or coffee shop as we see in Bangalore <> Mysore road but few are there. Kamat and A2B are couple of chain hotels we could find. Beware of another hotel in the same name as Kamat which is not the original Kamat chain. I think it is near CR pattana or before CR pattana, we could see lots of people selling fresh cucumber, it was so fresh and watery and damn cheap; it is a must try in my opinion. After Hassan, its a SH road no clear marking but a good one. As we approach chikmagalur, we could see lots of vegetable farm, greenish lands, continuous mountain range.




Place of Stay:


Chikmagalur is famous for it homestay type accommodation instead of hotels. And the budget of homestay ranges from few hundreds to 10000 depending on the type of stay we choose. There are stays which will be inside dense forest and in coffee estates. Uphill to Western Ghat  is another wonderful & enjoyable drive. Since I went in monsoon time, two sides of the road are full green, full of fog. If we switch off the engine, then it will be a pin drop silence and we get very fresh & finest air to breathe. If people behind you are honking, leave them and enjoy the slow drive with scenic view.

Place where we stayed is Jhari-EcoStay (http://www.jhari.in/), this like any other home stay provide all 3 times food and hi-tea. One unique thing about this home stay is, natural waterfalls is part of this homestay which is private and for guests use only.

Private waterfalls for guests use
For stay in this place, we need to have a prior booking. This property has lots of other activities like carom, shuttle, trekking, camp fire etc.

Leisure area near the waterfalls

One of the room in Jhari-EcoStay

Other places near the property are Mullayanagiri & Bababudan giri. Mullayanagiri is the highest peak in Karnataka, driving is not so easy as we approach the top. It would be better if we stop the vehicle a KM before the peak and go by walk. If we go by walk, we can enjoy the chill weather and the mist. 




Souvenirs:


Things to buy from Chikmagalur are mainly coffee powder, spices like elachi & pepper. We can also buy fresh vegetables from road sides, also lots of nursery's are there and we can buy few plants. 


Tuesday, 5 July 2016

Using MDS (MetaData Service) API to list all the deployed composites in SOA

The jar mdsrt.jar contains all the necessary API to explore contents inside MDS (MetaData Store). Unfortunately there is no javadoc for the classes inside this jar, atleast I couldn't find couple of blog links to understand the usage of some MDS APIs.

In this blog, my intention is to show how to read a file using MDS API.

The first task is to write the adf-mds-confix.xml file which contains the configuration information to connect to MDS and the <metadata-namespaces> contains the name of the folders whose sub-folders or files that will be accessed using MDS API.

<?xml version = '1.0' encoding = 'UTF-8'?>
 <adf-config xmlns="http://xmlns.oracle.com/adf/config">
    <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
       <mds-config version="11.1.1.000" xmlns="http://xmlns.oracle.com/mds/config">
                <persistence-config>
                         <metadata-namespaces>
                                 <namespace path="/soa/shared" metadata-store-usage="soa-infra-store">
                                 </namespace>
                                 <namespace path="/apps" metadata-store-usage="soa-infra-store"/>
                         </metadata-namespaces>
                         <metadata-store-usages>
                                <metadata-store-usage id="soa-infra-store">
                                        <metadata-store xmlns="http://xmlns.oracle.com/mds/config"
                                                                        class-name="oracle.mds.persistence.stores.db.DBMetadataStore">

                                                        <property name="jndi-datasource" value="jdbc/mds/owsm"/>

                                                          <property name="partition-name" value="soa-infra"/>
                                         </metadata-store>
                                  </metadata-store-usage>
                          </metadata-store-usages>

      </persistence-config>
 </mds-config>
     </adf-mds-config>
  </adf-config>




    /**
     * This API returns the list of deployed composited in SOA server
     * 
     * @return list of composites
     */
    public List<Composite> getDeployedComposites() {
        List<Composite> deployedList = new ArrayList<>();
        try {
            // Read the adf-mds-config.xml config file which has the configuration information for reading a file from MDS            
            File adfConfigPath = new File(configPath.toString());
            MDSConfig config = new MDSConfig(adfConfigPath.toURL());
            
            // Create MDS instance & Session
            MDSInstance mdsInstance = MDSInstance.getOrCreateInstance("TargetInstance", config);
            MDSSession mdsSession = mdsInstance.createSession(new SessionOptions(null, null, new CustConfig(new CustClassListMapping[0])), null);
            
            // Form a query which reads the deployed-composites.xml file
            NameQueryImpl query = new NameQueryImpl(mdsSession, ConditionFactory.createNameCondition("/deployed-composites", "deployed-composites.xml", true));
            Iterator<DocumentResult> r = query.execute();
            while(r.hasNext()) {
                DocumentResult dr = r.next();                
                if (dr.getAbsoluteName().endsWith(".xml")) {
                    MetadataObject mdObj = mdsSession.getMetadataObject(dr.getAbsoluteName());
                    
                    // Get the DOM object of the deployed-compisite.xml
                    Document doc = mdObj.getDocument(true);
                    
                    // Access the composite name from the xml
                    // eg: <composite-series name="default/ScheduledProcessFlow" default="default/ScheduledProcessFlow!2.0">
                    NodeList nList = doc.getElementsByTagName("composite-series");
                    for (int i=0;i<nList.getLength();i++) {
                            Node node = nList.item(i);
                            String str = node.getAttributes().getNamedItem("default").getNodeValue();
                            
                            // Add composite details to the list
                            deployedList.add(getCompositeObj(str));
                    }                    
                    break;
                }
            }
        } catch(Exception ex) {
           throw new RuntimeException("Unable to read the deployed-composites.xml file " + "\n" + ex.getMessage());
        }
        return deployedList;

    }


Some blog links which I referred


http://oraclemw.blogspot.in/2011/04/working-with-oracle-mds-repository.html

http://amulyamishras-tech-blog.blogspot.in/2013/07/adf-nds-use-mds-api-to-remove.html
http://www.oracle.com/technetwork/developer-tools/jdev/metadataservices-fmw-11gr1-130345.pdf

Wednesday, 18 May 2016

Creating an array of XML element in BPEL

The objective of this post is to generate an XML response which has array of XML element using BPEL.

Problem Statement:

Input to the BPEL process : n / integer
Output from BPEL process : result / String array of length n

Solution:

To solve this problem, we can use <bpelx:append>  which is an BPEL extension function

namespace for bplex is xmlns:bpelx="http://schemas.oracle.com/bpel/extension"

Below is the code snippet where it inserts a node using bpelx:append

<bpel:assign name="InsertResponse">
  <bpelx:append>
    <bpelx:from>

        <result xmlns="http://xmlns.oracle.com/HelloWorlsApp/ArrayOutput/Collection">StringTest
        </result>
    </bpelx:from>
    <bpelx:to bpelx:language="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0" variable="outputVariable" part="payload" query="/client:processResponse"/>
   </bpelx:append>      
 </bpel:assign>


This assignment we can keep it inside a <bpel:while> with a condition like index should be less than the input n.


Sample Input

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <ns1:process xmlns:ns1="http://xmlns.oracle.com/HelloWorlsApp/ArrayOutput/Collection">
      <ns1:input>3</ns1:input>
       </ns1:process>
    </soap:Body>
</soap:Envelope>


Sample Output

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <env:Body>
<processResponse xmlns="http://xmlns.oracle.com/HelloWorlsApp/ArrayOutput/Collection">
<result>StringTest</result>
<result>StringTest</result>
<result>StringTest</result>
</processResponse>
  </env:Body>
</env:Envelope>


Tuesday, 3 May 2016

elementFormDefault attribute in XSD Schema definition

This attribute (elementFormDefault) is useful when we are defining our own <complexType> in our schema and the main purpose is to decide whether the <element> inside <complexType> should be in targetNamespace or global namespace

Example:
Sample XSD:
<?xml version = '1.0' encoding = 'UTF-8'?>
<xsd:schema xmlns:ns0="http://ticket.com/ns" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ticket.com/ns">  
   <xsd:complexType name="routeTicket">
      <xsd:sequence>
         <xsd:element name="ticket" type="xsd:string" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="routeTicketResponse">
      <xsd:sequence>
         <xsd:element name="return" type="xsd:string" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:element name="routeTicket" type="ns0:routeTicket"/>
   <xsd:element name="routeTicketResponse" type="ns0:routeTicketResponse"/>

</xsd:schema>


when elementFormDefault="unqualified"
when elementFormDefault="qualified"
Valid XML for the given XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:routeTicket xmlns:xs="http://ticket.com/ns">
  <ticket>str1234</ticket>
</xs:routeTicket>

Valid XML for the given XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:routeTicket xmlns:xs="http://ticket.com/ns">
  <xs:ticket>str1234</xs:ticket>
</xs:routeTicket>

XPATH to access ticket

/xs:routeTicket/ticket

XPATH to access ticket

/xs:routeTicket/xs:ticket


Useful online tools