[JCA Development] New message: "Re: About Project Plan & Implementation"
by Jesper Pedersen
JBoss development,
A new message was posted in the thread "About Project Plan & Implementation":
http://community.jboss.org/message/525782#525782
Author : Jesper Pedersen
Profile : http://community.jboss.org/people/jesper.pedersen
Message:
--------------------------------------------------------------
Currently we have Jetty integrated as the web container to provide a HTTP based platform for our documentation and a simple management console.
The WARDeployer deploys .WAR files into the Jetty environment, but that is the scope of the integration currently.
If we want a "full" web + jca environment more work has to be done on the integration and especially the testing of the integration.
If you want to start on a Tomcat integration that would be great. There are a couple of points though
1. Jetty integration must be maintained - and hence there must be separate WAR deployers for each platform
2. There should be a test suite that test basic web applications (smoke-tests) -- currently there isn't one
3. There should be a test suite that test basic web / jca interaction
4. There should be different configurations - jetty+jca and tomcat+jca - for test suite and binary distribution
The key is to be a clean separation between JCA container and layers above, as web (JSP+Servlet) is just one "consumer" of JCA tech.
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/525782#525782
14 years, 4 months
[JBoss Microcontainer Development] New message: "Re: Profiling the dependency project"
by Kabir Khan
JBoss development,
A new message was posted in the thread "Profiling the dependency project":
http://community.jboss.org/message/525701#525701
Author : Kabir Khan
Profile : http://community.jboss.org/people/kabir.khan@jboss.com
Message:
--------------------------------------------------------------
I tried indexing the dependencies by state since a lot of time is spent iterating over the dependencies to determine the unresolved dependencies, however this had an adverse effect, making it a bit slower
> $svn diff
> Index: dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java
> ===================================================================
> --- dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java (revision 100812)
> +++ dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java (working copy)
> @@ -24,7 +24,9 @@
> import java.util.Collections;
> import java.util.HashSet;
> import java.util.List;
> +import java.util.Map;
> import java.util.Set;
> +import java.util.concurrent.ConcurrentHashMap;
> import java.util.concurrent.CopyOnWriteArrayList;
> import java.util.concurrent.CopyOnWriteArraySet;
>
> @@ -64,6 +66,10 @@
> /** Whether this is an autowire candidate */
> private boolean autowireCandidate = true;
>
> + private Map<ControllerState, Set<DependencyItem>> iDependOnByState = new ConcurrentHashMap<ControllerState, Set<DependencyItem>>(5, .75f, 1);
> +
> +// private static final ControllerState NULL_CONTROLLER_STATE = ControllerState.newState("Null_AbstractDependencyInfo");
> +
> /**
> * Create an abstract dependency info
> */
> @@ -90,12 +96,34 @@
> public void addIDependOn(DependencyItem dependency)
> {
> iDependOn.add(dependency);
> +
> + if (dependency.getWhenRequired() == null)
> + return;
> +
> + Set<DependencyItem> dependOnForState = iDependOnByState.get(dependency.getWhenRequired());
> + if (dependOnForState == null)
> + {
> + dependOnForState = new CopyOnWriteArraySet<DependencyItem>();
> + Set<DependencyItem> old = iDependOnByState.put(dependency.getWhenRequired(), dependOnForState);
> + if (old != null)
> + dependOnForState = old;
> + }
> + dependOnForState.add(dependency);
> +
> flushJBossObjectCache();
> }
>
> public void removeIDependOn(DependencyItem dependency)
> {
> iDependOn.remove(dependency);
> +
> + if (dependency.getWhenRequired() == null)
> + return;
> +
> + Set<DependencyItem> dependOnForState = iDependOnByState.get(dependency.getWhenRequired());
> + if (dependOnForState != null)
> + dependOnForState.remove(dependency);
> +
> flushJBossObjectCache();
> }
>
> @@ -147,24 +175,61 @@
> if (iDependOn.isEmpty())
> return Collections.emptySet();
>
> + //Old way
> +// Set<DependencyItem> result = null;
> +// for (DependencyItem item : iDependOn)
> +// {
> +// if (state == null || state.equals(item.getWhenRequired()))
> +// {
> +// if (item.isResolved() == false)
> +// {
> +// if (result == null)
> +// result = new HashSet<DependencyItem>();
> +// result.add(item);
> +// }
> +// }
> +// }
> +
> + //New way
> Set<DependencyItem> result = null;
> - for (DependencyItem item : iDependOn)
> + if (state != null)
> {
> - if (state == null || state.equals(item.getWhenRequired()))
> + Set<DependencyItem> dependenciesForState = iDependOnByState.get(state);
> + if (dependenciesForState != null)
> {
> - if (item.isResolved() == false)
> + for (DependencyItem item : dependenciesForState)
> {
> - if (result == null)
> - result = new HashSet<DependencyItem>();
> - result.add(item);
> + if (item.isResolved() == false)
> + {
> + if (result == null)
> + result = new HashSet<DependencyItem>();
> + result.add(item);
> + }
> }
> }
> }
> + else
> + {
> + for (DependencyItem item : iDependOn)
> + {
> + if (state == null)
> + {
> + if (item.isResolved() == false)
> + {
> + if (result == null)
> + result = new HashSet<DependencyItem>();
> + result.add(item);
> + }
> + }
> + }
> + }
> +
> +
> if (result == null)
> return Collections.emptySet();
> return result;
> }
> -
> +
> public <T> void addInstallItem(CallbackItem<T> callbackItem)
> {
> installCallbacks.add(callbackItem);
>
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/525701#525701
14 years, 4 months
[Tomcat Integration Development] New message: "Re: Deployment of on-demand web applications"
by Emanuel Muckenhuber
JBoss development,
A new message was posted in the thread "Deployment of on-demand web applications":
http://community.jboss.org/message/525693#525693
Author : Emanuel Muckenhuber
Profile : http://community.jboss.org/people/emuckenhuber
Message:
--------------------------------------------------------------
> mailto:bstansberry@jboss.com wrote:
>
> Fair enough. The above JIRAs are mostly to document this for later consideration so I could move on to other stuff today.
Well i mean there is obviously something broken, i don't want to argue about that. That HDScanner is picking up the contents of the .war is because i added some workaround to integrate service-bindingmanager. I never thought this should be hot-deployable, so i was wrong. However i need to validate if this is still true for some new profiles i'm going to add - so might just remove this workaround and you would need to use a different metadata to create this kind of profiles.
> mailto:bstansberry@jboss.com wrote:
>
> Hmm, but deploy-hasingleton is a bit of a different story. That's a profile that gets activated after startup but is a legit hot deploy profile. For that we'd need to make sure the JBAS-7721 problem is fixed.
Currently the activator has to take care of that e.g. profileService.getActiveProfile(key).isMutable().enableModificationChecks(...);
HDScanning will change a bit in future. So basically i want to have a HDScanner per "hot-deployment profile", so that they can have a separate scan-period and the scanner can be started/stopped independently. I haven't finished the implementation yet, so i cannot really say how this will exactly look like. I guess i can add a "startAutomatically" flag to the scanner configuration, so that an activator does not need to take care of that in future?
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/525693#525693
14 years, 4 months
[jBPM Development] New message: "Jbpm4.3 History Service Help"
by Tony D
JBoss development,
A new message was posted in the thread "Jbpm4.3 History Service Help":
http://community.jboss.org/message/525670#525670
Author : Tony D
Profile : http://community.jboss.org/people/tony2010
Message:
--------------------------------------------------------------
Hi,
I am running a test JBPM process using seam (JBPM 4.3). I am not able to persist the variables into the history table (table name jbpm4_hist_var). I tried setting the parameter history attribute into the variable.
<variable name=param1 type=string history=enabled />
But still the variables are added to history table. Is there any other way i can history the variables. Under normal execution the variables are stored into jbpm4_variable table but are removed after the process is completed.
Any help would be highly appreciated.
Thanks.
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/525670#525670
14 years, 4 months
[JCA Development] New message: "Re: About Project Plan & Implementation"
by Vicky Kak
JBoss development,
A new message was posted in the thread "About Project Plan & Implementation":
http://community.jboss.org/message/525657#525657
Author : Vicky Kak
Profile : http://community.jboss.org/people/vickyk
Message:
--------------------------------------------------------------
I understand that we eventually would be in a position where we can plugin the JBJCA in other environment, I am more inclined to get it in the Tomcat.
There are couple of ways which I can think to achieve this
1) Have the embeded tomcat started from the JBJCA and write a deployer which would deploy .war/.ear.
2) Embed the JBJCA in the Tomcat and implement the required deployers in Tomcat which will deploy the .rar.
In both the cases we have to integrate the deployers and provide the JCA infrastructure(pooling/tx/security)
I don't see just a JCA container which would purely have a capability to deploy the RAR being useful in enterprise application, you need to have the deployers for other artifacts too.
What is the plan here?
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/525657#525657
14 years, 4 months
[EJB 3.0 Development] New message: "Re: Externalizing Scope: Resolving EJB References and Endpoints"
by Andrew Rubinger
JBoss development,
A new message was posted in the thread "Externalizing Scope: Resolving EJB References and Endpoints":
http://community.jboss.org/message/525610#525610
Author : Andrew Rubinger
Profile : http://community.jboss.org/people/ALRubinger
Message:
--------------------------------------------------------------
https://jira.jboss.org/jira/browse/EJBTHREE-2011
Client usage is shown in the ClientUsageUnitTest:
/**
* Simple demonstration of client contracts {@link SessionManager}
* to prove / document its use
*
* @author <a href="mailto:andrew.rubinger@jboss.org">ALR</a>
* @version $Revision: $
*/
public class ClientUsageUnitTest
{
/**
* A mock {@link SessionManagerFactory} which is represented to the compiler
* as type {@link Object} because JNDI lookups will provide no type information
*/
private static Object jndiEntry = new SessionManagerFactory()
{
@Override
public <T> SessionManager<T> get(Class<T> businessInterface) throws IllegalArgumentException
{
return new SessionManager<T>()
{
@Override
public T create(Class<T> beanInterface) throws IllegalArgumentException
{
// TODO Auto-generated method stub
return null;
}
@Override
public boolean exists(T proxy) throws IllegalArgumentException
{
// TODO Auto-generated method stub
return false;
}
@Override
public void remove(T proxy) throws NoSuchEJBException
{
}
};
}
};
/**
* Shows the client usage of {@link SessionManagerFactory} and
* {@link SessionManager}; doesn't really test anything (after all this
* is an API component).
*/
@Test
public void showClientUsage()
{
// This step mocks a JNDI lookup to a factory specific to a SFSB
final SessionManagerFactory factory = (SessionManagerFactory) jndiEntry;
// Get a manager specific to a bean interface for the SFSB
final SessionManager<String> manager = factory.get(String.class);
/*
* Invoke its operations in a typesafe way
*/
// Create a new session
final String created = manager.create(String.class);
// Session exists?
manager.exists(created);
// Remove the session
manager.remove(created);
}
}
Is this the view we'd like to proceed?
S,
ALR
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/525610#525610
14 years, 4 months