Author: rmannibucau
Date: Mon Sep 24 14:23:28 2012
New Revision: 1389400
URL: http://svn.apache.org/viewvc?rev=1389400&view=rev
Log:
adding ResolverClassLoaderEnricherObserver
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/AdditionalLibClassLoaderEnricherObserver.java
- copied, changed from r1388365,
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AdditionalLibClassLoaderEnricherObserver.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/ResolverClassLoaderEnricherObserver.java
Removed:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AdditionalLibClassLoaderEnricherObserver.java
Copied:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/AdditionalLibClassLoaderEnricherObserver.java
(from r1388365,
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AdditionalLibClassLoaderEnricherObserver.java)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/AdditionalLibClassLoaderEnricherObserver.java?p2=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/AdditionalLibClassLoaderEnricherObserver.java&p1=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AdditionalLibClassLoaderEnricherObserver.java&r1=1388365&r2=1389400&rev=1389400&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AdditionalLibClassLoaderEnricherObserver.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/AdditionalLibClassLoaderEnricherObserver.java
Mon Sep 24 14:23:28 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.openejb.assembler.classic;
+package org.apache.openejb.assembler.classic.enricher;
import org.apache.openejb.OpenEJBRuntimeException;
import org.apache.openejb.component.ClassLoaderEnricher;
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/ResolverClassLoaderEnricherObserver.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/ResolverClassLoaderEnricherObserver.java?rev=1389400&view=auto
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/ResolverClassLoaderEnricherObserver.java
(added)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/enricher/ResolverClassLoaderEnricherObserver.java
Mon Sep 24 14:23:28 2012
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+package org.apache.openejb.assembler.classic.enricher;
+
+import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.component.ClassLoaderEnricher;
+import org.apache.openejb.loader.IO;
+import org.apache.openejb.loader.ProvisioningUtil;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.observer.Observes;
+import org.apache.openejb.observer.event.ObserverAdded;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
+public class ResolverClassLoaderEnricherObserver {
+ private static boolean initDone = false;
+
+ private String configFile = "additional-lib";
+
+ public void initEnricher(@Observes final ObserverAdded event) {
+ if (initDone || configFile == null ||
!ResolverClassLoaderEnricherObserver.class.isInstance(event.getObserver())) {
+ return;
+ }
+
+ final File file = new File(configFile);
+ if (file.exists()) {
+ final ClassLoaderEnricher enricher =
SystemInstance.get().getComponent(ClassLoaderEnricher.class);
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new FileReader(file));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ line = line.trim();
+ if (line.isEmpty() || line.startsWith("#")) {
+ continue;
+ }
+
+ final File lib = new
File(ProvisioningUtil.realLocation(line));
+ if (lib.exists()) {
+ enricher.addUrl(lib.toURI().toURL());
+ } else {
+ throw new OpenEJBRuntimeException("can't find " +
line);
+ }
+ }
+ } catch (Exception e) {
+ throw new OpenEJBRuntimeException(e);
+ } finally {
+ IO.close(reader);
+ }
+ }
+
+ initDone = true;
+ }
+
+ public void setConfigFile(final String configFile) {
+ this.configFile = configFile;
+ }
+}