JBoss Community

Implementing a non-flat deployment for Weld Integration

reply from Ales Justin in JBoss Microcontainer Development POJO Server - View the full discussion

I can look into it what would be the best way to do this.

Unless you wanna do it yourself.

Thanks! You can go ahead. :-)

OK, I have a few things ready, but now I need to know what do you need to make this work.

 

Currently I have this in place:

public synchronized Set<BeanDeploymentArchive> getLibraries() throws Exception
   {
      if (libs == null || checked.get() == false)
      {
         List<VirtualFile> excludedFiles = null;
 
         Map<Module, Set<URL>> modules = provider.getMatchingModules();
         for (Map.Entry<Module, Set<URL>> entry : modules.entrySet())
         {
            Set<URL> urls = entry.getValue();
            if (excludedUrls != null && excludedFiles == null)
            {
               excludedFiles = new ArrayList<VirtualFile>();
               for (URL eu : excludedUrls)
                  excludedFiles.add(VFS.getChild(eu));
            }
            Set<VirtualFile> files = new HashSet<VirtualFile>();
            for (URL u : urls)
            {
               VirtualFile vf = VFS.getChild(u);
               boolean include = true;
               if (excludedFiles != null)
               {
                  for (VirtualFile ef : excludedFiles)
                  {
                     if (vf.getParentFileList().contains(ef))
                     {
                        include = false;
                        break;
                     }
                  }
               }
               if (include)
                  files.add(vf);
            }
            if (files.isEmpty() == false)
            {
               ClassLoader cl = ClassLoading.getClassLoaderForModule(entry.getKey());
               // is this module already installed; past CL stage -- should be
               if (cl != null)
               {
                  // TODO  <----- your input needed here                   
               }
            }
         }
         checked.set(true);
      }
      return libs;
   }

 

I can now return a set of matching modules, which have beans.xml as part of its resources.

This is mostly aimed at system deployments, though it can serve all deployments.

(it will be disabled once get past PS' DEPLOYERS phase)

 

Each module is mapped to beans.xml' owners; e.g. some-cdi-lib.jar.

 

Will this info be enough for you?

Or at which example / use case / code should I look for more info?

Reply to this message by going to Community

Start a new discussion in JBoss Microcontainer Development POJO Server at Community