Return-Path: Delivered-To: apmail-openwebbeans-commits-archive@www.apache.org Received: (qmail 26244 invoked from network); 29 Jan 2010 23:59:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 29 Jan 2010 23:59:41 -0000 Received: (qmail 67579 invoked by uid 500); 29 Jan 2010 23:59:41 -0000 Delivered-To: apmail-openwebbeans-commits-archive@openwebbeans.apache.org Received: (qmail 67551 invoked by uid 500); 29 Jan 2010 23:59:41 -0000 Mailing-List: contact commits-help@openwebbeans.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openwebbeans.apache.org Delivered-To: mailing list commits@openwebbeans.apache.org Received: (qmail 67541 invoked by uid 99); 29 Jan 2010 23:59:41 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Jan 2010 23:59:41 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Jan 2010 23:59:39 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A0E5B23889E3; Fri, 29 Jan 2010 23:59:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r904679 - in /openwebbeans/trunk/webbeans-spi: ./ src/ src/main/ src/main/java/ src/main/java/META-INF/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/webbeans/ src/main/java/org/apache/webbeans/spi/ src/main/resource... Date: Fri, 29 Jan 2010 23:59:19 -0000 To: commits@openwebbeans.apache.org From: gerdogdu@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100129235919.A0E5B23889E3@eris.apache.org> Author: gerdogdu Date: Fri Jan 29 23:59:18 2010 New Revision: 904679 URL: http://svn.apache.org/viewvc?rev=904679&view=rev Log: [OWB-256] Define SPI Maven Module Added: openwebbeans/trunk/webbeans-spi/ (with props) openwebbeans/trunk/webbeans-spi/pom.xml (with props) openwebbeans/trunk/webbeans-spi/src/ openwebbeans/trunk/webbeans-spi/src/main/ openwebbeans/trunk/webbeans-spi/src/main/java/ openwebbeans/trunk/webbeans-spi/src/main/java/META-INF/ openwebbeans/trunk/webbeans-spi/src/main/java/org/ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/JNDIService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ResourceService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/SecurityService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/TransactionService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ValidatorService.java (with props) openwebbeans/trunk/webbeans-spi/src/main/resources/ openwebbeans/trunk/webbeans-spi/src/test/ openwebbeans/trunk/webbeans-spi/src/test/java/ openwebbeans/trunk/webbeans-spi/src/test/java/org/ openwebbeans/trunk/webbeans-spi/src/test/java/org/apache/ openwebbeans/trunk/webbeans-spi/src/test/java/org/apache/webbeans/ openwebbeans/trunk/webbeans-spi/src/test/java/org/apache/webbeans/spi/ openwebbeans/trunk/webbeans-spi/src/test/java/org/apache/webbeans/spi/test/ Propchange: openwebbeans/trunk/webbeans-spi/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Fri Jan 29 23:59:18 2010 @@ -0,0 +1,4 @@ +target +.classpath +.project +.settings Added: openwebbeans/trunk/webbeans-spi/pom.xml URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/pom.xml?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/pom.xml (added) +++ openwebbeans/trunk/webbeans-spi/pom.xml Fri Jan 29 23:59:18 2010 @@ -0,0 +1,75 @@ + + + + 4.0.0 + + org.apache.openwebbeans + openwebbeans + 1.0.0-SNAPSHOT + + + openwebbeans-spi + Apache OpenWebBeans :: SPI + jar + OpenWebBeans SPI + + + + + org.apache.myfaces.core + myfaces-api + true + + + + org.apache.geronimo.specs + geronimo-el_1.0_spec + true + + + + junit + junit + + + + org.apache.geronimo.specs + geronimo-servlet_2.5_spec + true + + + org.apache.geronimo.specs + geronimo-cdi_1.0_spec + 1.0-SNAPSHOT + true + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.1.1 + true + + + org.apache.geronimo.specs + geronimo-validation_1.0_spec + 1.0-EA6-SNAPSHOT + true + + + + Propchange: openwebbeans/trunk/webbeans-spi/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,79 @@ +/* + * 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.webbeans.spi; + +import java.util.Properties; + +import javax.enterprise.inject.spi.BeanManager; + +/** + * JSR-299 Container lifecycle. + * + * @version $Rev$ $Date$ + * + */ +public interface ContainerLifecycle +{ + /** + * Initialize lifecycle. + *

+ * Implementors can configure their + * initialization specific actions here. + *

