You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by ab...@apache.org on 2011/05/10 10:21:27 UTC

svn commit: r1101360 [3/5] - in /incubator/celix/trunk: ./ .settings/ celix_test/ dependency_manager/ echo_service/client/ framework/ framework/private/include/ framework/private/src/ hello_world/ hello_world/root/ launcher/ mongoose/ mongoose/MANIFEST...

Modified: incubator/celix/trunk/launcher/launcher.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/launcher/launcher.c?rev=1101360&r1=1101359&r2=1101360&view=diff
==============================================================================
--- incubator/celix/trunk/launcher/launcher.c (original)
+++ incubator/celix/trunk/launcher/launcher.c Tue May 10 08:21:24 2011
@@ -26,6 +26,7 @@
 #include "headers.h"
 #include "bundle_context.h"
 #include "bundle.h"
+#include "linked_list_iterator.h"
 
 static void launcher_load_custom_bundles(void);
 void launcher_shutdown(int signal);
@@ -57,22 +58,40 @@ int main(void) {
     	linkedList_addElement(bundles, location);
     	result = strtok(NULL, delims);
     }
-    int i;
     // Update according to Felix Main
     // First install all bundles
     // Afterwards start them
+    ARRAY_LIST installed = arrayList_create();
     BUNDLE_CONTEXT context = bundle_getContext(framework->bundle);
-    for (i = 0; i < linkedList_size(bundles); i++) {
-    	char * location = (char *) linkedList_get(bundles, i);
+    LINKED_LIST_ITERATOR iter = linkedListIterator_create(bundles, 0);
+    while (linkedListIterator_hasNext(iter)) {
+    	char * location = linkedListIterator_next(iter);
     	BUNDLE current = bundleContext_installBundle(context, location);
-		startBundle(current, 0);
+    	arrayList_add(installed, current);
+    	linkedListIterator_remove(iter);
+    }
+    linkedListIterator_destroy(iter);
+    linkedList_destroy(bundles);
+
+    int i;
+    for (i = 0; i < arrayList_size(installed); i++) {
+    	BUNDLE bundle = (BUNDLE) arrayList_get(installed, i);
+		startBundle(bundle, 0);
     }
 
+    arrayList_destroy(installed);
+
+
     framework_waitForStop(framework);
+    framework_destroy(framework);
+    properties_destroy(config);
     return 0;
 }
 
 void launcher_shutdown(int signal) {
 	framework_stop(framework);
-	framework_waitForStop(framework);
+	if (framework_waitForStop(framework) != CELIX_SUCCESS) {
+		celix_log("Error waiting for stop.");
+	}
+	framework_destroy(framework);
 }

Added: incubator/celix/trunk/mongoose/CMakeLists.txt
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/mongoose/CMakeLists.txt?rev=1101360&view=auto
==============================================================================
--- incubator/celix/trunk/mongoose/CMakeLists.txt (added)
+++ incubator/celix/trunk/mongoose/CMakeLists.txt Tue May 10 08:21:24 2011
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+add_library(mongoose STATIC mongoose.c)
+
+add_library(celix.mongoose SHARED activator)
+include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
+target_link_libraries(celix.mongoose framework mongoose)
+
+bundle(celix.mongoose DIRECTORIES root)

Propchange: incubator/celix/trunk/mongoose/CMakeLists.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/trunk/mongoose/MANIFEST/MANIFEST.MF
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/mongoose/MANIFEST/MANIFEST.MF?rev=1101360&view=auto
==============================================================================
--- incubator/celix/trunk/mongoose/MANIFEST/MANIFEST.MF (added)
+++ incubator/celix/trunk/mongoose/MANIFEST/MANIFEST.MF Tue May 10 08:21:24 2011
@@ -0,0 +1,3 @@
+Bundle-SymbolicName: celix.mongoose
+Bundle-Version: 1.0.0
+library: celix.mongoose

Propchange: incubator/celix/trunk/mongoose/MANIFEST/MANIFEST.MF
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/trunk/mongoose/activator.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/mongoose/activator.c?rev=1101360&view=auto
==============================================================================
--- incubator/celix/trunk/mongoose/activator.c (added)
+++ incubator/celix/trunk/mongoose/activator.c Tue May 10 08:21:24 2011
@@ -0,0 +1,69 @@
+/**
+ *Licensed to the Apache Software Foundation (ASF) under one
+ *or more contributor license agreements.  See the NOTICE file
+ *distributed with this work for additional information
+ *regarding copyright ownership.  The ASF licenses this file
+ *to you under the Apache License, Version 2.0 (the
+ *"License"); you may not use this file except in compliance
+ *with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *Unless required by applicable law or agreed to in writing,
+ *software distributed under the License is distributed on an
+ *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ *specific language governing permissions and limitations
+ *under the License.
+ */
+/*
+ * activator.c
+ *
+ *  Created on: Aug 20, 2010
+ *      Author: alexanderb
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <apr-1/apr_general.h>
+
+#include "bundle_activator.h"
+#include "bundle_context.h"
+#include "mongoose.h"
+
+struct userData {
+	struct mg_context *ctx;
+};
+
+celix_status_t bundleActivator_create(BUNDLE_CONTEXT context, void **userData) {
+	*userData = apr_palloc(bundleContext_getMemoryPool(context), sizeof(struct userData));
+	return CELIX_SUCCESS;
+}
+
+celix_status_t bundleActivator_start(void * userData, BUNDLE_CONTEXT context) {
+	struct userData * data = (struct userData *) userData;
+
+	BUNDLE b = bundleContext_getBundle(context);
+	char *entry = NULL;
+	bundle_getEntry(b, "root", &entry);
+	printf("Entry: %s\n", entry);
+
+	const char *options[] = {
+		"document_root", entry,
+		NULL
+	};
+	struct mg_context *ctx = mg_start(NULL, options);
+
+	printf("Mongoose startet: %p\n", ctx);
+
+	return CELIX_SUCCESS;
+}
+
+celix_status_t bundleActivator_stop(void * userData, BUNDLE_CONTEXT context) {
+	struct userData * data = (struct userData *) userData;
+	mg_stop(data->ctx);
+	return CELIX_SUCCESS;
+}
+
+celix_status_t bundleActivator_destroy(void * userData, BUNDLE_CONTEXT context) {
+	return CELIX_SUCCESS;
+}

Propchange: incubator/celix/trunk/mongoose/activator.c
------------------------------------------------------------------------------
    svn:mime-type = text/plain