incubator-celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From abroekh...@apache.org
Subject svn commit: r1329121 - in /incubator/celix/trunk: deployment_admin/ deployment_admin/private/include/ deployment_admin/private/src/ framework/private/src/ framework/public/include/ shell/
Date Mon, 23 Apr 2012 08:29:44 GMT
Author: abroekhuis
Date: Mon Apr 23 08:29:43 2012
New Revision: 1329121

URL: http://svn.apache.org/viewvc?rev=1329121&view=rev
Log:
Deployment Admin loggin

Added logger to the deployment admin for the audit log (work in progress). Several small code
fixes.

Added:
    incubator/celix/trunk/deployment_admin/private/include/log.h
    incubator/celix/trunk/deployment_admin/private/include/log_event.h
    incubator/celix/trunk/deployment_admin/private/include/log_store.h
    incubator/celix/trunk/deployment_admin/private/include/log_sync.h
    incubator/celix/trunk/deployment_admin/private/src/log.c
    incubator/celix/trunk/deployment_admin/private/src/log_store.c
    incubator/celix/trunk/deployment_admin/private/src/log_sync.c
Modified:
    incubator/celix/trunk/deployment_admin/CMakeLists.txt
    incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c
    incubator/celix/trunk/deployment_admin/private/src/miniunz.c
    incubator/celix/trunk/framework/private/src/bundle_archive.c
    incubator/celix/trunk/framework/private/src/framework.c
    incubator/celix/trunk/framework/private/src/miniunz.c
    incubator/celix/trunk/framework/private/src/service_registration.c
    incubator/celix/trunk/framework/private/src/service_tracker.c
    incubator/celix/trunk/framework/public/include/bundle_archive.h
    incubator/celix/trunk/shell/update_command.c

Modified: incubator/celix/trunk/deployment_admin/CMakeLists.txt
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/CMakeLists.txt?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/deployment_admin/CMakeLists.txt (original)
+++ incubator/celix/trunk/deployment_admin/CMakeLists.txt Mon Apr 23 08:29:43 2012
@@ -30,6 +30,9 @@ bundle(deployment_admin SOURCES
 	private/src/ioapi
 	private/src/miniunz
 	private/src/unzip
+	private/src/log
+	private/src/log_store
+	private/src/log_sync
 )
 target_link_libraries(deployment_admin framework curl)
 

Added: incubator/celix/trunk/deployment_admin/private/include/log.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/include/log.h?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/include/log.h (added)
+++ incubator/celix/trunk/deployment_admin/private/include/log.h Mon Apr 23 08:29:43 2012
@@ -0,0 +1,21 @@
+/*
+ * log.h
+ *
+ *  Created on: Apr 18, 2012
+ *      Author: alexander
+ */
+
+#ifndef LOG_H_
+#define LOG_H_
+
+#include <apr_general.h>
+
+#include "log_event.h"
+#include "log_store.h"
+
+typedef struct log *log_t;
+
+celix_status_t log_create(apr_pool_t *pool, log_store_t store, log_t *log);
+celix_status_t log_log(log_t log, unsigned int type, PROPERTIES properties);
+
+#endif /* LOG_H_ */

Added: incubator/celix/trunk/deployment_admin/private/include/log_event.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/include/log_event.h?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/include/log_event.h (added)
+++ incubator/celix/trunk/deployment_admin/private/include/log_event.h Mon Apr 23 08:29:43
2012
@@ -0,0 +1,24 @@
+/*
+ * log_event.h
+ *
+ *  Created on: Apr 19, 2012
+ *      Author: alexander
+ */
+
+#ifndef LOG_EVENT_H_
+#define LOG_EVENT_H_
+
+#include "properties.h"
+
+struct log_event {
+	char *targetId;
+	unsigned long logId;
+	unsigned long id;
+	unsigned long time;
+	unsigned int type;
+	PROPERTIES properties;
+};
+
+typedef struct log_event *log_event_t;
+
+#endif /* LOG_EVENT_H_ */

Added: incubator/celix/trunk/deployment_admin/private/include/log_store.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/include/log_store.h?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/include/log_store.h (added)
+++ incubator/celix/trunk/deployment_admin/private/include/log_store.h Mon Apr 23 08:29:43
2012
@@ -0,0 +1,26 @@
+/*
+ * log_store.h
+ *
+ *  Created on: Apr 18, 2012
+ *      Author: alexander
+ */
+
+#ifndef LOG_STORE_H_
+#define LOG_STORE_H_
+
+#include "log_event.h"
+
+#include "properties.h"
+#include "array_list.h"
+
+typedef struct log_store *log_store_t;
+
+celix_status_t logStore_create(apr_pool_t *pool, log_store_t *store);
+celix_status_t logStore_put(log_store_t store, unsigned int type, PROPERTIES properties,
log_event_t *event);
+
+celix_status_t logStore_getLogId(log_store_t store, unsigned long *id);
+celix_status_t logStore_getEvents(log_store_t store, ARRAY_LIST *events);
+
+celix_status_t logStore_getHighestId(log_store_t store, long *id);
+
+#endif /* LOG_STORE_H_ */