+ * @param properties any properties + */ + public void init(Properties properties); + + /** + * Starts container. It discovers all beans + * in the deployment archive. + *

+ * For Java EE artifact deployment, it scans all classes + * and libraries in the deployment archive. There are several + * types of deployment arhives; + *

    + *
  • EAR archive
  • + *
  • EJB archive
  • + *
  • WAR archive
  • + *
  • RAR archive
  • + *
  • Application client archive. OPTIONAL
  • + *
+ *

+ * + *

+ * Container uses metadata discovery SPI for scanning archives + * and act accordingly. If there is an exception while starting, + * it must abort the deployment and provides information to the + * developer. + *

+ * @param startupObject any startup object. + * @throws Exception exception thrown by startup + */ + public void start(Object startupObject) throws Exception; + + /** + * Stops means that container removes all bean instances + * it store, remove contexts and does necessary final actions. + * @param endObject any onject provided by implementors + */ + public void stop(Object endObject); + + /** + * Gets deployment bean manager instance. There is 1-1 correspondence + * between bean manager and deployment archive. + * @return deployment {@link BeanManager} instance + */ + public BeanManager getBeanManager(); + +} Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,38 @@ +/* + * 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.webbeans.spi; + +/** + * Conversation related SPI. + * @version $Rev$ $Date$ + */ +public interface ConversationService +{ + /** + * Gets the current conversation id or null + * if there is no conversation. + * @return the current conversation id + */ + public String getConversationId(); + + /** + * Gets the session id of the current session. + * @return the session id of the current user session + */ + public String getConversationSessionId(); + +} Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/JNDIService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/JNDIService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/JNDIService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/JNDIService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,57 @@ +/* + * 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.webbeans.spi; + +/** + * SPI for setting and retrieving objects from the JNDI. + * Use this interface for all objects which should be stored and retreived + * from the JNDI at runtime. + * + * This may be implemented via a static map for + * environments where no JNDI is available. + */ +public interface JNDIService +{ + /**JMS Connection Factory JNDI Name*/ + public static final String JMS_CONNECTION_FACTORY_JNDI_KEY = "org.apache.webbeans.spi.JNDIService.jmsConnectionFactoryJndi"; + + /**Default value*/ + public static final String JMS_CONNECTION_FACTORY_JNDI_DEFAULT_VALUE = "ConnectionFactory"; + + /** + * Bind the object with the given name to the JNDI environment + * + * @param name + * @param object + * @throws WebBeansException on any internal error + */ + public abstract void bind(String name, Object object); + + /** + * Unbind and free the object with the given name from the JNDI environment + * @param name + * @throws WebBeansException on any internal error + */ + public abstract void unbind(String name); + + /** + * Get the object bound to the given name from the JNDI context. + * @param name + * @param expectedClass + * @return the bound object or null if nothing bound. + * @throws WebBeansException on any internal error + */ + public abstract T lookup(String name, Class expectedClass); + +} \ No newline at end of file Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/JNDIService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ResourceService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ResourceService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ResourceService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ResourceService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,39 @@ +/* + * 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.webbeans.spi; + +import java.lang.reflect.Field; + +/** + * Resource service is used for injecting the resources + * of following types into the managed bean instance; + *
    + *
  • @Resource
  • + *
  • Remote @EJB
  • + *
  • @WebServiceRef
  • + *
  • @PersistenceContext
  • + *
  • @PersistenceUnit
  • + *
+ * @version $Rev$ $Date$ + * + */ +public interface ResourceService +{ + /** + * Gets object that is injected into the given resource field. + * @param field resource field + * @return object that is injected into field + */ + Object getResource(Field field); +} Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ResourceService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,62 @@ +/* + * 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.webbeans.spi; + +import java.net.URL; +import java.util.Set; + + +/** + * This SPI is for abstracting the class scanning. + * + * In a production environment Many different modules need to perform + * class scanning (EJB, JSF, JPA, ...). This SPI allows us to only have one + * central class scanner for the whole application server + * which only performs the scanning once at startup of each WebApp. + * + * @version $Rev$ $Date$ + */ +public interface ScannerService +{ + /** + * Any initializtion action that is + * required by the implementors. + * @param object initialization object + */ + public void init(Object object); + + /** + * Perform the actual class scanning. + * @throws WebBeansDeploymentException + */ + public void scan(); + + + /** + * Gets xml configuration files that are occured + * in the deployment archives. + * @return the locations of the beans.xml files. + */ + public Set getBeanXmls(); + + /** + * Gets beans classes that are found in the + * deployment archives. + * @return bean classes + */ + public Set> getBeanClasses(); +} Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/SecurityService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/SecurityService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/SecurityService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/SecurityService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,35 @@ +/* + * 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.webbeans.spi; + +import java.security.Principal; + +/** + * Security service SPI. + * @version $Rev$ $Date$ + * + */ +public interface SecurityService +{ + /** + * Gets the current caller identity. + * @return current caller identity. + */ + public Principal getCurrentPrincipal(); +} Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/SecurityService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/TransactionService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/TransactionService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/TransactionService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/TransactionService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,43 @@ +/* + * 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.webbeans.spi; + +import javax.transaction.Transaction; +import javax.transaction.TransactionManager; +import javax.transaction.UserTransaction; + +/** + * Transaction related service. + * @version $Rev$ $Date$ + */ +public interface TransactionService +{ + /** + * Get {@link TransactionManager} instance from container. + * @return the TransactionManager or null if none is registered. + */ + public TransactionManager getTransactionManager(); + + /** + * Get the transaction context of the calling thread + * @return the Transaction or null if no TransactionManager is used. + */ + public Transaction getTransaction(); + + /** + * Gets user transaction instance. + * @return user transaction object + */ + public UserTransaction getUserTransaction(); +} \ No newline at end of file Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/TransactionService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ValidatorService.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ValidatorService.java?rev=904679&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ValidatorService.java (added) +++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ValidatorService.java Fri Jan 29 23:59:18 2010 @@ -0,0 +1,42 @@ +/* + * 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.webbeans.spi; + +import javax.validation.Validator; +import javax.validation.ValidatorFactory; + +/** + * Validator SPI. + * @version $Rev$ $Date$ + * + */ +public interface ValidatorService +{ + /** + * Gets default validator factory instance. + * @return validator factory + */ + public ValidatorFactory getDefaultValidatorFactory(); + + /** + * Gets validator of default validator factory. + * @return validator + */ + public Validator getDefaultValidator(); +} Propchange: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ValidatorService.java ------------------------------------------------------------------------------ svn:eol-style = native