diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
index b33fe7bd..7f6f2bc 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
@@ -18,12 +18,12 @@
 
 import java.util.List;
 
-import org.springframework.beans.factory.DisposableBean;
-
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 
+import org.springframework.beans.factory.DisposableBean;
+
 /**
  *
  */
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
index f8dca6e..1860483 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
@@ -254,13 +254,15 @@
      * Appends the Mail attachments from the Camel {@link MailMessage}
      */
     protected void appendAttachmentsFromCamel(MimeMessage mimeMessage, MailConfiguration configuration,
-                                              Exchange exchange) throws MessagingException, IOException {
+        Exchange exchange) throws MessagingException, IOException {
+
         // Put parts in message
         mimeMessage.setContent(createMixedMultipartAttachments(configuration, exchange));
     }
 
     private MimeMultipart createMixedMultipartAttachments(MailConfiguration configuration, Exchange exchange)
-            throws MessagingException, IOException {
+        throws MessagingException, IOException {
+
         // fill the body with text
         MimeMultipart multipart = new MimeMultipart();
         multipart.setSubType("mixed");
@@ -362,7 +364,7 @@
     }
 
     protected void addBodyToMultipart(MailConfiguration configuration, MimeMultipart activeMultipart, Exchange exchange)
-            throws MessagingException, IOException {
+        throws MessagingException, IOException {
 
         BodyPart bodyMessage = new MimeBodyPart();
         populateContentOnBodyPart(bodyMessage, configuration, exchange);