Added: incubator/celix/trunk/deployment_admin/private/include/log_sync.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/include/log_sync.h?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/include/log_sync.h (added)
+++ incubator/celix/trunk/deployment_admin/private/include/log_sync.h Mon Apr 23 08:29:43
2012
@@ -0,0 +1,17 @@
+/*
+ * log_sync.h
+ *
+ *  Created on: Apr 19, 2012
+ *      Author: alexander
+ */
+
+#ifndef LOG_SYNC_H_
+#define LOG_SYNC_H_
+
+#include "log_store.h"
+
+typedef struct log_sync *log_sync_t;
+
+celix_status_t logSync_create(apr_pool_t *pool, char *targetId, log_store_t store, log_sync_t
*logSync);
+
+#endif /* LOG_SYNC_H_ */

Modified: incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c (original)
+++ incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c Mon Apr 23 08:29:43
2012
@@ -9,7 +9,6 @@
 #include <unistd.h>
 #include <string.h>
 #include <curl/curl.h>
-#include <curl/types.h>
 #include <curl/easy.h>
 #include <apr_strings.h>
 
@@ -21,6 +20,10 @@
 #include "bundle.h"
 #include "utils.h"
 
+#include "log.h"
+#include "log_store.h"
+#include "log_sync.h"
+
 #include "resource_processor.h"
 
 #define IDENTIFICATION_ID "deployment_admin.identification"
@@ -72,6 +75,16 @@ celix_status_t deploymentAdmin_create(ap
 			} else {
 				(*admin)->pollUrl = apr_pstrcat(subpool, url, (*admin)->targetIdentification, VERSIONS,
NULL);
 
+//				log_store_t store = NULL;
+//				log_t log = NULL;
+//				log_sync_t sync = NULL;
+//				logStore_create(subpool, &store);
+//				log_create(subpool, store, &log);
+//				logSync_create(subpool, (*admin)->targetIdentification, store, &sync);
+//
+//				log_log(log, 20000, NULL);
+
+
 				apr_thread_create(&(*admin)->poller, NULL, deploymentAdmin_poll, *admin, subpool);
 			}
 		}
