http://blog.grimsy.net/2008/07/a-few-svn-pre-commit-hooks/

https://studio.plugins.atlassian.com/wiki/display/CMMT/JIRA+Commit+Acceptance
http://blog.grimsy.net/2008/07/a-few-svn-pre-commit-hooks/
http://bizsutra.blogspot.de/2008/08/svn-jira-pre-commit-hook.html


On Tue, Apr 17, 2012 at 8:21 PM, David Blevins <[email protected]> wrote:
> Jira :)
>
> On Apr 17, 2012, at 7:07 AM, [email protected] wrote:
>
>> Author: rmannibucau
>> Date: Tue Apr 17 14:07:02 2012
>> New Revision: 1327103
>>
>> URL: http://svn.apache.org/viewvc?rev=1327103&view=rev
>> Log:
>> starting work to undeploy app resources with the app undeployment
>>
>> Modified:
>>    
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
>>    
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
>>    
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
>>    
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
>>    
>> openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java
>>
>> Modified: 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
>> URL: 
>> http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java?rev=1327103&r1=1327102&r2=1327103&view=diff
>> ==============================================================================
>> --- 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
>>  (original)
>> +++ 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
>>  Tue Apr 17 14:07:02 2012
>> @@ -36,7 +36,7 @@ public class AppInfo extends InfoObject
>>     public final List<PersistenceUnitInfo> persistenceUnits = new 
>> ArrayList<PersistenceUnitInfo>();
>>     public final List<String> libs = new ArrayList<String>();
>>     public final Set<String> watchedResources = new TreeSet<String>();
>> -    public final Set<ResourceInfo> resourceInfos = new 
>> TreeSet<ResourceInfo>();
>> +    public final Set<String> resourceIds = new TreeSet<String>();
>>     public final JndiEncInfo globalJndiEnc = new JndiEncInfo();
>>     public final JndiEncInfo appJndiEnc = new JndiEncInfo();
>>     public String cmpMappingsXml;
>>
>> Modified: 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
>> URL: 
>> http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1327103&r1=1327102&r2=1327103&view=diff
>> ==============================================================================
>> --- 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
>>  (original)
>> +++ 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
>>  Tue Apr 17 14:07:02 2012
>> @@ -1333,6 +1333,14 @@ public class Assembler extends Assembler
>>             }
>>         }
>>
>> +        for (String id : appInfo.resourceIds) {
>> +            try {
>> +                
>> containerSystem.getJNDIContext().unbind(OPENEJB_RESOURCE_JNDI_PREFIX + id);
>> +            } catch (NamingException e) {
>> +                logger.warning("can't unbind resource '{0}'", id);
>> +            }
>> +        }
>> +
>>         containerSystem.removeAppContext(appInfo.appId);
>>
>>         ClassLoaderUtil.destroyClassLoader(appInfo.path);
>> @@ -1810,6 +1818,7 @@ public class Assembler extends Assembler
>>         for (String property : unsetProperties.keySet()) {
>>             //TODO: DMB: Make more robust later
>>             if (property.equalsIgnoreCase("properties")) return;
>> +            if (property.equalsIgnoreCase("ApplicationWide")) return;
>>             if (property.equalsIgnoreCase("transactionManager")) return;
>>             if (info.types.contains("javax.mail.Session")) return;
>>             //---
>>
>> Modified: 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
>> URL: 
>> http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1327103&r1=1327102&r2=1327103&view=diff
>> ==============================================================================
>> --- 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
>>  (original)
>> +++ 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
>>  Tue Apr 17 14:07:02 2012
>> @@ -272,14 +272,15 @@ class AppInfoBuilder {
>>
>>     private void buildAppResources(AppModule module, AppInfo info) {
>>         for (Resource def : module.getResources()) {
>> -            ResourceInfo resourceInfo = new ResourceInfo();
>> -            resourceInfo.id = module.getModuleId() + "/" + 
>> def.getJndi().replace("java:", "");
>> -
>> -            resourceInfo.service = "Resource";
>> -            resourceInfo.types.add(def.getType());
>> -            resourceInfo.properties = def.getProperties();
>> -
>> -            info.resourceInfos.add(resourceInfo);
>> +            // the resource is already deployed
>> +            // however we keep its id to be able to undeployed it later
>> +            // note: if ApplicationWide property was specified
>> +            // we want this application be managed only by the container
>> +            // once deployed = not undeployed with the app
>> +            // so we skip the undeployement skipping the id
>> +            if (!def.getProperties().containsKey("ApplicationWide")) {
>> +                info.resourceIds.add(def.getId());
>> +            }
>>         }
>>     }
>>
>>
>> Modified: 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
>> URL: 
>> http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1327103&r1=1327102&r2=1327103&view=diff
>> ==============================================================================
>> --- 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
>>  (original)
>> +++ 
>> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
>>  Tue Apr 17 14:07:02 2012
>> @@ -858,6 +858,7 @@ public class AutoConfig implements Dynam
>>         }
>>
>>         final List<ResourceInfo> resourceInfos = new 
>> ArrayList<ResourceInfo>();
>> +        final Map<ResourceInfo, Resource> resourcesMap = new 
>> HashMap<ResourceInfo, Resource>(resources.size());
>>         for (Resource resource : resources) {
>>             Properties properties = resource.getProperties();
>>
>> @@ -901,15 +902,17 @@ public class AutoConfig implements Dynam
>>             }
>>
>>             resourceInfos.add(resourceInfo);
>> +            resourcesMap.put(resourceInfo, resource);
>>         }
>>
>>         Collections.sort(resourceInfos, new 
>> ConfigurationFactory.ResourceInfoComparator(resourceInfos));
>>         for (ResourceInfo resourceInfo : resourceInfos) {
>> -            installResource(module.getModuleId(), resourceInfo);
>> +            final String id = installResource(module.getModuleId(), 
>> resourceInfo);
>> +            resourcesMap.remove(resourceInfo).setId(id);
>>         }
>>
>>         resourceInfos.clear();
>> -        resources.clear();
>> +        // resources.clear(); // don't clear it since we want to keep this 
>> to be able to undeploy resources with the app
>>     }
>>
>>     private String dataSourceLookupName(Resource datasource) {
>>
>> Modified: 
>> openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java
>> URL: 
>> http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java?rev=1327103&r1=1327102&r2=1327103&view=diff
>> ==============================================================================
>> --- 
>> openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java
>>  (original)
>> +++ 
>> openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java
>>  Tue Apr 17 14:07:02 2012
>> @@ -16,7 +16,15 @@
>>  */
>> package org.apache.openejb.assembler.classic;
>>
>> +import java.io.IOException;
>> +import java.util.Properties;
>> +import javax.annotation.Resource;
>> +import javax.naming.Context;
>> +import javax.naming.InitialContext;
>> +import javax.naming.NamingException;
>> +import javax.sql.DataSource;
>> import org.apache.commons.dbcp.BasicDataSource;
>> +import org.apache.openejb.OpenEJB;
>> import org.apache.openejb.OpenEJBException;
>> import org.apache.openejb.config.AppModule;
>> import org.apache.openejb.config.ConfigurationFactory;
>> @@ -28,14 +36,6 @@ import org.junit.After;
>> import org.junit.Before;
>> import org.junit.Test;
>>
>> -import javax.annotation.Resource;
>> -import javax.naming.Context;
>> -import javax.naming.InitialContext;
>> -import javax.naming.NamingException;
>> -import javax.sql.DataSource;
>> -import java.io.IOException;
>> -import java.util.Properties;
>> -
>> import static junit.framework.Assert.assertEquals;
>> import static junit.framework.Assert.assertNotNull;
>> import static junit.framework.Assert.assertTrue;
>> @@ -63,6 +63,9 @@ public class OpenEJBXmlByModuleTest {
>>
>>         Properties properties = new Properties();
>>         properties.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, 
>> LocalInitialContextFactory.class.getName());
>> +        properties.setProperty("openejb.embedded.initialcontext.close", 
>> "destroy");
>> +
>> +        // some hack to be sure to call destroy()
>>         context = new InitialContext(properties);
>>
>>         bean = (UselessBean) context.lookup("UselessBeanLocalBean");
>> @@ -71,6 +74,7 @@ public class OpenEJBXmlByModuleTest {
>>     @After public void close() throws NamingException {
>>         if (context != null) {
>>             context.close();
>> +            OpenEJB.destroy(); // has to be called manually since we start 
>> openejb in a custom way
>>         }
>>     }
>>
>>
>>
>>
>

Reply via email to