[JBoss JIRA] (AS7-5476) Complete support for OSGi JPA
by Thomas Diesler (JIRA)
Thomas Diesler created AS7-5476:
-----------------------------------
Summary: Complete support for OSGi JPA
Key: AS7-5476
URL: https://issues.jboss.org/browse/AS7-5476
Project: Application Server 7
Issue Type: Feature Request
Reporter: Thomas Diesler
h6. 127.3.1 Services
_Entity Manager Factory Builder service_ - The Entity Manager Factory Builder service provides the capability of creating an EntityManagerFactory object with additional configuration properties
Add EntityManagerFactory service properties
* osgi.unit.name - The name of the Persistence Unit (done)
* osgi.unit.version - The version of the associated Persistence Bundle
* osgi.unit.provider - The implementation class name of the JPA Provider
h6. 127.3.4 Custom Configured Entity Manager
If a Client Bundle needs to provide configuration properties for the creation of an Entity Manager Factory it should use the Entity Manager Factory Builder service. This can for example be used to provide the database selection properties when the Persistence Unit is incomplete or if the database selection needs to be overridden.
Once an Entity Manager Factory is created the specified Data Source becomes associated with the Entity Manager Factory. It is therefore not possible to re-associate an Entity Manager Factory with another Data Source by providing different properties. A JPA Provider must throw an Exception when an attempt is made to re-specify the database properties.
h6. 127.4.2 Meta Persistence Header
Support non-default persistence descriptors through the Meta-Persistence header
For example: _Meta-Persistence: META-INF/jpa.xml, persistence/jpa.xml_
h6. 127.4.3 Processing
The JPA Provider must validate the Persistence Bundle. A valid Persistence Bundle must:
* Have no parsing errors of the Persistence Descriptors
* Validate all Persistence Descriptors against their schemas
* Have at least one assigned Persistence Unit
* Have all entity classes mentioned in the assigned Persistence Units on the Persistence Bundles JAR.
If any validation fails, then this is an error and should be logged. Such a bundle is ignored completely even if it also contains valid assigned Persistence Units. Only a bundle update can recover from this
state.
h6. 127.4.8 Stopping
If a Persistence Bundle is being stopped, then the JPA Provider must ensure that any resources allocated on behalf of the Persistence Bundle are cleaned up and all open connections are closed. This cleanup must happen synchronously with the STOPPING event. Any Exceptions being thrown while cleaning up should be logged but must not stop any further clean up.
If the JPA Provider is being stopped, the JPA Provider must unregister all JPA Services that it registered through the Persistence Bundles and clean up as if those bundles were stopped.
h6. 127.5.3 Data Source Factory Service Matching
Providers must use the javax.persistence.jdbc.driver property, as defined in JDBC Access in JPA on page 406, to obtain a Data Source Factory service. The Data Source Factory is specified in JDBC Service Specification on page 375. The javax.persistence.jdbc.driver property must be matched with the value of the Data Source Factory service property named osgi.jdbc.driver.class.
h6. 127.5.4 Rebinding
In this specification, the Entity Manager Factory service is only registered when the Persistence Unit is complete and a matching Data Source Factory service is available. However, the API of the Entity
Manager Factory allows the creation of an Entity Manager with configuration properties. Those configuration properties could contain the JDBC properties to bind to another Data Source Factory service than it had already selected.
This case must not be supported by a JPA Provider, an Illegal Argument Exception must be thrown.
h6. 127.6 Static Access
A Static Persistence Bundle must provide static access from the Persistence class to the JPA Services.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 11 months
[JBoss JIRA] (AS7-5321) support expressions for remote-destination-outbound-socket-binding host attrib
by John Mazzitelli (JIRA)
John Mazzitelli created AS7-5321:
------------------------------------
Summary: support expressions for remote-destination-outbound-socket-binding host attrib
Key: AS7-5321
URL: https://issues.jboss.org/browse/AS7-5321
Project: Application Server 7
Issue Type: Feature Request
Affects Versions: 7.1.1.Final
Reporter: John Mazzitelli
I appears that remote-destination-outbound-socket-binding resources cannot have attributes that are expressions - at least the host attrtibute. In JBossAS 4.2.3, we used to have a stock email service.xml that people could customize by simply passing in new system properties (rather than editing .xml or going through a CLI to change the values). However, in AS 7.1.1.Final, we can't do this for the mail service because at least the host attribute does not appear to allow for expressions:
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=mail-smtp
My host attribute was set to the expression ${rhq.server.email.smtp-host:localhost} and when I tried to start the server, I got:
Caused by: java.net.UnknownHostException: ${rhq.server.email.smtp-host:localhost}
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) [rt.jar:1.6.0_29]
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849) [rt.jar:1.6.0_29]
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1202) [rt.jar:1.6.0_29]
at java.net.InetAddress.getAllByName0(InetAddress.java:1153) [rt.jar:1.6.0_29]
at java.net.InetAddress.getAllByName(InetAddress.java:1083) [rt.jar:1.6.0_29]
at java.net.InetAddress.getAllByName(InetAddress.java:1019) [rt.jar:1.6.0_29]
at java.net.InetAddress.getByName(InetAddress.java:969) [rt.jar:1.6.0_29]
at org.jboss.as.network.OutboundSocketBinding.getDestinationAddress(OutboundSocketBinding.java:146)
at org.jboss.as.mail.extension.MailSessionService.getServerSocketAddress(MailSessionService.java:106)
The weird thing is, the port attribute appears to allow for expressions. When my port is set to this expression: "${rhq.server.email.smtp-port:25}", the server starts up fine (that is, after I set to the host to a legitimate hostname like "localhost")
This JIRA is to request that expressions be supported for the host attribute as it appears to be supported for the port attribute.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 11 months
[JBoss JIRA] (AS7-5342) SAR MBean String attributes cannot be longer than about 3650 characters
by John Mazzitelli (JIRA)
John Mazzitelli created AS7-5342:
------------------------------------
Summary: SAR MBean String attributes cannot be longer than about 3650 characters
Key: AS7-5342
URL: https://issues.jboss.org/browse/AS7-5342
Project: Application Server 7
Issue Type: Feature Request
Affects Versions: 7.1.1.Final
Reporter: John Mazzitelli
I have a SAR. One of the MBean attributes is a String (actually, for my real use-case the value is a Properties object, but due to JIRA AS7-5336, there are other problems, but let's just go with String attribute type, because the same problem I will describe happens with that type, too)
If the string value is longer than around 3650 characters the beginning of the string is stripped (I can't nail it down to a specific value, but its around that number, give or take 10 characters or so)
For example, if I have this in jboss-service.xml:
<attribute name="MyStrAttrib">
This is a really long string.
...[lots of characters here]...
It has more than 3650
characters in it.
</attribute>
What my MBean setter (setMyStrAttrib(String s)) will be passed is something like "aracters in it." The characters at index 0 through ~3650 are missing, I only have the parts after it.
In my real example, the reason why the string is so long is that its a Properties string with lots of name/value pairs. I ended up working around AS7-5336 but then I hit this issue.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 11 months
[JBoss JIRA] (AS7-5558) More useful error messages when management operations can't be found
by Brian Stansberry (JIRA)
Brian Stansberry created AS7-5558:
-------------------------------------
Summary: More useful error messages when management operations can't be found
Key: AS7-5558
URL: https://issues.jboss.org/browse/AS7-5558
Project: Application Server 7
Issue Type: Enhancement
Components: Domain Management
Reporter: Brian Stansberry
Fix For: 7.2.0.CR1
When the ModelController attempts to find the OperationStepHandler for a given operation + address, it needs to handle failure more intelligently. Instead of providing a one-size fits all exception, it should try to determine why the OSH couldn't be found and tailor the exception accordingly. Specifically, clarify whether the problem is the address is invalid or the operation name is invalid, and if it's the address that's invalid, clarify the point in the resource tree where the address goes wrong.
For example, a user attempting to administer a server that has already been shut down gets this fairly useless exception:
Error loading VM metrics
Unexpected HTTP response: 500
Request
{
"operation" => "composite",
"address" => [],
"steps" => [
{
"address" => [
("host" => "master"),
("server" => "server-one"),
("core-service" => "platform-mbean"),
("type" => "memory")
],
"operation" => "read-resource",
"include-runtime" => true
},
{
"address" => [
("host" => "master"),
("server" => "server-one"),
("core-service" => "platform-mbean"),
("type" => "threading")
],
"operation" => "read-resource",
"include-runtime" => true
},
{
"address" => [
("host" => "master"),
("server" => "server-one"),
("core-service" => "platform-mbean"),
("type" => "runtime")
],
"operation" => "read-resource",
"include-runtime" => true
},
{
"address" => [
("host" => "master"),
("server" => "server-one"),
("core-service" => "platform-mbean"),
("type" => "operating-system")
],
"operation" => "read-resource",
"include-runtime" => true
}
]
}
Response
Internal Server Error
{
"outcome" => "failed",
"failure-description" => "JBAS010850: No handler for operation read-resource at address [
(\"host\" => \"master\"),
(\"server\" => \"server-one\"),
(\"core-service\" => \"platform-mbean\"),
(\"type\" => \"memory\")
]",
"rolled-back" => true
}
The reality is no resource exists at address /host=master/server=server-one. The failure message should emphasize this fact.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 11 months