As a jsf fans and a java programmer since 1999, I think jsf implements provided 
by apche is disordered and poor maintained!!! lack of plan, stability, 
continuity and stability!!!

 

I use myfaces 1.1.1 from 2006(in a product), but I am looking for another jsf 
implement now, the feeling is not so good.

 

Pardon me for my poor english.


 
> Date: Tue, 1 Dec 2009 09:46:51 +0800
> Subject: Re: [ANNOUNCE] MyFaces Core v2.0.0-alpha Release
> From: dait...@gmail.com
> To: users@myfaces.apache.org
> 
> Hi,
> 
> Just want to know if MyFaces Core 2.0.0 has passed the TCK? If not , is
> there any plan for it?
> 
> Thanks!
> 
> 2009/12/1 Leonardo Uribe <lu4...@apache.org>
> 
> > The Apache MyFaces team is pleased to announce the release of MyFaces Core
> > 2.0.0-alpha.
> >
> > MyFaces Core is a JavaServer(tm) Faces 2.0 implementation as specified by
> > JSR-314.
> >
> > MyFaces Core 2.0.0-alpha is available in both binary and source
> > distributions.
> >
> > * http://myfaces.apache.org/download.html
> >
> > MyFaces Core is also available in the central Maven repository under Group
> > ID "org.apache.myfaces.core".
> >
> > Release Notes - MyFaces Core - Version 2.0.0-alpha
> >
> > Sub-task
> >
> > * [MYFACES-2174] - MyFaces 2.0 AJAX API extension proposal
> > * [MYFACES-2191] - Move the myfaces params into the context
> > * [MYFACES-2195] - rename xhrcore_xxx to xhrcore._xxx
> > * [MYFACES-2200] - Send events and errors at the various xhr stages
> > * [MYFACES-2223] - switch viewstate replacement from id to name
> > * [MYFACES-2238] - offer extension point for AJAX Javascript
> > * [MYFACES-2240] - typo in javascript build script and target folder
> > doesn't fit the spec
> > * [MYFACES-2257] - trigger external scripts after AJAX reload
> > * [MYFACES-2311] - Implement <composite:actionSource> tag handler
> > * [MYFACES-2312] - Implement <composite:attribute> tag handler
> > * [MYFACES-2313] - Implement <composite:editableValueHolder> tag handler
> > * [MYFACES-2314] - Implement <composite:extension> tag handler
> > * [MYFACES-2315] - Implement <composite:facet> tag handler
> > * [MYFACES-2316] - Implement <composite:implementation> tag handler
> > * [MYFACES-2317] - Implement <composite:insertChildren> tag handler
> > * [MYFACES-2318] - Implement <composite:insertFacet> tag handler
> > * [MYFACES-2319] - Implement <composite:interface> tag handler
> > * [MYFACES-2320] - Implement <composite:renderFacet> tag handler
> > * [MYFACES-2324] - Add ViewDeclarationLanguage.retargetAttachedObjects
> > and ViewDeclarationLanguage.retargetMethodExpressions
> > * [MYFACES-2325] - Add Composite Renderer class
> > * [MYFACES-2331] - Implement Composite Component Attributes ELResolver
> > (jsf 2.0 spec section 5.6.2.2) and add implicit object "cc" and "component"
> > * [MYFACES-2362] - Move default validator registration from
> > UIInput.validateValue to ComponentTagHandlerDelegate
> >
> > Bug
> >
> > * [MYFACES-2083] - FacesContext contains several unnecessary methods
> > * [MYFACES-2131] - Import to internal Sun class
> > * [MYFACES-2146] - Bug in UIViewRoot causes Exception in
> > popComponentFromEL()
> > * [MYFACES-2147] - NoSuchMethodException when instantiating SystemEvent
> > objects
> > * [MYFACES-2287] - getting the myfaces 1.2 simple example app running on
> > 2.0 impl
> > * [MYFACES-2296] - Annotation scanning bugs
> > * [MYFACES-2357] - currency validation does not fall through to the
> > default JVM local when a default locale is not specified in faces-config
> > * [MYFACES-2358] - System event system not working
> > * [MYFACES-2359] - ComponentSystemEvents are not globally dispatched
> > * [MYFACES-2360] - Facelets JSTL escapeXML function not escaping '>'
> > * [MYFACES-2381] - Broken link: "Core JSF-2.0"
> > * [MYFACES-2384] - @FacesBehavior not handled correctly
> > * [MYFACES-2386] - Refactor Bean Validation "constants" to
> > package-private class
> > * [MYFACES-2387] - component state not being restored when
> > ValueChangeListener is attached
> > * [MYFACES-2390] - h:graphic image doesn't handle library attribue
> > * [MYFACES-2391] - classpath resources not checking for valid version
> > pattern
> > * [MYFACES-2393] - graphicImage tag does not handle resource EL
> > expressions properly
> > * [MYFACES-2394] - ResourceDependency annotations not being handled
> > properly if target attribute is set
> > * [MYFACES-2397] - f:ajax attributes execute and render should take space
> > delimited clientIds
> > * [MYFACES-2398] - no spaces in html-output of f:ajax with render and
> > execute attributes with more than one target
> > * [MYFACES-2402] - Fix conditional navigation
> > * [MYFACES-2404] - JspViewDeclarationLanguageStrategy is always the
> > default strategy, so it should always return true on handles() method
> > * [MYFACES-2405] - f:ajax renderer not handling multiple IDs properly
> > * [MYFACES-2406] - Create a view with viewId is null should be possible
> > * [MYFACES-2408] - UIComponent.subscribeToEvent and unsubscribeToEvent
> > should throw NullPointerException when eventClass or componentListener is
> > null
> > * [MYFACES-2415] - EnumConverter should only conver to String valid enum
> > values
> > * [MYFACES-2416] - h:outputLabel does not handle escape property
> >
> > Improvement
> >
> > * [MYFACES-1910] - Add resetValue() to EditableValueHolder interface
> > (this is a JSF 2.0 related issue)
> > * [MYFACES-2010] - Implement JSF 2.0 - Comment in the class
> > * [MYFACES-2036] - Comment on javax.faces.application.FacesMessage Class
> > * [MYFACES-2235] - ProjectStage extension
> > * [MYFACES-2354] - update javax.faces.component classes which utilize the
> > context classloader to handle java2 security
> > * [MYFACES-2389] - clean up the UIComponentBase.setParent()
> >
> > New Feature
> >
> > * [MYFACES-2133] - The implementation of ResourceHandler must be
> > thread-safe
> > * [MYFACES-2140] - Add annotation processing logic
> > * [MYFACES-2162] - Default RenderKitId should be HTML_BASIC when using
> > annotations
> > * [MYFACES-2173] - JSF 2.0 AJAX library
> > * [MYFACES-2372] - h:commandButton should render UIParameter children
> >
> > Task
> >
> > * [MYFACES-1911] - Implement JSF 2.0 logic at TODO #1
> > * [MYFACES-1912] - Implement JSF 2.0 logic at TODO #2
> > * [MYFACES-1913] - Implement JSF 2.0 logic at TODO #3
> > * [MYFACES-1914] - Implement JSF 2.0 logic at TODO #4
> > * [MYFACES-1915] - Implement JSF 2.0 logic at TODO #5
> > * [MYFACES-1916] - Implement JSF 2.0 logic at TODO #6
> > * [MYFACES-1917] - Implement JSF 2.0 logic at TODO #7
> > * [MYFACES-1918] - Implement JSF 2.0 logic at TODO #8
> > * [MYFACES-1919] - Implement JSF 2.0 logic at TODO #9
> > * [MYFACES-1920] - Implement JSF 2.0 logic at TODO #10
> > * [MYFACES-1921] - Implement JSF 2.0 logic at TODO #16
> > * [MYFACES-1922] - Implement JSF 2.0 logic at TODO #17
> > * [MYFACES-1923] - Implement JSF 2.0 logic at TODO #11
> > * [MYFACES-1924] - Implement JSF 2.0 logic at TODO #18
> > * [MYFACES-1925] - Implement JSF 2.0 logic at TODO #19
> > * [MYFACES-1926] - Implement JSF 2.0 logic at TODO #20
> > * [MYFACES-1927] - Implement JSF 2.0 logic at TODO #21
> > * [MYFACES-1928] - Implement JSF 2.0 logic at TODO #22
> > * [MYFACES-1929] - Implement JSF 2.0 logic at TODO #23
> > * [MYFACES-1930] - Implement JSF 2.0 logic at TODO #22
> > * [MYFACES-1931] - Implement JSF 2.0 logic at TODO #35
> > * [MYFACES-1932] - Implement JSF 2.0 logic at TODO #24
> > * [MYFACES-1933] - Implement JSF 2.0 logic at TODO #24
> > * [MYFACES-1934] - Implement JSF 2.0 logic at TODO #25
> > * [MYFACES-1935] - Implement JSF 2.0 logic at TODO #34
> > * [MYFACES-1936] - Implement JSF 2.0 logic at TODO #26
> > * [MYFACES-1938] - Implement JSF 2.0 logic at TODO #28
> > * [MYFACES-1939] - Implement JSF 2.0 logic at TODO #33
> > * [MYFACES-1940] - Implement JSF 2.0 logic at TODO #29
> > * [MYFACES-1941] - Implement JSF 2.0 logic at TODO #30
> > * [MYFACES-1942] - Implement JSF 2.0 logic at TODO #32
> > * [MYFACES-1943] - Implement JSF 2.0 logic at TODO #12
> > * [MYFACES-1944] - Implement JSF 2.0 logic at TODO #13
> > * [MYFACES-1945] - Implement JSF 2.0 logic at TODO #14
> > * [MYFACES-1946] - Implement JSF 2.0 logic at TODO #31
> > * [MYFACES-1947] - Implement JSF 2.0 logic at TODO #15
> > * [MYFACES-1948] - Implement JSF 2.0 logic at TODO #27
> > * [MYFACES-1950] - Implement JSF 2.0 - ExternalContext is missing some
> > methods
> > * [MYFACES-1951] - Update UIInput.validate()
> > * [MYFACES-1958] - Implement AfterAddToParentEvent
> > * [MYFACES-1959] - Add missing javax.faces.event Classes & Interfaces
> > * [MYFACES-1968] - Implement JSF 2.0 logic at TODO #35
> > * [MYFACES-1969] - Implement JSF 2.0 logic at TODO #36
> > * [MYFACES-1970] - Implement JSF 2.0 logic at TODO #37
> > * [MYFACES-1971] - Implement JSF 2.0 logic at TODO #38
> > * [MYFACES-1972] - Implement JSF 2.0 logic at TODO #39
> > * [MYFACES-1973] - Implement JSF 2.0 logic at TODO #40
> > * [MYFACES-1974] - Apply Java 5 specific features to the code, mainly
> > generics and enhanced for
> > * [MYFACES-1977] - add to FacesServlet.service call to ResourceHandler
> > and update digester code
> > * [MYFACES-1978] - Remove org.apache.myfaces.portlet from JSF 2.0 branch,
> > because it has no use anymore
> > * [MYFACES-1980] - Implement JSF 2.0 logic at TODO #41
> > * [MYFACES-1983] - Implement JSF 2.0 logic at TODO #42
> > * [MYFACES-1984] - Implement JSF 2.0 logic at TODO #43
> > * [MYFACES-1985] - Implement JSF 2.0 logic at TODO #44
> > * [MYFACES-1986] - Implement JSF 2.0 logic at TODO #45
> > * [MYFACES-1987] - Implement JSF 2.0 logic at TODO #46
> > * [MYFACES-1998] - Implement JSF 2.0 logic at TODO #57
> > * [MYFACES-2003] - Implement JSF 2.0 logic at TODO #58
> > * [MYFACES-2014] - Implement
> > ResponseStateManager.getViewState(FacesContext, Object) and update state
> > saving field on client when ajax response is processed
> > * [MYFACES-2015] - Implements AJAX lifecycle on UIViewRoot
> > * [MYFACES-2018] - Implement @ResourceDependency support for setConverter
> > and addValidator
> > * [MYFACES-2019] - Implement iterator() on DataModel
> > * [MYFACES-2020] - Implement changes to RenderKit
> > * [MYFACES-2021] - Add EDR2 part of error handling to FacesServlet
> > * [MYFACES-2022] - Add setSubmitted(false) in UIForm.saveState
> > * [MYFACES-2032] - Implement
> > javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE config
> > param
> > * [MYFACES-2040] - Implement tag c:catch
> > * [MYFACES-2041] - Implement tag c:choose
> > * [MYFACES-2042] - Implement tag c:forEach
> > * [MYFACES-2043] - Implement tag c:if
> > * [MYFACES-2044] - Implement tag c:otherwise
> > * [MYFACES-2045] - Implement tag c:set
> > * [MYFACES-2046] - Implement tag c:when
> > * [MYFACES-2047] - Implement tag composite:actionSource
> > * [MYFACES-2048] - Implement tag composite:attribute
> > * [MYFACES-2049] - Implement tag composite:editableValueHolder
> > * [MYFACES-2050] - Implement tag composite:facet
> > * [MYFACES-2051] - Implement tag composite:implementation
> > * [MYFACES-2052] - Implement tag composite:insertChildren
> > * [MYFACES-2053] - Implement tag composite:insertFacet
> > * [MYFACES-2054] - Implement tag composite:interface
> > * [MYFACES-2055] - Implement tag composite:valueHolder
> > * [MYFACES-2056] - Implement tag fn:contains()
> > * [MYFACES-2057] - Implement tag fn:containsIgnoreCase()
> > * [MYFACES-2058] - Implement tag fn:endsWith()
> > * [MYFACES-2059] - Implement tag fn:escapeXml()
> > * [MYFACES-2060] - Implement tag fn:indexOf()
> > * [MYFACES-2061] - Implement tag fn:join()
> > * [MYFACES-2062] - Implement tag fn:length()
> > * [MYFACES-2063] - Implement tag fn:replace()
> > * [MYFACES-2064] - Implement tag fn:split()
> > * [MYFACES-2065] - Implement tag fn:startsWith()
> > * [MYFACES-2066] - Implement tag fn:substring()
> > * [MYFACES-2067] - Implement tag fn:substringAfter()
> > * [MYFACES-2068] - Implement tag fn:substringBefore()
> > * [MYFACES-2069] - Implement tag fn:toLowerCase()
> > * [MYFACES-2070] - Implement tag fn:toUpperCase()
> > * [MYFACES-2071] - Implement tag fn:trim()
> > * [MYFACES-2072] - Implement tag ui:component
> > * [MYFACES-2073] - Implement tag ui:composition
> > * [MYFACES-2074] - Implement tag ui:debug
> > * [MYFACES-2075] - Implement tag ui:decorate
> > * [MYFACES-2076] - Implement tag ui:define
> > * [MYFACES-2077] - Implement tag ui:fragment
> > * [MYFACES-2078] - Implement tag ui:include
> > * [MYFACES-2079] - Implement tag ui:insert
> > * [MYFACES-2080] - Implement tag ui:param
> > * [MYFACES-2081] - Implement tag ui:repeat
> > * [MYFACES-2085] - Add ApplicationWrapper class
> > * [MYFACES-2086] - Add DiscoveryHandler class
> > * [MYFACES-2088] - Add ExceptionHandler class
> > * [MYFACES-2093] - Add ExceptionEvent class
> > * [MYFACES-2096] - Make DataModel types generic
> > * [MYFACES-2098] - Add RegexValidator class
> > * [MYFACES-2101] - Javadoc update for method Object getFactory(String
> > factoryName) of FactoryFinder class
> > * [MYFACES-2102] - Implement JSF 2.0 logic for UIComponent
> > createComponent(FacesContext context,Resource componentResource) TODO #60
> > * [MYFACES-2105] - Implement JSF 2.0 logic for UIComponent
> > createComponent(final String componentType)
> > * [MYFACES-2106] - add Exception handler factory to FactoryFinder and
> > update getFactory method
> > * [MYFACES-2108] - implement ExceptionHandler contract on myfaces-impl
> > * [MYFACES-2123] - Add javax.faces.webapp.pdl.facelets.* API classes
> > * [MYFACES-2125] - Add UIComponent.doTreeTraversal method
> > * [MYFACES-2136] - UISelectMany
> > * [MYFACES-2151] - Make test work using shale test (changes in jsf 2.0
> > make it fail)
> > * [MYFACES-2163] - Add RequiredValidator
> > * [MYFACES-2166] - Some Resources contains ValueExpressions that must be
> > evaluated
> > * [MYFACES-2171] - Add Config Ordering feature
> > * [MYFACES-2178] - Implement IMPL - method addResponseHeader of
> > ExternalContext
> > * [MYFACES-2179] - Implement IMPL - method getRequestContentLength of
> > ExternalContext
> > * [MYFACES-2180] - Implement IMPL - method getResponseBufferSize of
> > ExternalContext
> > * [MYFACES-2181] - Implement IMPL - method getResponseOutputWriter of
> > ExternalContext
> > * [MYFACES-2182] - Implement IMPL - method isResponseCommitted of
> > ExternalContext
> > * [MYFACES-2184] - Implement IMPL - all TODO methods of ExternalContext
> > * [MYFACES-2187] - Implement encodeBookmarkableURL and encodeRedirectURL
> > in ExternalContext
> > * [MYFACES-2189] - Implement ApplicationImpl TODO's for Behavior
> > * [MYFACES-2197] - ExceptionQueuedEventContext todos
> > * [MYFACES-2198] - remaining FacesContext/FacesContextImpl TODOs.
> > * [MYFACES-2205] - Update UIViewRoot to latest spec draft
> > * [MYFACES-2215] - Handle RenderKit TODOs for JSF 2.0
> > * [MYFACES-2219] - ViewHandler TODOs for JSF 2.0
> > * [MYFACES-2220] - FacesConfigurator should scan application config
> > resources(files on META-INF/) ending with .faces-config.xml
> > * [MYFACES-2222] - ViewHandler.DEFAULT_SUFFIX could contain several
> > suffixes
> > * [MYFACES-2225] - Implement PostAddToViewEvent and
> > PreRemoveFromViewEvent thrown conditions
> > * [MYFACES-2226] - Add support for remaining 2.0 faces-config.xml
> > elements
> > * [MYFACES-2227] - Update ResponseWriter/ResponseWriterWrapper to latest
> > spec
> > * [MYFACES-2228] - Add h:head, h:body, h:outputScript and
> > h:outputStylesheet renderers
> > * [MYFACES-2229] - update viewid calculation to new algorithm
> > * [MYFACES-2230] - FaceletViewDeclarationLanguage TODOs
> > * [MYFACES-2231] - Handle the TODOs for JSPViewDeclarationLanguage
> > * [MYFACES-2254] - Finish ExceptionHandler support
> > * [MYFACES-2255] - Create UIOutcomeTarget API class
> > * [MYFACES-2258] - Add support for <if> navigation
> > * [MYFACES-2259] - Implement Partial State Saving feature
> > * [MYFACES-2262] - implement outcomtarget renderers
> > * [MYFACES-2263] - Create Composite component EL resolver
> > * [MYFACES-2264] - Behavior registration
> > * [MYFACES-2266] - Implement Flash object and EL resolver
> > * [MYFACES-2267] - handle TODOs for UIComponentBase
> > * [MYFACES-2268] - Add support for registering client behavior renderers
> > * [MYFACES-2270] - Add FacesContext param to Application.publishEvent
> > * [MYFACES-2271] - Call FacesMessage.rendered on message renderers
> > * [MYFACES-2272] - Apply changes related to UIInput.validateValue and
> > UIInput.VALIDATE_EMPTY_FIELDS_PARAM_NAME
> > * [MYFACES-2273] - ClientBehaviorRenderer/ClientbehaviorBase TODOs
> > * [MYFACES-2274] - Implement UIMessage.isRedisplay and
> > UIMessages.isRedisplay
> > * [MYFACES-2275] - UIMessages.getFor (Filter messages of a selected
> > component)
> > * [MYFACES-2276] - Update renderers that receive UIParameter to deal with
> > "disable" param.
> > * [MYFACES-2277] - UISelectItem.isNoSelectionOption (deal with it on
> > UISelectOne.validateValue and UISelectMany.validateValue)
> > * [MYFACES-2278] - Render columns with th instead td, according to
> > HtmlColumn.isRowHeader
> > * [MYFACES-2279] - TODOs for javax.faces.application.NavigationCase
> > * [MYFACES-2280] - ValidatorException should support collections of
> > messages.
> > * [MYFACES-2281] - Implement ViewListeners-Events api on UIViewRoot
> > * [MYFACES-2282] - h:dataTable and h:panelGrid should implement bodyrows
> > behavior (tbody encapsulation)
> > * [MYFACES-2283] - Apply selected/unselected css class to
> > h:selectManyCheckbox
> > * [MYFACES-2284] - Allow h:outputLink "fragment" property to append text
> > to url after '#'
> > * [MYFACES-2285] - Add ExternalContextFactory Implementation
> > * [MYFACES-2286] - javax.faces.view.facelets TODOs
> > * [MYFACES-2291] - Components implementing ClientBehaviorHolder should
> > override getEventNames() and getDefaultEventName()
> > * [MYFACES-2292] - update NavigationHandlerImpl to extend
> > ConfigurableNavigationHandler
> > * [MYFACES-2293] - ui:composition, ui:define and ui:insert component tag
> > handlers does not work as expected
> > * [MYFACES-2294] - Sync API with final 2.0 spec
> > * [MYFACES-2297] - Add TagHandlerDelegateFactory implementation
> > * [MYFACES-2298] - Apply algorithm described on
> > javax.faces.view.facelets.ComponentHandler in implementation
> > * [MYFACES-2299] - Add AttachedObjectHandler implementation when it is
> > necessary
> > * [MYFACES-2300] - binding property on facelets tag handlers should be
> > retrieved from javax.faces.view.facelets.DelegatingMetaTagHandler
> > * [MYFACES-2302] - Get simple 2.0 app working
> > * [MYFACES-2304] - Annotate facelets stuff adding @JSFFaceletTag and
> > @JSFFaceletAttribute to myfaces-builder-plugin
> > * [MYFACES-2307] - Generate HtmlHead and HtmlBody
> > * [MYFACES-2309] - Add new attributes to f:selectItems
> > * [MYFACES-2310] - Implement Composite Component feature
> > * [MYFACES-2322] - Implement <f:metadata> tag handler
> > * [MYFACES-2327] - Move facelets test code to myfaces
> > * [MYFACES-2330] - Get "basic-ajax" 2.0 sample app working
> > * [MYFACES-2337] - Implement UniqueIdVendor.createUniqueId method and
> > review all related code to UniqueIdVendor
> > * [MYFACES-2340] - Get "basic-ezcomp" 2.0 sample working
> > * [MYFACES-2341] - facelet tag lib parser includes <behavior> section
> > * [MYFACES-2345] - Add View Parameters feature
> > * [MYFACES-2349] - h:commandButton allows type="button" on jsf 2.0
> > * [MYFACES-2364] - PostRestoreStateEvent should be called from
> > DefaultRestoreViewSupport.processComponentBinding
> > * [MYFACES-2365] - DefaultRestoreViewSupport.calculateViewId should not
> > call ViewHandler.deriveViewId, it should be called later from
> > ViewHandler.createView and ViewHandler.restoreView
> > * [MYFACES-2366] - RestoreViewExecutor should check also if the server is
> > showing an error page when check for postback
> > * [MYFACES-2367] - FacesContext.isProcessingEvents should be called from
> > Application.publishEvent
> > * [MYFACES-2375] - <managed-bean-scope> could also be an EL expression,
> > to allow easy implementation of new scopes
> > * [MYFACES-2376] - h:outputScript should force type="text/javascript"
> > * [MYFACES-2378] - Use java util logging on 2.0.x branch
> > * [MYFACES-2379] - Create site for core 2.0.x
> > * [MYFACES-2399] - ManagedBeanResolver does not handle view scope
> > * [MYFACES-2403] - Myfaces core 2.0 uses jdk 6, but it should be jdk 5
> > * [MYFACES-2407] - _ComponentChildrenList does not implement all List
> > methods
> > * [MYFACES-2411] - Update api to match latest signature
> > * [MYFACES-2413] - @ResourceDependency annotations should be scanned when
> > Application.createConverter(String) and Application.createValidator(String)
> > is called
> > * [MYFACES-2414] - ResourceHandlerImpl should scan first with locale
> > prefix and then without it
> > * [MYFACES-2419] - NavigationHandler does not deal with no outcome & no
> > action & no if case
> > * [MYFACES-2422] - Change package name to org.apache.myfaces.test in
> > myfaces-test project
> > * [MYFACES-2424] - c namespace changed to
> > http://java.sun.com/jsp/jstl/core
> >
> > regards
> >
> > Leonardo Uribe
> >
> 
> 
> 
> -- 
> Best Regards,
> 
> Delos
                                          
_________________________________________________________________
约会说不清地方?来试试微软地图最新msn互动功能!
http://ditu.live.com/?form=TL&swm=1

Reply via email to