@@ -85,7 +98,6 @@ static void *APR_THREAD_FUNC deploymentA
 
 	while (admin->running) {
 		//poll ace
-		printf("Read version\n");
 		ARRAY_LIST versions = NULL;
 		deploymentAdmin_readVersions(admin, &versions);
 
@@ -93,7 +105,6 @@ static void *APR_THREAD_FUNC deploymentA
 
 		if (last != NULL) {
 			if (admin->current == NULL || strcmp(last, admin->current) > 0) {
-				printf("install version: %s\n", last);
 				char *request = NULL;
 				if (admin->current == NULL) {
 					request = apr_pstrcat(admin->pool, admin->pollUrl, "/", last, NULL);
@@ -102,7 +113,6 @@ static void *APR_THREAD_FUNC deploymentA
 					//request = apr_pstrcat(admin->pool, VERSIONS, "/", last, "?current=", admin->current,
NULL);
 					request = apr_pstrcat(admin->pool, admin->pollUrl, "/", last, NULL);
 				}
-				printf("Request: %s\n", request);
 
 				char inputFile[MAXNAMLEN];
 				inputFile[0] = '\0';
@@ -110,7 +120,6 @@ static void *APR_THREAD_FUNC deploymentA
 				celix_status_t status = deploymentAdmin_download(request, &test);
 				if (status == CELIX_SUCCESS) {
 					// Handle file
-					printf("Handle file\n");
 					char tmpDir[MAXNAMLEN];
 					tmpDir[0] = '\0';
 					tmpnam(tmpDir);
@@ -118,7 +127,6 @@ static void *APR_THREAD_FUNC deploymentA
 					apr_dir_make(tmpDir, APR_UREAD|APR_UWRITE|APR_UEXECUTE, admin->pool);
 
 					// TODO: update to use bundle cache DataFile instead of module entries.
-					printf("Extract %s t0 %s\n", test, tmpDir);
 					extractBundle(test, tmpDir);
 					char *manifest = apr_pstrcat(admin->pool, tmpDir, "/META-INF/MANIFEST.MF", NULL);
 					MANIFEST mf = NULL;
@@ -135,7 +143,6 @@ static void *APR_THREAD_FUNC deploymentA
 					char *repoDir = apr_pstrcat(admin->pool, entry, "repo", NULL);
 					apr_dir_make(repoDir, APR_UREAD|APR_UWRITE|APR_UEXECUTE, admin->pool);
 					char *repoCache = apr_pstrcat(admin->pool, entry, "repo/", name, NULL);
-					printf("CAche: %s\n", repoCache);
 					deploymentAdmin_deleteTree(repoCache, admin->pool);
 					apr_status_t stat = apr_file_rename(tmpDir, repoCache, admin->pool);
 					if (stat != APR_SUCCESS) {
@@ -211,14 +218,12 @@ celix_status_t deploymentAdmin_readVersi
 		if (res != CURLE_OK) {
 			status = CELIX_BUNDLE_EXCEPTION;
 		}
-		printf("Error: %d\n", res);
 		/* always cleanup */
 		curl_easy_cleanup(curl);
 
 		char *last;
 		char *token = apr_strtok(chunk.memory, "\n", &last);
 		while (token != NULL) {
-			printf("Version: %s\n", token);
 			arrayList_add(*versions, apr_pstrdup(admin->pool, token));
 			token = apr_strtok(NULL, "\n", &last);
 		}
@@ -249,7 +254,6 @@ celix_status_t deploymentAdmin_download(
 		if (res != CURLE_OK) {
 			status = CELIX_BUNDLE_EXCEPTION;
 		}
-		printf("Error: %d\n", res);
 		/* always cleanup */
 		curl_easy_cleanup(curl);
 		fclose(fp);
@@ -422,9 +426,7 @@ celix_status_t deploymentAdmin_processDe
 
 		status = bundleContext_getServiceReferences(admin->context, RESOURCE_PROCESSOR_SERVICE,
filter, &services);
 		if (status == CELIX_SUCCESS) {
-			printf("REFS\n");
 			if (services != NULL && arrayList_size(services) > 0) {
-				printf("REFS22\n");
 				SERVICE_REFERENCE ref = arrayList_get(services, 0);
 				// In Felix a check is done to assure the processor belongs to the deployment package
 				// Is this according to spec?

Added: incubator/celix/trunk/deployment_admin/private/src/log.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/log.c?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/log.c (added)
+++ incubator/celix/trunk/deployment_admin/private/src/log.c Mon Apr 23 08:29:43 2012
@@ -0,0 +1,39 @@
+/*
+ * log.c
+ *
+ *  Created on: Apr 19, 2012
+ *      Author: alexander
+ */
+#include <apr_general.h>
+
+#include "celix_errno.h"
+
+#include "log.h"
+#include "log_store.h"
+
+struct log {
+	log_store_t logStore;
+};
+
+celix_status_t log_create(apr_pool_t *pool, log_store_t store, log_t *log) {
+	celix_status_t status = CELIX_SUCCESS;
+
+	*log = apr_palloc(pool, sizeof(**log));
+	if (!*log) {
+		status = CELIX_ENOMEM;
+	} else {
+		(*log)->logStore = store;
+	}
+
+	return status;
+}
+
+celix_status_t log_log(log_t log, unsigned int type, PROPERTIES properties) {
+	celix_status_t status = CELIX_SUCCESS;
+
+	log_event_t event = NULL;
+
+	status = logStore_put(log->logStore, type, properties, &event);
+
+	return status;
+}

Added: incubator/celix/trunk/deployment_admin/private/src/log_store.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/log_store.c?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/log_store.c (added)
+++ incubator/celix/trunk/deployment_admin/private/src/log_store.c Mon Apr 23 08:29:43 2012
@@ -0,0 +1,79 @@
+/*
+ * log_store.c
+ *
+ *  Created on: Apr 18, 2012
+ *      Author: alexander
+ */
+
+#include <apr_general.h>
+
+#include <time.h>
+
+#include "celix_errno.h"
+#include "array_list.h"
+
+#include "log_store.h"
+#include "log.h"
+
+struct log_store {
+	apr_pool_t *pool;
+
+	unsigned long storeId;
+
+	ARRAY_LIST logEvents;
+};
+
+static celix_status_t logStore_getNextID(log_store_t store, unsigned long *id);
+
+celix_status_t logStore_create(apr_pool_t *pool, log_store_t *store) {
+	celix_status_t status = CELIX_SUCCESS;
+	*store = apr_palloc(pool, sizeof(**store));
+	if (!*store) {
+		status = CELIX_ENOMEM;
+	} else {
+		(*store)->pool = pool;
+		(*store)->storeId = 1;
+		arrayList_create(pool, &(*store)->logEvents);
+	}
+
+	return status;
+}
+
+celix_status_t logStore_put(log_store_t store, unsigned int type, PROPERTIES properties,
log_event_t *event) {
+	celix_status_t status = CELIX_SUCCESS;
+
+	*event = apr_palloc(store->pool, sizeof(**event));
+	(*event)->targetId = NULL;
+	(*event)->logId = store->storeId;
+	(*event)->id = 0;
+	(*event)->time = time(NULL);
+	(*event)->type = type;
+	(*event)->properties = properties;
+
+	logStore_getNextID(store, &(*event)->id);
+
+	arrayList_add(store->logEvents, *event);
+
+	return status;
+}
+
+celix_status_t logStore_getLogId(log_store_t store, unsigned long *id) {
+	*id = store->storeId;
+	return CELIX_SUCCESS;
+}
+
+celix_status_t logStore_getEvents(log_store_t store, ARRAY_LIST *events) {
+	*events = store->logEvents;
+	return CELIX_SUCCESS;
+}
+
+celix_status_t logStore_getHighestId(log_store_t store, long *id) {
+	*id = ((long) arrayList_size(store->logEvents)) - 1;
+	return CELIX_SUCCESS;
+}
+
+static celix_status_t logStore_getNextID(log_store_t store, unsigned long *id) {
+	*id = arrayList_size(store->logEvents);
+	return CELIX_SUCCESS;
+}
+

Added: incubator/celix/trunk/deployment_admin/private/src/log_sync.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/log_sync.c?rev=1329121&view=auto
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/log_sync.c (added)
+++ incubator/celix/trunk/deployment_admin/private/src/log_sync.c Mon Apr 23 08:29:43 2012
@@ -0,0 +1,193 @@
+/*
+ * log_sync.c
+ *
+ *  Created on: Apr 19, 2012
+ *      Author: alexander
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <apr_general.h>
+#include <apr_thread_proc.h>
+#include <apr_strings.h>
+
+#include <curl/curl.h>
+#include <curl/easy.h>
+
+#include "celix_errno.h"
+#include "celixbool.h"
+
+#include "log_sync.h"
+#include "log_event.h"
+
+struct log_sync {
+	apr_pool_t *pool;
+	log_store_t logStore;
+
+	char *targetId;
+	bool running;
+
+	apr_thread_t *syncTask;
+};
+
+struct log_descriptor {
+	char *targetId;
+	unsigned long logId;
+	unsigned long low;
+	unsigned long high;
+};
+
+typedef struct log_descriptor *log_descriptor_t;
+
+celix_status_t logSync_queryLog(log_sync_t logSync, char *targetId, long logId, char **queryReply);
+static size_t logSync_readQeury(void *contents, size_t size, size_t nmemb, void *userp);
+static void *APR_THREAD_FUNC logSync_synchronize(apr_thread_t *thd, void *logSyncP);
+
+celix_status_t logSync_create(apr_pool_t *pool, char *targetId, log_store_t store, log_sync_t
*logSync) {
+	celix_status_t status = CELIX_SUCCESS;
+
+	*logSync = apr_palloc(pool, sizeof(**logSync));
+	if (!*logSync) {
+		status = CELIX_ENOMEM;
+	} else {
+		(*logSync)->pool = pool;
+		(*logSync)->logStore = store;
+		(*logSync)->targetId = targetId;
+		(*logSync)->syncTask = NULL;
+		(*logSync)->running = true;
+
+		apr_thread_create(&(*logSync)->syncTask, NULL, logSync_synchronize, *logSync, pool);
+	}
+
+	return status;
+}
+
+celix_status_t logSync_parseLogDescriptor(log_sync_t logSync, char *descriptorString, log_descriptor_t
*descriptor) {
+	celix_status_t status = CELIX_SUCCESS;
+
+	printf("Descriptor: %s\n", descriptorString);
+	char *last = NULL;
+	char *targetId = apr_strtok(descriptorString, ",", &last);
+	char *logIdStr = apr_strtok(NULL, ",", &last);
+	long logId = 0;
+	if (logIdStr != NULL) {
+		logId = atol(logIdStr);
+	}
+	char *range = apr_strtok(NULL, ",", &last);
+	printf("Range: %s\n", range);
+
+	long low = 0;
+	long high = 0;
+	if (range != NULL) {
+		char *rangeToken = NULL;
+		low = atol(apr_strtok(range, "-", &rangeToken));
+		high = atol(apr_strtok(NULL, "-", &rangeToken));
+	}
+
+	*descriptor = apr_palloc(logSync->pool, sizeof(**descriptor));
+	if (!*descriptor) {
+		status = CELIX_ENOMEM;
+	} else {
+		(*descriptor)->targetId = targetId;
+		(*descriptor)->logId = logId;
+		(*descriptor)->low = low;
+		(*descriptor)->high = high;
+	}
+
+	return status;
+}
+
+static void *APR_THREAD_FUNC logSync_synchronize(apr_thread_t *thd, void *logSyncP) {
+	log_sync_t logSync = logSyncP;
+
+		while (logSync->running) {
+
+		//query current log
+		// http://localhost:8080/auditlog/query?tid=targetid&logid=logid
+		char *logDescriptorString = NULL;
+		unsigned long id = 0;
+		logStore_getLogId(logSync->logStore, &id);
+		logSync_queryLog(logSync, logSync->targetId, id, &logDescriptorString);
+		log_descriptor_t descriptor = NULL;
+		logSync_parseLogDescriptor(logSync, logDescriptorString, &descriptor);
+
+		long highest = 0;
+		logStore_getHighestId(logSync->logStore, &highest);
+
+//		printf("Highest local: %ld\n", highest);
+//		printf("Highest remote: %ld\n", descriptor->high);
+
+		if (highest >= 0) {
+			int i;
+			for (i = descriptor->high + 1; i <= highest; i++) {
+				ARRAY_LIST events = NULL;
+				logStore_getEvents(logSync->logStore, &events);
+				log_event_t event = arrayList_get(events, i);
+//				printf("Event id: %ld\n", event->id);
+
+
+			}
+		}
+		sleep(10);
+	}
+
+
+	apr_thread_exit(thd, APR_SUCCESS);
+	return NULL;
+}
+
+struct MemoryStruct {
+	char *memory;
+	size_t size;
+};
+
+celix_status_t logSync_queryLog(log_sync_t logSync, char *targetId, long logId, char **queryReply)
{
+	// http://localhost:8080/auditlog/query?tid=targetid&logid=logid
+	celix_status_t status = CELIX_SUCCESS;
+
+	char *query = apr_pstrcat(logSync->pool, "http://localhost:8080/auditlog/query?tid=",
targetId, "&logid=1", NULL);
+
+	CURL *curl;
+	CURLcode res;
+	curl = curl_easy_init();
+	struct MemoryStruct chunk;
+	chunk.memory = calloc(1, sizeof(char));
+	chunk.size = 0;
+	if (curl) {
+		curl_easy_setopt(curl, CURLOPT_URL, query);
+		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, logSync_readQeury);
+		curl_easy_setopt(curl, CURLOPT_WRITEDATA, &chunk);
+		curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
+		res = curl_easy_perform(curl);
+		if (res != CURLE_OK) {
+			status = CELIX_BUNDLE_EXCEPTION;
+		}
+		printf("Error: %d\n", res);
+		/* always cleanup */
+		curl_easy_cleanup(curl);
+
+		*queryReply = apr_pstrdup(logSync->pool, chunk.memory);
+	}
+
+	return status;
+}
+
+static size_t logSync_readQeury(void *contents, size_t size, size_t nmemb, void *userp) {
+	size_t realsize = size * nmemb;
+	struct MemoryStruct *mem = (struct MemoryStruct *)userp;
+
+	mem->memory = realloc(mem->memory, mem->size + realsize + 1);
+	if (mem->memory == NULL) {
+	/* out of memory! */
+	printf("not enough memory (realloc returned NULL)\n");
+	exit(EXIT_FAILURE);
+	}
+
+	memcpy(&(mem->memory[mem->size]), contents, realsize);
+	mem->size += realsize;
+	mem->memory[mem->size] = 0;
+
+	return realsize;
+}

Modified: incubator/celix/trunk/deployment_admin/private/src/miniunz.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/miniunz.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/miniunz.c (original)
+++ incubator/celix/trunk/deployment_admin/private/src/miniunz.c Mon Apr 23 08:29:43 2012
@@ -204,7 +204,6 @@ int do_extract_currentfile(unzFile uf, c
     }
 
     if ((*filename_withoutpath)=='\0') {
-		printf("creating directory: %s\n",filename_inzip);
 		char dir[strlen(revisionRoot) + strlen(filename_inzip) + 2];
 		strcpy(dir, revisionRoot);
 		strcat(dir, "/");

Modified: incubator/celix/trunk/framework/private/src/bundle_archive.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/bundle_archive.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/bundle_archive.c (original)
+++ incubator/celix/trunk/framework/private/src/bundle_archive.c Mon Apr 23 08:29:43 2012
@@ -49,6 +49,21 @@ struct bundleArchive {
 	apr_pool_t *mp;
 };
 
+static apr_status_t bundleArchive_destroy(void *archiveP);
+
+static celix_status_t bundleArchive_getRevisionLocation(BUNDLE_ARCHIVE archive, long revNr,
char **revision_location);
+static celix_status_t bundleArchive_setRevisionLocation(BUNDLE_ARCHIVE archive, char * location,
long revNr);
+
+static celix_status_t bundleArchive_initialize(BUNDLE_ARCHIVE archive);
+
+static celix_status_t bundleArchive_deleteTree(char * directory, apr_pool_t *mp);
+
+static celix_status_t bundleArchive_createRevisionFromLocation(BUNDLE_ARCHIVE archive, char
*location, char *inputFile, long revNr, BUNDLE_REVISION *bundle_revision);
+static celix_status_t bundleArchive_reviseInternal(BUNDLE_ARCHIVE archive, bool isReload,
long revNr, char * location, char *inputFile);
+
+static celix_status_t bundleArchive_readLastModified(BUNDLE_ARCHIVE archive, time_t *time);
+static celix_status_t bundleArchive_writeLastModified(BUNDLE_ARCHIVE archive);
+
 celix_status_t bundleArchive_createSystemBundleArchive(apr_pool_t *mp, BUNDLE_ARCHIVE *bundle_archive)
{
     celix_status_t status;
 	BUNDLE_ARCHIVE archive;
@@ -61,6 +76,7 @@ celix_status_t bundleArchive_createSyste
         if (archive == NULL) {
             status = CELIX_ENOMEM;
         } else {
+        	apr_pool_pre_cleanup_register(mp, archive, bundleArchive_destroy);
             if (apr_pool_create(&revisions_pool, mp) == APR_SUCCESS) {
                 if (linkedList_create(revisions_pool, &archive->revisions) == CELIX_SUCCESS)
{
                     archive->id = 0l;
@@ -86,19 +102,6 @@ celix_status_t bundleArchive_createSyste
     return status;
 }
 
-celix_status_t bundleArchive_getRevisionLocation(BUNDLE_ARCHIVE archive, long revNr, char
**revision_location);
-celix_status_t bundleArchive_setRevisionLocation(BUNDLE_ARCHIVE archive, char * location,
long revNr);
-
-celix_status_t bundleArchive_initialize(BUNDLE_ARCHIVE archive);
-
-celix_status_t bundleArchive_deleteTree(char * directory, apr_pool_t *mp);
-
-celix_status_t bundleArchive_createRevisionFromLocation(BUNDLE_ARCHIVE archive, char *location,
char *inputFile, long revNr, BUNDLE_REVISION *bundle_revision);
-celix_status_t bundleArchive_reviseInternal(BUNDLE_ARCHIVE archive, bool isReload, long revNr,
char * location, char *inputFile);
-
-celix_status_t bundleArchive_readLastModified(BUNDLE_ARCHIVE archive, time_t *time);
-celix_status_t bundleArchive_writeLastModified(BUNDLE_ARCHIVE archive);
-
 celix_status_t bundleArchive_create(char * archiveRoot, long id, char * location, char *inputFile,
apr_pool_t *mp, BUNDLE_ARCHIVE *bundle_archive) {
     celix_status_t status = CELIX_SUCCESS;
     apr_pool_t *revisions_pool;
@@ -109,6 +112,7 @@ celix_status_t bundleArchive_create(char
     } else {
 		archive = (BUNDLE_ARCHIVE) apr_pcalloc(mp, sizeof(*archive));
 		if (archive != NULL) {
+			apr_pool_pre_cleanup_register(mp, archive, bundleArchive_destroy);
 			if (apr_pool_create(&revisions_pool, mp) == APR_SUCCESS) {
 				if (linkedList_create(revisions_pool, &archive->revisions) == CELIX_SUCCESS) {
 					archive->id = id;
@@ -139,19 +143,16 @@ celix_status_t bundleArchive_create(char
 	return status;
 }
 
-celix_status_t bundleArchive_destroy(BUNDLE_ARCHIVE archive) {
-	celix_status_t status = CELIX_SUCCESS;
-
-	if (archive == NULL) {
-		status = CELIX_ILLEGAL_ARGUMENT;
-	} else {
+static apr_status_t bundleArchive_destroy(void *archiveP) {
+	BUNDLE_ARCHIVE archive = archiveP;
+	if (archive != NULL) {
 		if (archive->archiveRootDir != NULL) {
 			apr_dir_close(archive->archiveRootDir);
 		}
 	}
-
 	archive = NULL;
-	return status;
+
+	return APR_SUCCESS;
 }
 
 celix_status_t bundleArchive_recreate(char * archiveRoot, apr_pool_t *mp, BUNDLE_ARCHIVE
*bundle_archive) {
@@ -162,6 +163,7 @@ celix_status_t bundleArchive_recreate(ch
     status = CELIX_SUCCESS;
 	archive = (BUNDLE_ARCHIVE) apr_pcalloc(mp, sizeof(*archive));
 	if (archive != NULL) {
+		apr_pool_pre_cleanup_register(mp, archive, bundleArchive_destroy);
 	    if (apr_pool_create(&revisions_pool, mp) == APR_SUCCESS) {
 	        if (linkedList_create(revisions_pool, &archive->revisions) == CELIX_SUCCESS)
{
                 apr_dir_t *dir;
@@ -441,7 +443,7 @@ celix_status_t bundleArchive_setLastModi
 	return status;
 }
 
-celix_status_t bundleArchive_readLastModified(BUNDLE_ARCHIVE archive, time_t *time) {
+static celix_status_t bundleArchive_readLastModified(BUNDLE_ARCHIVE archive, time_t *time)
{
 	char timeStr[20];
 	apr_file_t *lastModifiedFile;
 	apr_status_t apr_status;
@@ -476,7 +478,7 @@ celix_status_t bundleArchive_readLastMod
 	return status;
 }
 
-celix_status_t bundleArchive_writeLastModified(BUNDLE_ARCHIVE archive) {
+static celix_status_t bundleArchive_writeLastModified(BUNDLE_ARCHIVE archive) {
 	celix_status_t status = CELIX_SUCCESS;
 	apr_file_t *lastModifiedFile;
 	char timeStr[20];
@@ -512,7 +514,7 @@ celix_status_t bundleArchive_revise(BUND
 	return status;
 }
 
-celix_status_t bundleArchive_reviseInternal(BUNDLE_ARCHIVE archive, bool isReload, long revNr,
char * location, char *inputFile) {
+static celix_status_t bundleArchive_reviseInternal(BUNDLE_ARCHIVE archive, bool isReload,
long revNr, char * location, char *inputFile) {
     celix_status_t status;
     BUNDLE_REVISION revision = NULL;
 
@@ -538,7 +540,7 @@ celix_status_t bundleArchive_rollbackRev
 	return CELIX_SUCCESS;
 }
 
-celix_status_t bundleArchive_createRevisionFromLocation(BUNDLE_ARCHIVE archive, char *location,
char *inputFile, long revNr, BUNDLE_REVISION *bundle_revision) {
+static celix_status_t bundleArchive_createRevisionFromLocation(BUNDLE_ARCHIVE archive, char
*location, char *inputFile, long revNr, BUNDLE_REVISION *bundle_revision) {
     celix_status_t status = CELIX_SUCCESS;
     char root[256];
     long refreshCount;
@@ -567,7 +569,7 @@ celix_status_t bundleArchive_createRevis
 	return status;
 }
 
-celix_status_t bundleArchive_getRevisionLocation(BUNDLE_ARCHIVE archive, long revNr, char
**revision_location) {
+static celix_status_t bundleArchive_getRevisionLocation(BUNDLE_ARCHIVE archive, long revNr,
char **revision_location) {
     celix_status_t status;
 	char revisionLocation[256];
 	long refreshCount;
@@ -595,7 +597,7 @@ celix_status_t bundleArchive_getRevision
 	return status;
 }
 
-celix_status_t bundleArchive_setRevisionLocation(BUNDLE_ARCHIVE archive, char * location,
long revNr) {
+static celix_status_t bundleArchive_setRevisionLocation(BUNDLE_ARCHIVE archive, char * location,
long revNr) {
 	celix_status_t status = CELIX_SUCCESS;
 
 	char revisionLocation[256];
@@ -635,7 +637,7 @@ celix_status_t bundleArchive_closeAndDel
 	return status;
 }
 
-celix_status_t bundleArchive_initialize(BUNDLE_ARCHIVE archive) {
+static celix_status_t bundleArchive_initialize(BUNDLE_ARCHIVE archive) {
 	celix_status_t status = CELIX_SUCCESS;
 
 	if (archive->archiveRootDir == NULL) {
@@ -689,7 +691,7 @@ celix_status_t bundleArchive_initialize(
 	return status;
 }
 
-celix_status_t bundleArchive_deleteTree(char * directory, apr_pool_t *mp) {
+static celix_status_t bundleArchive_deleteTree(char * directory, apr_pool_t *mp) {
 	apr_dir_t *dir;
 	celix_status_t status = CELIX_SUCCESS;
 	apr_status_t stat = apr_dir_open(&dir, directory, mp);

Modified: incubator/celix/trunk/framework/private/src/framework.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/framework.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/framework.c (original)
+++ incubator/celix/trunk/framework/private/src/framework.c Mon Apr 23 08:29:43 2012
@@ -230,9 +230,9 @@ celix_status_t framework_destroy(FRAMEWO
 			linkedListIterator_destroy(iter);
 		}
 
-		if (bundle_getArchive(bundle, &archive) == CELIX_SUCCESS) {
-			bundleArchive_destroy(archive);
-		}
+//		if (bundle_getArchive(bundle, &archive) == CELIX_SUCCESS) {
+//			bundleArchive_destroy(archive);
+//		}
 		bundle_destroy(bundle);
 		hashMapIterator_remove(iterator);
 	}

Modified: incubator/celix/trunk/framework/private/src/miniunz.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/miniunz.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/miniunz.c (original)
+++ incubator/celix/trunk/framework/private/src/miniunz.c Mon Apr 23 08:29:43 2012
@@ -209,7 +209,6 @@ int do_extract_currentfile(unzFile uf, c
 
     if ((*filename_withoutpath)=='\0') {
 		char * dir;
-		printf("creating directory: %s\n",filename_inzip);
 		dir = (char *)malloc(strlen(revisionRoot) + strlen(filename_inzip) + 2);
 		strcpy(dir, revisionRoot);
 		strcat(dir, "/");

Modified: incubator/celix/trunk/framework/private/src/service_registration.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/service_registration.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/service_registration.c (original)
+++ incubator/celix/trunk/framework/private/src/service_registration.c Mon Apr 23 08:29:43
2012
@@ -26,6 +26,8 @@
 #include <stdio.h>
 #include <string.h>
 
+#include <apr_strings.h>
+
 #include "service_registration.h"
 #include "constants.h"
 #include "service_factory.h"

Modified: incubator/celix/trunk/framework/private/src/service_tracker.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/service_tracker.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/service_tracker.c (original)
+++ incubator/celix/trunk/framework/private/src/service_tracker.c Mon Apr 23 08:29:43 2012
@@ -25,6 +25,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
+
+#include <apr_strings.h>
+
 #include "service_tracker.h"
 #include "bundle_context.h"
 #include "constants.h"

Modified: incubator/celix/trunk/framework/public/include/bundle_archive.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/public/include/bundle_archive.h?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/framework/public/include/bundle_archive.h (original)
+++ incubator/celix/trunk/framework/public/include/bundle_archive.h Mon Apr 23 08:29:43 2012
@@ -36,7 +36,6 @@
 typedef struct bundleArchive * BUNDLE_ARCHIVE;
 
 celix_status_t bundleArchive_create(char * archiveRoot, long id, char * location, char *inputFile,
apr_pool_t *mp, BUNDLE_ARCHIVE *bundle_archive);
-celix_status_t bundleArchive_destroy(BUNDLE_ARCHIVE archive);
 celix_status_t bundleArchive_createSystemBundleArchive(apr_pool_t *mp, BUNDLE_ARCHIVE *bundle_archive);
 celix_status_t bundleArchive_recreate(char * archiveRoot, apr_pool_t *mp, BUNDLE_ARCHIVE
*bundle_archive);
 celix_status_t bundleArchive_getId(BUNDLE_ARCHIVE archive, long *id);

Modified: incubator/celix/trunk/shell/update_command.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/shell/update_command.c?rev=1329121&r1=1329120&r2=1329121&view=diff
==============================================================================
--- incubator/celix/trunk/shell/update_command.c (original)
+++ incubator/celix/trunk/shell/update_command.c Mon Apr 23 08:29:43 2012
@@ -1,3 +1,4 @@
+
 /**
  *Licensed to the Apache Software Foundation (ASF) under one
  *or more contributor license agreements.  See the NOTICE file
@@ -25,7 +26,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <curl/curl.h>
-#include <curl/types.h>
 #include <curl/easy.h>
 
 #include "command_private.h"



Mime
View raw message