+#ifdef COMPONENT_APPLICATION_SUPPORT
+ int AppComponentMain()
+ {
+ /*Crate component_based_app_base_lifecycle_callback*/
+ component_based_app_base_lifecycle_callback_s callback;
+ callback.init = AppInit;
+ callback.run = AppRun;
+ callback.exit = AppExit;
+ callback.create = ComponentAppCreate;
+ callback.terminate = ComponentAppTerminate;
+ callback.fini = ComponentAppFinish;
+
+ return component_based_app_base_main(*mFramework->mArgc, *mFramework->mArgv, &callback, mFramework);
+ ;
+ }
+
+ static void* ComponentAppCreate(void* data)
+ {
+ Framework* framework = static_cast<Framework*>(data);
+ Observer* observer = &framework->mObserver;
+ observer->OnInit();
+
+ return Dali::AnyCast<void*>(observer->OnCreate());
+ }
+
+ static void ComponentAppTerminate(void* data)
+ {
+ Observer* observer = &static_cast<Framework*>(data)->mObserver;
+ observer->OnTerminate();
+ }
+
+ static void ComponentAppFinish(void* data)
+ {
+ ecore_shutdown();
+
+ if(getenv("AUL_LOADER_INIT"))
+ {
+ setenv("AUL_LOADER_INIT", "0", 1);
+ ecore_shutdown();
+ }
+ }
+
+ void AppComponentExit()
+ {
+ component_based_app_base_exit();
+ }
+
+#endif
+